]> git.ipfire.org Git - people/ms/gcc.git/commitdiff
backport: common.opt (fira-select): New.
authorVladimir Makarov <vmakarov@gcc.gnu.org>
Wed, 18 Jul 2018 23:21:38 +0000 (23:21 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Wed, 18 Jul 2018 23:21:38 +0000 (23:21 +0000)
2018-07-18  Vladimir Makarov  <vmakarov@redhat.com>

Merge with trunk.
* common.opt (fira-select): New.  Choose the selection algorithm
by default.
* ira-costs.c (struct op_info, op_infos, insn_selection): New.
(insn_selections): New.
(CONST_POOL_OK_P, SMALL_REGISTER_CLASS_P, general_constant_p):
New.
(insn_constraints, setup_insn_alt): New.
(record_address_regs): Forward declaration.
(define_op_cost_from_alt): New.
(scan_one_insn): Call setup_insn_alt and define_op_cost_from_alt
for the selection algorithm.
(find_costs_and_classes): Release insn_constraints and
insn_selections.  Don't reuse already calculated pseudo classes
for the selection algorithm.

From-SVN: r262866

1  2 
gcc/ChangeLog
gcc/common.opt
gcc/ira-costs.c

diff --cc gcc/ChangeLog
index 4a82c39ecb2b48f0337b2bab4b30bcc9a8db0f61,bf1942cdff1e22c37db7bf4b44a53749d3347e8a..c6f7c0936e8bf02b307092a606bf038a541c6ae7
- 2016-10-31  Vladimir Makarov  <vmakarov@redhat.com>
++2018-07-18  Vladimir Makarov  <vmakarov@redhat.com>
 +
++      Merge with trunk.
 +      * common.opt (fira-select): New.  Choose the selection algorithm
 +      by default.
 +      * ira-costs.c (struct op_info, op_infos, insn_selection): New.
 +      (insn_selections): New.
 +      (CONST_POOL_OK_P, SMALL_REGISTER_CLASS_P, general_constant_p):
 +      New.
 +      (insn_constraints, setup_insn_alt): New.
 +      (record_address_regs): Forward declaration.
 +      (define_op_cost_from_alt): New.
 +      (scan_one_insn): Call setup_insn_alt and define_op_cost_from_alt
 +      for the selection algorithm.
 +      (find_costs_and_classes): Release insn_constraints and
 +      insn_selections.  Don't reuse already calculated pseudo classes
 +      for the selection algorithm.
 +
- 2016-10-26  Michael Matz  <matz@suse.de>
-       PR tree-optimization/78060
-       PR tree-optimization/78061
-       PR tree-optimization/78088
-       * tree-ssa-loop-split.c (easy_exit_values): New function.
-       (tree_ssa_split_loops): Use it.
-       (compute_new_first_bound): Change order of operations,
-       fix invalid use of types.
- 2016-10-26  Georg-Johann Lay  <avr@gjlay.de>
-       gen-pass-instances.awk is sensitive to the order in which
-       passes are added; passes that appear later have to be added first.
-       PR target/71676
-       PR target/71678
-       * config/avr/avr-passes.def: Swap order of directives for
-       gen-pass-instances.awk.
- 2016-10-25  Jeff Law  <law@redhat.com>
-       * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
-       (vax_notice_update_cc): Likewise.
- 2016-10-25  Eric Botcazou  <ebotcazou@adacore.com>
-       * config.gcc (sparc*-*-solaris2*): Adjust.
-       (sparc64-*-linux*): Likewise.
-       * config/sparc/default-64.h: Rename to...
-       * config/sparc/default64.h: ...this.
-       * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
-       with TARGET_ARCH64.
-       (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
-       * config/sparc/sparc.h: Minor tweaks.
-       * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
-       TARGET_ARCH32 throughout.  Minor various tweaks throughout.
- 2016-10-25  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (fcache::file_patch): Add comment about lifetime.
-       (selftest::cpp_reader_ptr): New class.
-       (selftest::lexer_test): Convert m_parser from cpp_reader *
-       to a cpp_reader_ptr, and move m_tempfile to after it.
-       (selftest::lexer_test::lexer_test): Update for above reordering.
-       (lexer_test::~lexer_test): Move cleanup of m_parser to
-       cpp_reader_ptr's dtor.
- 2016-10-25  David Malcolm  <dmalcolm@redhat.com>
-       * toplev.c (toplev::main): Remove call to
-       location_adhoc_data_fini.
- 2016-10-25  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
-       * tree.c (int_fits_type_p): Likewise.  Adjust head comment.
- 2016-10-25  David Malcolm  <dmalcolm@redhat.com>
-       * ggc-tests.c (forcibly_ggc_collect): Rename to...
-       (selftest::forcibly_ggc_collect): ...this, and remove "static".
-       (test_basic_struct): Update for above renaming.
-       (test_length): Likewise.
-       (test_union): Likewise.
-       (test_finalization): Likewise.
-       (test_deletable_global): Likewise.
-       (test_inheritance): Likewise.
-       (test_chain_next): Likewise.
-       (test_user_struct): Likewise.
-       (test_tree_marking): Likewise.
-       * selftest-run-tests.c (selftest::run_tests): Call
-       selftest::forcibly_ggc_collect at the end of the selftests.
-       * selftest.h (selftest::forcibly_ggc_collect): New decl.
- 2016-10-25  Jakub Jelinek  <jakub@redhat.com>
-       PR target/78102
-       * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
-       * optabs.c (expand_vec_cond_expr): For comparison codes
-       EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
-       (expand_vec_cmp_expr): For comparison codes
-       EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
-       * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
-       Add enum tree_code argument.
-       * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
-       inline functions.
-       * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument.  For
-       CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
-       fallback.
-       (expand_vec_cond_expr_p): Add CODE argument.  For CODE EQ_EXPR or
-       NE_EXPR, attempt to use vcondeq_optab as fallback.
-       * tree-vect-generic.c (expand_vector_comparison,
-       expand_vector_divmod, expand_vector_condition): Adjust
-       expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
-       * tree-vect-stmts.c (vectorizable_condition,
-       vectorizable_comparison): Likewise.
-       * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
-       check_bool_pattern, search_type_for_mask_1): Likewise.
-       * expr.c (do_store_flag): Likewise.
-       * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
-       @code{vcondeq@var{m}@var{n}}): Document.
-       * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
-       New expanders.
- 2016-10-25  Jeff Law  <law@redhat.com>
-       * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
-       comment.
-       (v850_output_aligned_bss): Add missing break.
-       * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
- 2016-10-25  Martin Liska  <mliska@suse.cz>
+ 2018-07-18  Richard Biener  <rguenther@suse.de>
  
-       PR sanitizer/78106
-       * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
-       statements as they can also contain possibly a freeing call.
+       PR tree-optimization/86557
+       * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle
+       EXACT_DIV_EXPR.
  
- 2016-10-25  H.J. Lu  <hongjiu.lu@intel.com>
-           Martin Liska  <mliska@suse.cz>
-       PR ipa/78099
-       * common.opt: Mark flag_ipa_icf_variables as Optimization flag.
-       * ipa-icf.c (sem_function::get_hash): Add target optimization
-       node to hash.
- 2016-10-25  Wilco Dijkstra  <wdijkstr@arm.com>
-       PR target/78041
-       * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
-       Remove partial overlap check for shift by 1.
-       (ashldi3_neon): Likewise.
- 2016-10-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/constraints.md (Q constraint): Document its use for
-       Thumb-1.
-       (Pf constraint): New constraint for relaxed, consume or relaxed memory
-       models.
-       * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
-       alternatives to allow any register when memory model matches Pf and
-       thus lda is used, but only low registers otherwise.  Use unpredicated
-       output template for Thumb-1 targets.
-       (atomic_store<mode>): Likewise for stl.
-       (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
-       whose output template does not have predication.
-       (arm_load_acquire_exclusive<mode>): Likewise.
-       (arm_load_exclusivesi): Likewise.
-       (arm_load_acquire_exclusivesi): Likewise.
-       (arm_store_release_exclusive<mode>): Likewise.
-       (arm_store_exclusive<mode>): Use unpredicated output template for
-       Thumb-1 targets.
- 2016-10-25  Jakub Jelinek  <jakub@redhat.com>
-       * internal-fn.def (LAUNDER): New internal function.
-       * internal-fn.c (expand_LAUNDER): New function.
- 2016-10-25  Georg-Johann Lay  <avr@gjlay.de>
-           Pitchumani Sivanupandi  <pitchumani.sivanupandi@microchip.com>
-       New avr target pass to work around performance loss by PR fix.
-       PR target/71676
-       PR target/71678
-       * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
-       (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
-       * config/avr/predicates.md (extend_operator): New.
-       * config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
-       * config/avr/avr-protos.h (avr_casei_sequence_check_operands)
-       (make_avr_pass_casesi): New prototypes.
-       * config/avr/avr.c (print-rtl.h): Include it.
-       (pass_data avr_pass_data_casesi): Data for new pass.
-       (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
-       (make_avr_pass_casesi, avr_parallel_insn_from_insns)
-       (avr_is_casesi_sequence, avr_casei_sequence_check_operands)
-       (avr_optimize_casesi): New functions.
- 2016-10-25  Georg-Johann Lay  <avr@gjlay.de>
-           Pitchumani Sivanupandi  <pitchumani.sivanupandi@microchip.com>
-       PR target/71676
-       PR target/71678
-       * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
- 2016-10-24  Jakub Jelinek  <jakub@redhat.com>
-       * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
-       DW_AT_rvalue_reference attributes.
- 2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * doc/invoke.text (Wint-in-bool-context): Update documentation.
-       * value-prof.c (stringop_block_profile): Fix a warning.
- 2016-10-24  Martin Sebor  <msebor@redhat.com>
-       PR middle-end/77735
-       * builtins.c (string_length): New function.
-       (c_strlen): Use string_length.  Correctly handle wide strings.
-       * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
-       functions.
-       (target_int_max): Call target_max_value.
-       (format_result::knownrange): New data member.
-       (fmtresult::fmtresult): Define default constructor.
-       (format_integer): Use it and set format_result::knownrange.
-       Handle global constants.
-       (format_floating_max): Add third argument.
-       (format_floating): Recompute maximum value for %a for each argument.
-       (get_string_length): Use fmtresult default ctor.
-       (format_string): Set format_result::knownrange.
-       (format_directive): Check format_result::knownrange.
-       (add_bytes): Same.  Correct caret placement in diagnostics.
-       (pass_sprintf_length::compute_format_length): Set
-       format_result::knownrange.
-       (pass_sprintf_length::handle_gimple_call): Use target_size_max.
- 2016-10-24  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
-       VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
- 2016-10-24  Ximin Luo  <infinity0@pwned.gg>
-       PR debug/77985
-       * dwarf2out.c (file_table_relative_p): Remove.
-       (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
-       also for absolute paths.
-       * doc/tm.texi: Update.
-       * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
-       * target.def (force_at_comp_dir): Remove hook.
-       * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
- 2016-10-24  Richard Biener  <rguenther@suse.de>
-       * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
-       backedges when identifying the single predecessor to take
-       conditional info from.  Use SCEV to get at ranges for loop IVs.
-       * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
-       avoid false warning.
- 2016-10-24  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/78093
-       * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
-       * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
-       (avr_address_tiny_absdata_p): New static function.
-       (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
-       it to determine validity of constant addresses.
-       (avr_attribute_table) [absdata]: New variable attribute...
-       (avr_handle_absdata_attribute): ...and handler.
-       (avr_decl_absdata_p): New static function.
-       (avr_encode_section_info) [AVR_TINY]: Use it to add flag
-       AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
-       (avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
- 2016-10-24  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/78076
-       * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
-       also on the loop tree root.
- 2016-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 2018-07-18  Ilya Leoshkevich  <iii@linux.ibm.com>
  
-       * config/i386/i386.c (ix86_fold_builtin): Handle
-       IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64},
-       IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
-       (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64},
-       IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
- 2016-10-24  Martin Liska  <mliska@suse.cz>
-       PR sanitizer/77966
-       * opts.c (finish_options): Skip conditionally.
- 2016-10-23  Martin Sebor  <msebor@redhat.com>
-       PR target/77837
-       * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define.
-       * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise.
- 2016-10-23  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc.md (cpu_feature): Minor tweak.
-       (enabled): Likewise.
-       (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
-       movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
-       sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
-       mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
-       <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
-       fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
- 2016-10-23  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
-       with TARGET_ARCH64.  Define __VIS to 0x400 if TARGET_VIS4.
- 2016-10-21  Andrew Pinski  <apinski@cavium.com>
-       * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are
-       integer constants.
-       * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change
-       implementer_id to unsigned char.
-       Change part_no to unsigned int.
-       (AARCH64_BIG_LITTLE): New define.
-       (INVALID_IMP): New define.
-       (INVALID_CORE): New define.
-       (cpu_data): Change the last element's implementer_id and part_no to
-       integers.
-       (valid_bL_string_p): Rewrite to ..
-       (valid_bL_core_p): this for integers instead of strings.
-       (parse_field): New function.
-       (contains_string_p): Rewrite to ...
-       (contains_core_p): this for integers and only for the part_no.
-       (host_detect_local_cpu): Rewrite handling of implementation and
-       par num to be integers; simplifying the code.
- 2016-10-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero
-       value range for pointers in more cases.
- 2016-10-21  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_add_constant_internal):
-       Add extra argument to allow emitting the move immediate.
-       Use add/sub with positive immediate.
-       (aarch64_add_constant): Add inline function.
-       (aarch64_add_sp): Likewise.
-       (aarch64_sub_sp): Likewise.
-       (aarch64_expand_prologue): Call aarch64_sub_sp.
-       (aarch64_expand_epilogue): Call aarch64_add_sp.
-       Decide when to leave out move.
-       (aarch64_output_mi_thunk): Call aarch64_add_constant.
- 2016-10-21  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_layout_frame):
-       Align FP callee-saves.
- 2016-10-21  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32,
-       _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64):
-       Formatting fixes.
-       * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
-       _rdseed64_step): Likewise.
-       * config/i386/tbmintrin.h (__bextri_u32): Likewise.
-       PR target/78057
-       * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
-       and tree-ssanames.h.
-       (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
-       with INTEGER_CST argument.
-       (ix86_gimple_fold_builtin): New function.
-       (TARGET_GIMPLE_FOLD_BUILTIN): Define.
-       * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *.
-       (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *.
-       (ranges_table_allocated, ranges_table_in_use,
-       ranges_by_label_allocated, ranges_by_label_in_use,
-       RANGES_TABLE_INCREMENT): Removed.
-       (add_ranges_num): Use vec_safe_push into ranges_table.
-       (add_ranges_by_labels): Use vec_safe_push into ranges_by_label.
-       (output_ranges): Adjust for ranges_table and ranges_by_label
-       conversion from arrays to vec.
-       (add_high_low_attributes, dwarf2out_finish): Adjust for range_table
-       conversion from arrays to vec.
-       (dwarf2out_c_finalize): Don't clear ranges_table_allocated,
-       ranges_table_in_use, ranges_by_label_allocated and
-       ranges_by_label_in_use.  Set ranges_by_label to NULL instead of 0.
-       * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute
-       if needed.  Re-add origin_die variable and its initialization.
-       * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns
-       even for -fstack-reuse=none, or for volatile vars etc.
- 2016-10-21  David Malcolm  <dmalcolm@redhat.com>
-       * print-rtl-function.c (flag_compact): Move extern decl to...
-       * print-rtl.h (flag_compact): ...here.
-       * rtl-tests.c (selftests::assert_rtl_dump_eq): New function.
-       (ASSERT_RTL_DUMP_EQ): New macro.
-       (selftest::test_dumping_regs): New function.
-       (selftest::test_dumping_insns): New function.
-       (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on
-       the insns.
-       (selftest::rtl_tests_c_tests): Call the new test functions.
- 2016-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
-       (outgoing_edges_match): Likewise.
-       (try_crossjump_to_edge): Likewise.
-       * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
-       (rtl_tidy_fallthru_edge): Likewise.
-       * rtl.h (tablejump_p): Adjust prototype.
-       * rtlanal.c (tablejump_p): Return the label as a rtx_insn *.
- 2016-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * rtl.h (label_ref_label): New function.
-       (set_label_ref_label): New function.
-       (LABEL_REF_LABEL): Delete.
-       * alias.c (rtx_equal_for_memref_p): Adjust.
-       * cfgbuild.c (make_edges): Likewise.
-       (purge_dead_tablejump_edges): Likewise.
-       * cfgexpand.c (convert_debug_memory_address): Likewise.
-       * cfgrtl.c (patch_jump_insn): Likewise.
-       * combine.c (distribute_notes): Likewise.
-       * cse.c (hash_rtx_cb): Likewise.
-       (exp_equiv_p): Likewise.
-       (fold_rtx): Likewise.
-       (check_for_label_ref): Likewise.
-       * cselib.c (rtx_equal_for_cselib_1): Likewise.
-       (cselib_hash_rtx): Likewise.
-       * emit-rtl.c (mark_label_nuses): Likewise.
-       * explow.c (convert_memory_address_addr_space_1): Likewise.
-       * final.c (output_asm_label): Likewise.
-       (output_addr_const): Likewise.
-       * gcse.c (add_label_notes): Likewise.
-       * genconfig.c (walk_insn_part): Likewise.
-       * genrecog.c (validate_pattern): Likewise.
-       * ifcvt.c (cond_exec_get_condition): Likewise.
-       (noce_emit_store_flag): Likewise.
-       (noce_get_alt_condition): Likewise.
-       (noce_get_condition): Likewise.
-       * jump.c (maybe_propagate_label_ref): Likewise.
-       (mark_jump_label_1): Likewise.
-       (redirect_exp_1): Likewise.
-       (rtx_renumbered_equal_p): Likewise.
-       * lra-constraints.c (operands_match_p): Likewise.
-       * print-rtl.c (print_value): Likewise.
-       * reload.c (find_reloads): Likewise.
-       * reload1.c (set_label_offsets): Likewise.
-       * reorg.c (get_branch_condition): Likewise.
-       * rtl-tests.c (test_uncond_jump): Likewise.
-       * rtl.c (rtx_equal_p_cb): Likewise.
-       (rtx_equal_p): Likewise.
-       * rtlanal.c (reg_mentioned_p): Likewise.
-       (rtx_referenced_p): Likewise.
-       (get_condition): Likewise.
-       * varasm.c (const_hash_1): Likewise.
-       (compare_constant): Likewise.
-       (const_rtx_hash_1): Likewise.
-       (output_constant_pool_1): Likewise.
- 2016-10-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       PR target/71627
-       * reload.c (find_valid_class_1): Allow regclass if atleast one
-       regno in regclass is ok. Compute and use rclass size based on
-       actually available regnos for mode in rclass.
- 2016-10-21  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc-modes.def (CCV): New.
-       (CCXV): Likewise.
-       * config/sparc/predicates.md (v_comparison_operator): New.
-       (icc_comparison_operator): Add support for CCV/CCXV.
-       (xcc_comparison_operator): Likewise.
-       * config/sparc/sparc.c (output_cbranch): Likewise.
-       (sparc_print_operand): Likewise.
-       * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
-       (uaddvdi4): New expander.
-       (addvdi4): Likewise.
-       (uaddvdi4_sp32): New instruction.
-       (addvdi4_sp32): Likewise.
-       (uaddvsi4): New expander.
-       (addvsi4): Likewise.
-       (cmp_ccc_plus_sltu_set): New instruction.
-       (cmp_ccv_plus): Likewise.
-       (cmp_ccxv_plus): Likewise.
-       (cmp_ccv_plus_set): Likewise.
-       (cmp_ccxv_plus_set): Likewise.
-       (cmp_ccv_plus_sltu_set): Likewise.
-       (uaddvdi4): New expander.
-       (subvdi4): Likewise.
-       (usubdi4_sp32): New instruction.
-       (subvdi4_sp32): Likewise.
-       (usubvsi4): New expander.
-       (subvsi4): Likewise.
-       (cmpsi_minus_sltu_set): New instruction.
-       (cmp_ccv_minus): Likewise.
-       (cmp_ccxv_minus): Likewise.
-       (cmp_ccv_minus_set): Likewise.
-       (cmp_ccxv_minus_set): Likewise.
-       (cmp_ccv_minus_sltu_set): Likewise.
-       (unegvdi3): New expander.
-       (negvdi3): Likewise.
-       (unegdi3_sp32): New instruction.
-       (negvdi3_sp32): Likewise.
-       (unegvsi3): New expander.
-       (negvsi3): Likewise.
-       (cmp_ccc_neg_sltu_set): New instruction.
-       (cmp_ccv_neg): Likewise.
-       (cmp_ccxv_neg): Likewise.
-       (cmp_ccv_neg_set): Likewise.
-       (cmp_ccxv_neg_set): Likewise.
-       (cmp_ccv_neg_sltu_set): Likewise.
-       * tree-ssa-loop-split.c: Remove trailing spaces.
-       * match.pd: Likewise.
+       * config/s390/s390.c (s390_function_profiler): Generate CFI.
  
- 2016-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR rtl-optimization/78038
-       * ree.c (get_defs): Return NULL if a defining insn for REG cannot
-       be deduced to set REG through the RTL structure.
-       (make_defs_and_copies_lists): Return false on a failing get_defs call.
- 2016-10-21  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/78051
-       * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
-       and mark replaced if folding did something.
- 2016-10-21  David Edelsohn  <dje.gcc@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
-       and "protected" in visibility types.
-       (rs6000_xcoff_declare_function_name): Fix formatting.
-       (rs6000_xcoff_declare_object_name): Fix formatting.
- 2016-10-21  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
-       and IX86_BUILTIN_HUGE_VALQ here ...
-       (ix86_expand_builtin): ... not here.
- 2016-10-20  Jakub Jelinek  <jakub@redhat.com>
-       * doc/gty.texi (for_user): Use @item next to @findex.
- 2016-10-20  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/78037
-       * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
-       (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
-       (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
-       * config/i386/lzcntintrin.h (__lzcnt_u16): Call
-       __builtin_ia32_lzcnt_u16.
-       (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
-       (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
-       * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
-       (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
-       (bmi_tzcnt_<mode>): New expander.
-       (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
-       (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
-       (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
-       (lzcnt_<mode>): New expander.
-       (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
-       (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
-       * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
-       (UINT64_FTYPE_UINT64): New.
-       * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
-       (__builtin_ia32_lzcnt_u16): New description.
-       (__builtin_ia32_lzcnt_u32): Ditto.
-       (__builtin_ia32_lzcnt_u64): Ditto.
-       (__builtin_ctzs): Remove description.
-       (__builtin_ia32_tzcnt_u16): New description.
-       (__builtin_ia32_tzcnt_u32): Ditto.
-       (__builtin_ia32_tzcnt_u64): Ditto.
-       * config/i386/i386.c (ix86_expand_args_builtin): Handle
-       UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
- 2016-10-20  Martin Liska  <mliska@suse.cz>
-       PR lto/78049
-       * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value
-       comparison with STMT_UID_NOT_IN_RANGE.
-       (fixup_call_stmt_edges): Do not fixup edges of a thunk in
-       LTRANS.
- 2016-10-20  Eric Botcazou  <ebotcazou@adacore.com>
-       * compare-elim.c (conforming_compare): Accept UNSPECs.
-       (find_comparison_dom_walker::before_dom_children): Deal with
-       instructions both using and killing the flags register.
-       (equivalent_reg_at_start): New function extracted from...
-       (try_eliminate_compare): ...here.  Use it and add support for
-       registers and UNSPECs as second operand of the compare.
-       * config/visium/visium-modes.def (CCV): New.
-       * config/visium/predicates.md (visium_v_comparison_operator): New.
-       (visium_branch_operator): Deal with CCV mode.
-       * config/visium/visium.c (visium_select_cc_mode): Likewise.
-       (output_cbranch): Likewise.
-       * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
-       (uaddv<mode>4): New expander.
-       (addv<mode>4): Likewise.
-       (add<mode>3_insn_set_carry): New instruction.
-       (add<mode>3_insn_set_overflow): Likewise.
-       (addsi3_insn_set_overflow): Likewise.
-       (usubv<mode>4): New expander.
-       (subv<mode>4): Likewise.
-       (sub<mode>3_insn_set_carry): New instruction.
-       (sub<mode>3_insn_set_overflow): Likewise.
-       (subsi3_insn_set_overflow): Likewise.
-       (unegv<mode>3): New expander.
-       (negv<mode>3): Likewise.
-       (neg<mode>2_insn_set_overflow): New instruction.
-       (addv_tst<mode>): Likewise.
-       (subv_tst<mode>): Likewise.
-       (negv_tst<mode>): Likewise.
-       (cbranch<mode>4_addv_insn): New splitter and instruction.
-       (cbranch<mode>4_subv_insn): Likewise.
-       (cbranch<mode>4_negv_insn): Likewise.
- 2016-10-20  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication.
-       Handle decls possibly not bound.
-       * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add
-       nothing_id for decls that might not be bound if we are interested
-       for the address.
-       (get_constraint_for_component_ref): Deal with that.
- 2016-10-20  Michael Matz  <matz@suse.de>
-       Loop splitting.
-       * common.opt (-fsplit-loops): New flag.
-       * passes.def (pass_loop_split): Add.
-       * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
-       (enable_fdo_optimizations): Add loop splitting.
-       * timevar.def (TV_LOOP_SPLIT): Add.
-       * tree-pass.h (make_pass_loop_split): Declare.
-       * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
-       * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
-       * tree-ssa-loop-split.c: New file.
-       * Makefile.in (OBJS): Add tree-ssa-loop-split.o.
-       * doc/invoke.texi (fsplit-loops): Document.
-       * doc/passes.texi (Loop optimization): Add paragraph about loop
-       splitting.
- 2016-10-20  Richard Biener  <rguenther@suse.de>
-       * cgraphunit.c (analyze_functions): Set node->definition to
-       false to signal symbol removal to debug_hooks->late_global_decl.
-       * ipa.c (symbol_table::remove_unreachable_nodes): When not in
-       WPA signal symbol removal to the debuginfo machinery.
-       * dwarf2out.c (dwarf2out_late_global_decl): Instead of
-       using early_finised to guard the we're called for symbol
-       removal case look at the symtabs definition flag.
-       (gen_variable_die): Remove redundant check.
- 2016-10-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md ("prefetch"): Add fallthrough comment.
- 2016-10-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       PR tree-optimization/53979
-       * match.pd ((a ^ b) | a -> a | b): New pattern.
- 2016-10-19  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
-       config/pa/pa64-hpux-lib.h.
-       (PA_CRTBEGIN_HACK): Likewise.
-       (DTOR_LIST_BEGIN): Likewise.
- 2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
-       register only if "in" and "out" are different registers.
- 2016-10-19  Eric Botcazou  <ebotcazou@adacore.com>
-       * omp-low.c (pass_oacc_device_lower::gate): New method.
-       (execute): Always call execute_oacc_device_lower.
- 2016-10-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR tree-optimization/77916
-       PR tree-optimization/77937
-       * gimple-ssa-strength-reduction.c (analyze_increments): Remove
-       stopgap fix.
-       (insert_initializers): Requirement of initializer for -1 should be
-       based on pointer-typedness of the candidate basis.
- 2016-10-19  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/78005
-       * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
-       upper (included) bound for niters of prolog loop.
-       (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
-       Compute niters of scalar loop above which vectorized loop is
-       preferred, as well as the upper (included) bound for the niters.
-       (vect_do_peeling): Record niter bound for loops accordingly.
- 2016-10-19  Thomas Schwinge  <thomas@codesourcery.com>
-       PR lto/77458
-       * tree-core.h (enum tree_index): Put the complex types after their
-       component types.
-       * tree-streamer.c (verify_common_node_recorded): New function.
-       (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
- 2016-10-19  Martin Liska  <mliska@suse.cz>
-       * cgraph.h (cgraph_edge::binds_to_current_def_p):
-       Replace NULL with false as a return value.
- 2016-10-19  Thomas Schwinge  <thomas@codesourcery.com>
-       PR tree-optimization/78024
-       * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
-       don't clear BB_VISITED after processing.
- 2016-10-19  Richard Biener  <rguenther@suse.de>
-       * domwalk.c (dom_walker::walk): Use RPO order.
- 2016-10-19  Richard Biener  <rguenther@suse.de>
-       * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
-       stmts_to_remove.
-       (evrp_dom_walker::~evrp_dom_walker): Free it.
-       (evrp_dom_walker::stmts_to_remove): Add.
-       (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
-       whose output we fully propagate for removal.  Propagate
-       into BB destination PHI arguments.
-       (execute_early_vrp): Remove queued stmts.  Dump value ranges
-       before stmt removal.
- 2016-10-18  Aldy Hernandez  <aldyh@redhat.com>
-       * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
-       * passes.def: Add two instances of pass_walloca.
-       * tree-pass.h (make_pass_walloca): New.
-       * gimple-ssa-warn-alloca.c: New file.
-       * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
-       -Wvla-larger-than= options.
- 2016-10-18  Thomas Schwinge  <thomas@codesourcery.com>
-       * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
-       * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
- 2016-10-18  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.h (vec_xl_len): New macro.
-       (vec_xst_len): New macro.
-       (vec_cmpnez): New macro.
-       (vec_cntlz_lsbb): New macro.
-       (vec_cnttz_lsbb): New macro.
-       (vec_xlx): New macro.
-       (vec_xrx): New macro.
-       (vec_all_nez): New C++ predicate template.
-       (vec_any_eqz): New C++ predicate template.
-       (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
-       conditional compilation.
-       (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
-       conditional compilation.
-       (vec_all_nez): New macro.
-       (vec_any_eqz): New macro.
-       (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
-       compilation.
-       (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
-       compilation.
-       * config/rs6000/vector.md (VI): Moved this mode iterator
-       definition from altivec.md to vector.md.
-       (UNSPEC_NEZ_P): New value.
-       (vector_ne_<mode>_p): New expansion for implementation of
-       vec_all_ne and vec_any_eq built-in functions.
-       (vector_nez_<mode>_p): New expansion for implementation of
-       vec_all_nez and vec_any_eqz built-in functions.
-       (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
-       and vec_any_eq built-in function.
-       (cr6_test_for_zero): New commentary to explain this expansion.
-       (cr6_test_for_zero_reverse): New commentary to explain this expansion.
-       (cr6_test_for_lt): New commentary to explain this expansion.
-       (cr6_test_for_lt_reverse): New commentary to explain this
-       expansion.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
-       overloaded function prototypes for vec_all_ne, vec_all_nez,
-       vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
-       vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
-       built-in functions.
-       (altivec_resolve_overloaded_builtin): Modify the handling of
-       ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
-       the compiler is configured to support TARGET_P9_VECTOR.
-       * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
-       to explain the special processing that is given to predicate
-       built-ins introduced using this macro.
-       (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
-       the special processing given to predicate built-ins introduced
-       using this macro.
-       (BU_VSX_P): Likewise.
-       (BU_P8V_AV_P): Likewise.
-       (BU_P9V_AV_P): Likewise.
-       (BU_P9V_AV_X): New macro.
-       (BU_P9V_64BIT_AV_X): New macro.
-       (BU_P9V_VSX_3): New macro.
-       (BU_P9V_OVERLOAD_P): New macro.
-       (LXVL): New BU_P9V_64BIT_VSX_2.
-       (VEXTUBLX): New BU_P9V_AV_2.
-       (VEXTUBRX): Likewise.
-       (VEXTUHLX): Likewise.
-       (VEXTUHRX): Likewise.
-       (VEXTUWLX): Likewise.
-       (VEXTUWRX): Likewise.
-       (STXVL): New BU_P9V_64BIT_AV_X.
-       (VCLZLSBB): New BU_P9V_AV_1.
-       (VCTZLSBB): Likewise.
-       (CMPNEB): New BU_P9V_AV_2.
-       (CMPNEH): Likewise.
-       (CMPNEW): Likewise.
-       (CMPNEF): Likewise.
-       (CMPNED): Likewise.
-       (VCMPNEB_P): New BU_P9V_AV_P.
-       (VCMPNEH_P): Likewise.
-       (VCMPNEW_P): Likewise.
-       (VCMPNED_P): Likewise.
-       (VCMPNEFP_P): Likewise.
-       (VCMPNEDP_P): Likewise.
-       (CMPNEZB): New BU_P9V_AV_2.
-       (CMPNEZH): Likewise.
-       (CMPNEZW): Likewise.
-       (VCMPNEZB_P): New BU_P9V_AV_P.
-       (VCMPNEZH_P): Likewise.
-       (VCMPNEZW_P): Likewise.
-       (LXVL): New BU_P9V_OVERLOAD_2.
-       (STXVL): New BU_P9V_OVERLOAD_3.
-       (VEXTULX): New BU_P9V_OVERLOAD_2.
-       (VEXTURX): Likewise.
-       (CMPNEZ): Likewise.
-       (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
-       (VCMPNE_P): Likewise.
-       (VCLZLSBB): New BU_P9V_OVERLOAD_1.
-       (VCTZLSBB): Likewise.
-       * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
-       comment to explain mode used for scratch register.
-       (altivec_expand_stxvl_builtin): New function.
-       (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
-       (altivec_init_builtins): Add initialized variable
-       void_ftype_v16qi_pvoid_long and use this type to define the
-       built-in function __builtin_altivec_stxvl.
-       * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
-       (UNSPEC_STXVL): New value.
-       (UNSPEC_VCLZLSBB): New value.
-       (UNSPEC_VCTZLSBB): New value.
-       (UNSPEC_VEXTUBLX): New value.
-       (UNSPEC_VEXTUHLX): New value.
-       (UNSPEC_VEXTUWLX): New value.
-       (UNSPEC_VEXTUBRX): New value.
-       (UNSPEC_VEXTUHRX): New value.
-       (UNSPEC_VEXTUWRX): New value.
-       (UNSPEC_VCMPNEB): New value.
-       (UNSPEC_VCMPNEZB): New value.
-       (UNSPEC_VCMPNEH): New value.
-       (UNSPEC_VCMPNEZH): New value.
-       (UNSPEC_VCMPNEW): New value.
-       (UNSPEC_VCMPNEZW): New value.
-       (*vsx_ne_<mode>_p): New insn for vector test all not equal with
-       vector of integer modes.
-       (*vsx_ne_<mode>_p): New insn for vector test all not equal with
-       vector of float or double modes.
-       (*vector_nez_<mode>_p): New insn for vector test all not equal or
-       zero.
-       (lxvl): New expand for load VSX vector with length.
-       (*lxvl): New insn for load VSX vector with length.
-       (stxvl): New expand for store VSX vector with length.
-       (*stxvl): New insn for store VSX vector with length.
-       (vcmpneb): New insn for vector of byte compare not equal.
-       (vcmpnezb): New insn for vector of byte compare not equal or zero.
-       (vcmpneh): New insn for vector of half word compare not equal.
-       (vcmpnezh): New insn for vector of half word compare not equal or
-       zero.
-       (vcmpnew): New insn for vector of word compare not equal.
-       (vcmpne<VSs>): New insn for vector of float or double compare not
-       equal.
-       (vcmpnezw): New insn for vector of word compare not equal or zero.
-       (vclzlsbb): New insn for vector count leading zero
-       least-significant bits byte.
-       (vctzlsbb): New insn for vector count trailing zero least
-       signficant bits byte.
-       (vextublx): New insn for vector extract unsigned byte left
-       indexed.
-       (vextubrx): New insn for vector extract unsigned byte right
-       indexed.
-       (vextuhlx): New insn for vector extract unsigned half word left
-       indexed.
-       (vextuhrx): New insn for vector extract unsigned half word right
-       indexed.
-       (vextuwlx): New insn for vector extract unsigned word left
-       indexed.
-       (vextuwrx): New insn for vector extract unsigned word right
-       indexed.
-       * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
-       clarify intent of this constant.
-       * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
-       * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
-       documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
-       vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
-       and vec_xrx functions.
- 2016-10-18  Andrew Pinski  <apinski@cavium.com>
-       PR tree-opt/65950
-       * predict.c (is_exit_with_zero_arg): New function.
-       (tree_bb_level_predictions): Don't consider paths leading to exit(0)
-       as nottaken.
- 2016-10-18  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/77991
-       * config/i386/i386.c (legitimize_tls_address)
-       <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
-       convert dest to Pmode if different than Pmode.
- 2016-10-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR tree-optimization/77916
-       * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
-       stopgap fix, as pointers with -1 increment are still broken.
- 2016-10-18  David Edelsohn  <dje.gcc@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
-       mapping class decoration from here...
-       (rs6000_xcoff_encode_section): ...to here.
-       (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
-       if shrink-wrapping and optimizing for speed.
- 2016-10-18  Richard Biener  <rguenther@suse.de>
-       * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
-       not visited but non-executable predecessors.  Return taken edge.
-       Simplify conditions and refactor propagation vs. folding step.
- 2016-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
-       {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
-       (rs6000_get_separate_components): Assert we do not have those
-       strategies selected.
- 2016-10-18  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
-       * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
-       clearing.
-       (substitute_and_fold_dom_walker): Adjust constructor.
-       (substitute_and_fold_dom_walker::before_dom_children): Remove
-       do_dce flag and handling (always true).
-       (substitute_and_fold): Likewise.
-       * tree-vrp.c (vrp_finalize): Adjust.
-       (execute_early_vrp): Remove final BB_VISITED clearing.
-       * tree-ssa-ccp.c (ccp_finalize): Adjust.
-       * tree-ssa-copy.c (fini_copy_prop): Likewise.
-       * ira.c (ira): Call clear_bb_flags.
- 2016-10-18  Richard Biener  <rguenther@suse.de>
-       * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
-       get at the operand to look at with TREE_OPERAND for generic
-       sub-nodes.
- 2016-10-18  David Malcolm  <dmalcolm@redhat.com>
-       * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
-       copy_md_ptr_loc.
-       (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
-       (write_test_expr): Use rtx_reader_ptr for calls to
-       fprint_c_condition.
-       (write_attr_value): Likewise.
-       * genconditions.c (write_one_condition): Use rtx_reader_ptr for
-       call to print_md_ptr_loc.
-       (write_one_condition): Likewise for calls to print_c_condition.
-       * genconstants.c: Include "statistics.h" and "vec.h".
-       (main): Update for conversion to member functions.
-       * genemit.c (emit_c_code): Use rtx_reader_ptr for
-       call to print_md_ptr_loc.
-       * genenums.c: Include "statistics.h" and "vec.h".
-       (main): Update for conversion of traverse_enum_types to a method.
-       * genmddeps.c: Include "statistics.h" and "vec.h".
-       * genoutput.c (process_template): Use rtx_reader_ptr for call to
-       print_md_ptr_loc.
-       * genpreds.c (write_predicate_subfunction): Likewise.
-       (write_predicate_expr): Likewise for calls to print_c_condition.
-       * genrecog.c (print_test): Likewise.
-       * gensupport.c (process_rtx): Likewise for calls to
-       copy_md_ptr_loc and join_c_conditions.
-       (alter_test_for_insn): Likewise for call to join_c_conditions.
-       (process_substs_on_one_elem): Likewise.
-       (gen_mnemonic_setattr): Update for move of string_obstack to a
-       field of rtx_reader.
-       (mnemonic_htab_callback): Likewise.  Fix formatting.
-       (gen_mnemonic_attr): Likewise.
-       * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
-       to print_c_condition.
-       * read-md.c: Include "statistics.h" and "vec.h".
-       (string_obstack): Convert this global to field "m_string_obstack"
-       of class rtx_reader.
-       (ptr_locs): Likewise, as "m_ptr_locs".
-       (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
-       (joined_conditions): Likewise, as "m_joined_conditions".
-       (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
-       (md_constants): Likewise, as "m_md_constants".
-       (enum_types): Likewise, as "m_enum_types".
-       (set_md_ptr_loc): Convert to...
-       (rtx_reader::set_md_ptr_loc): ...member function.
-       (get_md_ptr_loc): Convert to...
-       (rtx_reader::get_md_ptr_loc): ...member function.
-       (copy_md_ptr_loc): Convert to...
-       (rtx_reader::copy_md_ptr_loc): ...member function.
-       (fprint_md_ptr_loc): Convert to...
-       (rtx_reader::fprint_md_ptr_loc): ...member function.
-       (print_md_ptr_loc): Convert to...
-       (rtx_reader::print_md_ptr_loc): ...member function.
-       (join_c_conditions): Convert to...
-       (rtx_reader::join_c_conditions): ...member function.
-       (fprint_c_condition): Convert to...
-       (rtx_reader::fprint_c_condition): ...member function.
-       (print_c_condition): Convert to...
-       (rtx_reader::print_c_condition): ...member function.
-       (read_name): Convert to...
-       (rtx_reader::read_name): ...member function.
-       (read_escape): Convert to...
-       (rtx_reader::read_escape): ...member function.
-       (read_quoted_string): Convert to...
-       (rtx_reader::read_quoted_string): ...member function.
-       (read_braced_string): Convert to...
-       (rtx_reader::read_braced_string): ...member function.
-       (read_string): Convert to...
-       (rtx_reader::read_string): ...member function.
-       (read_skip_construct): Convert to...
-       (rtx_reader::read_skip_construct): ...member function.
-       (handle_constants): Convert to...
-       (rtx_reader::handle_constants): ...member function.
-       (traverse_md_constants): Convert to...
-       (rtx_reader::traverse_md_constants): ...member function.
-       (handle_enum): Convert to...
-       (rtx_reader::handle_enum): ...member function.
-       (lookup_enum_type): Convert to...
-       (rtx_reader::lookup_enum_type): ...member function.
-       (traverse_enum_types): Convert to...
-       (rtx_reader::traverse_enum_types): ...member function.
-       (rtx_reader::rtx_reader): Move initializations
-       of various former global data from rtx_reader::read_md_files to
-       here, as fields, along with the call to unlock_std_streams.
-       (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
-       the new fields.
-       (rtx_reader::read_md_files): Move initializations of various
-       global data from here to the ctor.
-       * read-md.h (read_name): Convert to...
-       (rtx_reader::read_name): ...member function.
-       (rtx_reader::read_escape): New method decl.
-       (read_quoted_string): Convert to...
-       (rtx_reader::read_quoted_string): ...member function.
-       (rtx_reader::read_braced_string): New method decl.
-       (read_string): Convert to...
-       (rtx_reader::read_string): ...member function.
-       (rtx_reader::read_skip_construct): New method decl.
-       (rtx_reader::set_md_ptr_loc): New method decl.
-       (rtx_reader::get_md_ptr_loc): New method decl.
-       (copy_md_ptr_loc): Convert to...
-       (rtx_reader::copy_md_ptr_loc): ...member function.
-       (fprint_md_ptr_loc): Convert to...
-       (rtx_reader::fprint_md_ptr_loc): ...member function.
-       (print_md_ptr_loc): Convert to...
-       (rtx_reader::print_md_ptr_loc): ...member function.
-       (rtx_reader::lookup_enum_type): New method decl.
-       (rtx_reader::traverse_enum_types): New method decl.
-       (rtx_reader::handle_constants): New method decl.
-       (traverse_md_constants): Convert to...
-       (rtx_reader::traverse_md_constants): ...member function.
-       (rtx_reader::handle_enum): New method decl.
-       (rtx_reader::join_c_conditions): New method decl.
-       (fprint_c_condition): Convert to...
-       (rtx_reader::fprint_c_condition): ...member function.
-       (print_c_condition): Convert to...
-       (rtx_reader::print_c_condition): ...member function.
-       (rtx_reader::apply_iterator_to_string): New method decl.
-       (rtx_reader::copy_rtx_for_iterators): New method decl.
-       (rtx_reader::read_conditions): New method decl.
-       (rtx_reader::record_potential_iterator_use): New method decl.
-       (rtx_reader::read_mapping): New method decl.
-       (rtx_reader::read_rtx): New method decl.
-       (rtx_reader::read_rtx_code): New method decl.
-       (rtx_reader::read_rtx_operand): New method decl.
-       (rtx_reader::read_nested_rtx): New method decl.
-       (rtx_reader::read_rtx_variadic): New method decl.
-       (rtx_reader::get_string_obstack): New method.
-       (rtx_reader::get_md_constants): New method.
-       (string_obstack): Convert global variable decl to...
-       (rtx_reader::m_string_obstack): ...this new field.
-       (rtx_reader::m_ptr_locs): New field.
-       (rtx_reader::m_ptr_loc_obstack): New field.
-       (rtx_reader::m_joined_conditions): New field.
-       (rtx_reader::m_joined_conditions_obstack): New field.
-       (rtx_reader::m_md_constants): New field.
-       (rtx_reader::m_enum_types): New field.
-       * read-rtl.c (apply_iterator_to_string): Convert to...
-       (rtx_reader::apply_iterator_to_string): ...member function.
-       (copy_rtx_for_iterators): Convert to...
-       (rtx_reader::copy_rtx_for_iterators): ...member function.
-       (add_condition_to_string): Use rtx_reader_ptr for
-       calls join_c_conditions.
-       (apply_iterators): Use rtx_reader_ptr for calls to
-       join_c_conditions and copy_rtx_for_iterators.
-       (read_conditions): Convert to...
-       (rtx_reader::read_conditions): ...member function.
-       (record_potential_iterator_use): Convert to...
-       (rtx_reader::record_potential_iterator_use): ...member function.
-       (read_mapping): Convert to...
-       (rtx_reader::read_mapping): ...member function.
-       (read_subst_mapping): Use rtx_reader_ptr for read_string call.
-       (read_rtx): Convert to...
-       (rtx_reader::read_rtx): ...member function.
-       (read_rtx_code): Convert to...
-       (rtx_reader::read_rtx_code): ...member function.
-       (read_rtx_operand): Convert to...
-       (rtx_reader::read_rtx_operand): ...member function.  Update for move
-       of string_obstack to a field.
-       (read_nested_rtx): Convert to..
-       (rtx_reader::read_nested_rtx): ...member function.
-       (read_rtx_variadic): Convert to..
-       (rtx_reader::read_rtx_variadic): ...member function.
- 2016-10-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
- 2016-10-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
-       for pointer type too.
-       (ipcp_update_vr): set_ptr_nonnull for pointer.
- 2016-10-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
-       pt_solution_singleton_p.
-       * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
-       pt_solution_singleton_or_null_p from pt_solution_singleton_p.
-       * tree-ssa-structalias.c (find_what_p_points_to): Preserve
-       pointer nonnull computed by VRP.
-       Also Conservatively set pt.null to 1.
-       (pt_solution_reset): Conservatively set pt.null to 1.
-       (pt_solution_singleton_or_null_p): Renamed from
-       pt_solution_singleton_p.
-       * tree-ssanames.h (set_ptr_nonnull): Declare.
-       (get_ptr_nonnull): Likewise.
-       * tree-ssanames.c (set_ptr_nonnull): New.
-       (get_ptr_nonnull): Likewise.
-       * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
-       (evrp_dom_walker::before_dom_children): Likewise.
- 2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
-       * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
-       * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
-       * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
-       * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
-       * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
-       (rs6000_option_override_internal): Clear it if ABI_AIX.
-       * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
-       * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
- 2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * gimple-ssa-strength-reduction.c (record_increment): Remove
-       garbage comment.
- 2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
-       * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
-       that the result is non-zero if it is true.
-       (maybe_expand_shift): New wrapper around expand_shift_1.
-       (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
- 2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR tree-optimization/77916
-       * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
-       Don't allow a MINUS_EXPR for pointer arithmetic for either known
-       or unknown strides.
-       (record_increment): Increments of -1 for unknown strides just use
-       a multiply initializer like other negative values.
-       (analyze_increments): Remove stopgap solution for -1 increment
-       applied to pointer arithmetic.
- 2016-10-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       * dominance.c (dom_info::dom_info): Add new constructor for region
-       which is vector of basic blocks.
-       (dom_init): New method to initialize members common for both
-       constructors.
-       (dom_info::dom_info): Invoke dom_init for partial initialization.
-       (dom_info::get_idom): Add check to corner cases on basic blocks which
-       are not in region.
-       (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
-       to detect unreachable bbs.
-       (dom_info::calc_idoms): Likewise.
-       (compute_dom_fast_query_in_region): New function.
-       (calculate_dominance_info_for_region): Likewise.
-       (free_dominance_info_for_region): Likewise.
-       * dominance.h: Add prototypes for introduced region-based functions
-       tree-if-conv.c: (build_region): New function.
-       (if_convertible_loop_p_1): Invoke local version of post-dominators
-       calculation before basic block predication with subsequent freeing
-       post-dominator info.
-       (tree_if_conversion): Remove free of post-dominator info
-       (pass_if_conversion::execute): Delete detection of infinite loops
-       and fake edges to exit block since post-dominator calculation is
-       performed per if-converted loop only.
- 2016-10-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR target/77308
-       * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
-       register explicitly.
-       * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
-       optimizing for size.
- 2016-10-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c: Delete inclusion of
-       cortex-a57-fma-steering.h.
-       (aarch64_override_options): Delete call
-       to aarch64_register_fma_steering.
-       * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
-       * config/aarch64/cortex-a57-fma-steering.h: Delete.
-       * config/aarch64/aarch64-passes.def: New file.
-       * config/aarch64/cortex-a57-fma-steering.c
-       (aarch64_register_fma_steering): Delete definition.
-       (make_pass_fma_steering): Remove static qualifier.
-       * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
-       (cortex-a57-fma-steering.o): Remove dependency on
-       cortex-a57-fma-steering.h.
- 2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
-       * explow.c (validize_mem): Do not modify the argument in-place.
- 2016-10-17  Thomas Schwinge  <thomas@codesourcery.com>
-       * tree-streamer.c (record_common_node): Explicitly list expected
-       tree codes.
- 2016-10-17  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77988
-       * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
- 2016-10-17  Marek Polacek  <polacek@redhat.com>
-       * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
- 2016-10-17  Richard Biener  <rguenther@suse.de>
-       * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
-       before using it.
- 2016-10-17  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       PR tree-optimization/71636
-       * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
- 2016-10-17  Richard Biener  <rguenther@suse.de>
-       * gimplify.c (gimplify_function_tree): Do not move the outer
-       binds block.
- 2016-10-17  Jakub Jelinek  <jakub@redhat.com>
-       * langhooks.h (struct lang_hooks_for_decls): Remove
-       function_decl_explicit_p, function_decl_deleted_p and
-       function_decl_defaulted hooks.  Add decl_dwarf_attribute hook.
-       * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
-       (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
-       LANG_HOOKS_FUNCTION_DECL_DELETED_P,
-       LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
-       (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
-       (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
-       LANG_HOOKS_FUNCTION_DECL_DELETED_P and
-       LANG_HOOKS_FUNCTION_DECL_DEFAULTED.  Add
-       LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
-       * langhooks.c (lhd_decl_dwarf_attribute): New function.
-       * dwarf2out.c (gen_subprogram_die): Use
-       lang_hooks.decls.decl_dwarf_attribute instead of
-       lang_hooks.decls.function_decl_*.
- 2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>
-       PR ada/37139
-       PR ada/67205
-       * common.opt (-ftrampolines): New option.
-       * doc/invoke.texi (Code Gen Options): Document it.
-       * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
-       * doc/tm.texi: Regenerate.
-       * builtins.def: Add init_descriptor and adjust_descriptor.
-       * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
-       on platforms with descriptors.
-       (expand_builtin_init_descriptor): New function.
-       (expand_builtin_adjust_descriptor): Likewise.
-       (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
-       <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
-       * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
-       FLAGS parameter.  Deal with indirect calls by descriptor and adjust.
-       Set STATIC_CHAIN_REG_P on the static chain register, if any.
-       (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
-       (expand_call): Likewise.  Move around call to prepare_call_address
-       and pass all flags to it.
-       * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
-       * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
-       (gimple_call_set_by_descriptor): New setter.
-       (gimple_call_by_descriptor_p): New getter.
-       * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
-       (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
-       * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
-       * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
-       (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
-       * rtl.h (STATIC_CHAIN_REG_P): New macro.
-       * rtlanal.c (find_first_parameter_load): Skip static chain registers.
-       * target.def (custom_function_descriptors): New POD hook.
-       * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
-       (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
-       * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
-       Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
-       * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
-       (build_common_builtin_nodes): Initialize init_descriptor and
-       adjust_descriptor.
-       * tree-nested.c: Include target.h.
-       (struct nesting_info): Add 'any_descr_created' field.
-       (get_descriptor_type): New function.
-       (lookup_element_for_decl): New function extracted from...
-       (create_field_for_decl): Likewise.
-       (lookup_tramp_for_decl): ...here.  Adjust.
-       (lookup_descr_for_decl): New function.
-       (convert_tramp_reference_op): Deal with descriptors.
-       (build_init_call_stmt): New function extracted from...
-       (finalize_nesting_tree_1): ...here.  Adjust and deal with descriptors.
-       * defaults.h (FUNCTION_ALIGNMENT): Define.
-       (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
-       * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
-       * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
-       * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
-       * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
- 2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
-       constants in CONST_VECTORs.
- 2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
-       register as destination of bmask.
-       (vector_init_bshuffle): Likewise.
-       * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
-       (bmaskdi_vis): Enable only in 64-bit mode.
- 2016-10-15  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
-       make LR a separately shrink-wrapped component unless savres_strategy
-       contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}.  Do not wrap
-       GPRs unless both {SAVE,REST}_INLINE_GPRS.  Do not disallow all
-       wrapping when not both {SAVE,REST}_INLINE_GPRS.
- 2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>
-       * optabs.c (expand_parity): Fix mode mismatch, add final conversion
-       and keep looping on failure.
- 2016-10-14  David Malcolm  <dmalcolm@redhat.com>
-       * print-rtl-function.c (print_edge): Omit "(flags)" when none are
-       set.
-       (print_rtx_function): Update example in comment for...
-       * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
-       non-virtual pseudos with a '%' sigil followed by the regno, offset
-       by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
-       pseudo is dumped as "%0".
- 2016-10-14  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/77959
-       * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
-       return a MEM.
- 2016-10-14  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc-passes.def: New file.
-       * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
-       * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
-       * config/sparc/sparc.c (sparc_option_override): Don't register passes.
- 2016-10-14  Pat Haugen  <pthaugen@us.ibm.com>
-       * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
-       loop peel to loops with exit test at the beginning.
- 2016-10-14  Pat Haugen  <pthaugen@us.ibm.com>
-       PR rtl-optimization/68212
-       * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
-       frequency when computing scale factor for peeled copies.
-       * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
-       values for switch/peel blocks/edges.
- 2016-10-14  Pedro Alves  <palves@redhat.com>
-       * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
- 2016-10-14  Catherine Moore  <clm@codesourcery.com>
-       * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
-       micromips_globals to zero.
- 2016-10-14  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77979
-       * tree-vrp.c (compare_name_with_value): Handle released SSA names
-       in the equivalency sets.
-       (compare_names): Likewise.
+ 2018-07-17  Jeff Law  <law@redhat.com>
  
- 2016-10-14  Martin Liska  <mliska@suse.cz>
+       * config/arm/arm.c (get_label_padding): Update for recent
+       changes to label_to_alignment.
  
-       * builtins.h(target_char_cst_p): Declare the function.
-       * builtins.c (fold_builtin_memchr): Remove.
-       (target_char_cst_p): Move the function from gimple-fold.c.
-       (fold_builtin_3): Do not call the function.
-       * gimple-fold.c (gimple_fold_builtin_memchr): New function.
-       (gimple_fold_builtin): Call the function.
-       * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
+       PR tree-optimization/86010
+       * tree-ssa-dse.c (compute_trims): Fix typo/thinko.
  
- 2016-10-14  Martin Liska  <mliska@suse.cz>
+       * config/mips/mips.c (vr4130_align_insns): Update for recent
+       changes to label_to_alignment.
  
-       * builtins.c (fold_builtin_strcmp): Remove function.
-       (fold_builtin_strncmp): Likewise.
-       (fold_builtin_2): Remove call of the function.
-       (fold_builtin_3): Likewise.
-       * fold-const-call.c (fold_const_call): Add constant folding
-       for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
-       * fold-const-call.h (build_cmp_result): Declare the function.
-       * gimple-fold.c (gimple_load_first_char): New function.
-       (gimple_fold_builtin_string_compare): Likewise.
-       (gimple_fold_builtin): Call the function.
+       * config/frv/frv.c (frv_label_align): Update for recent changes
+       to label_to_alignment.
+       * config/nios2/nios2.c (nios2_label_align): Update for recent
+       changes which dropped ALIGN_LABELS_LOG.
+ 2018-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+       * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart)
+       (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT.
+ 2018-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.c (arc_label_align): Use align_labels instead of
+       deprecated align_labels_log.
+ 2018-07-17  Richard Biener  <rguenther@suse.de>
+       PR lto/86456
+       * dwarf2out.c (init_sections_and_labels): Always generate
+       a debug_line_str_section for early LTO debug.
+       (dwarf2out_finish): Reset debug_line_str_hash output early.
+       Bump counter for extra dwarf5 .debug_loc labels to not conflict
+       with fat LTO part.
+       (dwarf2out_early_finish): Output debug_line_str.
+ 2018-07-17  Robin Dapp  <rdapp@linux.ibm.com>
+       * config/s390/s390.c (preferred_la_operand_p): Do not use LA with
+       index register on z196 or later.
+ 2018-07-17  Robin Dapp  <rdapp@linux.ibm.com>
+       * config/s390/s390.c (s390_default_align): Set default function
+       alignment to 16.
+       (s390_override_options_after_change): Call s390_default align.
+       (s390_option_override_internal): Call s390_default_align.
+       (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
+ 2018-07-17  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/86542
+       * omp-low.c (create_task_copyfn): Copy over also fields corresponding
+       to _looptemp_ clauses, other than the first two.
+ 2018-07-17  Martin Liska  <mliska@suse.cz>
+       * opts.c: Do not enable OPT_falign_* for -Os.
+ 2018-07-17  Martin Liska  <mliska@suse.cz>
+       * align.h (MAX_CODE_ALIGN): New.
+       (MAX_CODE_ALIGN_VALUE): New.
+       * common/config/i386/i386-common.c (ix86_handle_option):
+       (MAX_CODE_ALIGN): Moved to align.h.
+       * final.c (MAX_CODE_ALIGN): Likewise.
+       * opts.c (parse_and_check_align_values):
+       (MAX_CODE_ALIGN): Likewise.
+       (MAX_CODE_ALIGN_VALUE): Likewise.
+ 2018-07-17  Martin Liska  <mliska@suse.cz>
+       * config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing
+         in order to fulfil coding style.
+       * config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise.
+       * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
+       * config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise.
+       * config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise.
+       * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise.
+       * config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise.
+       * config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise.
+       (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+ 2018-07-17  Martin Liska  <mliska@suse.cz>
+       * align.h: New file.
+       * config/alpha/alpha.c (alpha_align_insns_1): Use align_functions directly.
+       * config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type
+       align_flags of label_to_alignment.
+       * config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into align_flags
+       class.
+       * config/m68k/m68k.c: Do not use removed align_labels_value and
+       align_loops_value.
+       * config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class.
+       (LOOP_ALIGN): Likewise.
+       (LABEL_ALIGN): Likewise.
+       * config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP):
+       Remove not used macro.
+       (rs6000_loop_align): Change return type to align_flags.
+       (rs6000_loop_align_max_skip): Remove.
+       * config/rs6000/rs6000-protos.h (rs6000_loop_align):
+       Change return type to align_flags.
+       * config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP):
+       Remove not used macro.
+       (rs6000_loop_align):  Change return type to align_flags.
+       (rs6000_loop_align_max_skip): Remove.
+       * config/rx/rx.h (JUMP_ALIGN): Wrap integer values
+       * config/rx/rx-protos.h (rx_align_for_label): Make it
+         static function.
+       * config/rx/rx.c (rx_align_for_label): Change return type
+         to align_flags.
+       (rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP
+         macro definitions.
+       into align_flags class.
+       (LABEL_ALIGN): Likewise.
+       (LOOP_ALIGN): Likewise.
+       * config/s390/s390.c (s390_label_align): Use align_flags
+       class member.
+       (s390_asm_output_function_label): Likewise.
+       * config/sh/sh.c (sh_override_options_after_change):
+       Use align_flags class directly without macros.
+       (find_barrier): Likewise.
+       (barrier_align): Likewise.
+       (sh_loop_align): Likewise.
+       * config/spu/spu.c (spu_option_override):
+       Use align_flags_tuple::get_value instead of removed macros.
+       (spu_sched_init): Likewise.
+       * config/spu/spu.h (GTY): Likewise.
+       * config/visium/visium.c (visium_option_override):
+       Set "8" as default secondary alignment.
+       * config/visium/visium.h (SUBALIGN_LOG): Define to 3
+       in order to guarantee secondary alignment of 8.
+       * coretypes.h: Include align.h header file.
+       * doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP,
+       TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP
+         and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros.
+       * doc/tm.texi.in: Likewise.
+       * final.c (struct label_alignment): Remove not used structure.
+       (LABEL_ALIGN): Change type to align_flags.
+       (LOOP_ALIGN): Likewise.
+       (JUMP_ALIGN): Likewise.
+       (default_loop_align_max_skip): Remove.
+       (default_label_align_max_skip): Likewise.
+       (default_jump_align_max_skip): Likewise.
+       (default_label_align_after_barrier_max_skip):
+       (LABEL_TO_ALIGNMENT): Change to access label_align vector.
+       (LABEL_TO_MAX_SKIP): Remove.
+       (label_to_alignment): Return align_flags type instead of integer.
+       (label_to_max_skip): Remove.
+       (align_fuzz): Use align_flags type.
+       (compute_alignments): Use align_flags type and use align_flags::max
+       to combine multiple alignments.
+       (grow_label_align): Grow vec instead of C array.
+       (update_alignments): Assign just LABEL_TO_ALIGNMENT.
+       (shorten_branches):  Use align_flags type and use align_flags::max
+       to combine multiple alignments.
+       (final_scan_insn_1): Remove usage of secondary alignment that comes
+       from label alignment, but instead use proper secondary alignment
+       which is computed in grow_label_align.
+       * flags.h (struct align_flags_tuple): Move to align.h.
+       (struct align_flags): Likewise.
+       (state_align_loops): Rename to align_loops.
+       (state_align_jumps): Rename to align_jumps.
+       (state_align_labels): Rename to align_labels.
+       (state_align_functions): Rename to align_functions.
+       (align_loops_log): Remove.
+       (align_jumps_log): Remove.
+       (align_labels_log): Remove.
+       (align_functions_log): Remove.
+       (align_loops_max_skip): Remove.
+       (align_jumps_max_skip): Remove.
+       (align_labels_max_skip): Remove.
+       (align_functions_max_skip): Remove.
+       (align_loops_value): Remove.
+       (align_jumps_value): Remove.
+       (align_labels_value): Remove.
+       (align_functions_value): Remove.
+       * output.h (label_to_alignment): Change return type to align_flags.
+       (label_to_max_skip): Remove.
+       * target.def: Remove loop_align_max_skip, label_align_max_skip,
+       jump_align_max_skip macros.
+       * targhooks.h (default_loop_align_max_skip): Remove.
+       (default_label_align_max_skip): Likewise.
+       (default_jump_align_max_skip): Likewise.
+       (default_label_align_after_barrier_max_skip): Remove.
+       * toplev.c (read_log_maxskip): Use ::normalize function.
+       (parse_N_M): Remove not used argument and also call ::normalize.
+       (parse_alignment_opts): Do not pass unused arguments.
+       * varasm.c (assemble_start_function): Use directly align_functions
+       instead of removed macros.
+       * system.h: Do not poison removed macros.
+ 2018-07-17  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/86539
+       * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init
+       and cond temporaries don't have reference type if iterator has
+       pointer type.  For init use &for_pre_body instead of pre_p if
+       for_pre_body is non-empty.
+ 2018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.md (trunc<mode>sf2): Expand truncates of
+       double-double modes to SFmode directly directly.
+       (trunc<mode>sf2_fprs): Delete.
+ 2018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.c (init_float128_ibm): Use the correct names
+       for conversions between IFmode and the decimal floating point modes.
+       (init_float128_ieee): Use the correct names for conversions between
+       KFmode and the decimal floating point modes.
+ 2018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.c (init_float128_ibm): Use more correct names
+       for the conversions between TDmode and IFmode.
+       (init_float128_ieee): Use more correct names for the conversions
+       between TDmode and KFmode.
+ 2018-07-16  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/86526
+       * builtins.c (expand_builtin_memcmp): Formatting fixes.
+       (inline_expand_builtin_string_cmp): Likewise.
+       (inline_string_cmp): Likewise.  Use c_readstr instead of
+       builtin_memcpy_read_str.  Add unit_mode temporary.
+ 2018-07-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+       PR middle-end/86528
+       * builtins.c (check_access): Bail out if range[0] is no INTEGER_CST.
+       * expr.c (string_constant): Fix the element size of ARRAY_TYPE.
+ 2018-07-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions):
+       Alphabetize prototypes of built-in functions, separating out
+       built-in functions that are listed in this section but should be
+       described elsewhere.
+ 2018-07-16  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/86511
+       * expmed.c (emit_store_flag): Do not emit setcc followed by a
+       conditional move when trapping comparison was split to a
+       non-trapping one (and vice versa).
+ 2018-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
+       * config/s390/s390.c (s390_function_profiler): Generate nops
+       instead of profiler call sequences.
+       * config/s390/s390.opt: Add the new option.
+ 2018-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
+       * config/s390/s390.c (s390_function_profiler): Generate
+       __mcount_loc section.
+       * config/s390/s390.opt: Add the new option.
+ 2018-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
+       * common.opt: Add the new warning.
+       * config/s390/s390.c (s390_function_profiler): Emit "brasl
+       %r0,__fentry__" when -mfentry is specified.
+       (s390_option_override_internal): Disallow -mfentry for 31-bit
+       CPUs.
+       * config/s390/s390.opt: Add the new option.
  
- 2016-10-14  Nathan Sidwell  <nathan@acm.org>
+ 2018-07-16  Richard Biener  <rguenther@suse.de>
  
-       * gcov-io.c (gcov_open): Deconstify 'mode'.
+       PR lto/86523
+       * dwarf2out.c (dwarf2out_register_external_die): Assign DIE parents
+       for function-local FUNCTION_DECL and RESULT_DECL immediately.
  
- 2016-10-14  Martin Liska  <mliska@suse.cz>
+ 2018-07-16  Martin Liska  <mliska@suse.cz>
  
-       * fold-const.c (c_getstr): Support of properly \0-terminated
-       string constants.  New argument is added.
-       * fold-const.h: New argument is added.
+         PR ipa/86529
+       * ipa-pure-const.c (malloc_candidate_p): Revert ::get
+         to ::get_create.
  
- 2016-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2017-07-16  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
-       New function.
-       (aarch64_print_hint_for_core): Likewise.
-       (aarch64_print_hint_for_arch): Likewise.
-       (aarch64_validate_march): Use it.  Fix indentation in type signature.
-       (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
-       (aarch64_validate_mtune): Likewise.
-       (aarch64_handle_attr_arch): Likewise.
-       (aarch64_handle_attr_cpu): Likewise.
-       (aarch64_handle_attr_tune): Likewise.
+       * config/arc/arcHS.md: Update ARCHS scheduling rules.
  
- 2016-10-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 2017-07-16  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
-       and udivmod_optab.
+       * config/arc/arc-arch.h (arc_tune_attr): Add new tune parameters
+       for ARCHS4x.
+       * config/arc/arc-cpus.def (hs4x): New cpu.
+       (hs4xd): Likewise.
+       * config/arc/arc-tables.opt: Regenerate.
+       * config/arc/arc.c (arc_sched_issue_rate): New function.
+       (TARGET_SCHED_ISSUE_RATE): Define.
+       (TARGET_SCHED_EXPOSED_PIPELINE): Likewise.
+       * config/arc/arc.md (attr type): Add fpu_fuse, fpu_sdiv, fpu_ddiv,
+       fpu_cvt.
+       (attr tune): Add ARCHS4x tune values.
+       (attr tune_dspmpy): Define.
+       (*tst): Correct instruction type.
+       * config/arc/arcHS.md: Don't use this automaton for ARCHS4x cpus.
+       * config/arc/arcHS4x.md: New file.
+       * config/arc/fpu.md: Update instruction type attributes.
+       * config/arc/t-multilib: Regenerate.
  
- 2016-10-13  Andreas Schwab  <schwab@linux-m68k.org>
+ 2018-07-16  Tom de Vries  <tdevries@suse.de>
  
-       * config/m68k/m68k.c (m68k_option_override): Check
-       opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
-       instead of stack_limit_rtx.
+       PR debug/86455
+       * var-tracking.c (vt_initialize): Fix pre_dec handling.
  
- 2016-10-13  Jakub Jelinek  <jakub@redhat.com>
+ 2018-07-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
  
-       * dwarf2out.c (gen_member_die): Handle inline static data member
-       definitions.
+       * config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add
+       early clobber.
  
- 2016-10-13  Nathan Sidwell  <nathan@acm.org>
-       * gcov-io.c (gcov_open): Fix documentation.  Simplify setting
-       gcov_var.mode.  Remove unnecessary fstat.
- 2016-10-13  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR bootstrap/77962
-       * function.c (thread_prologue_and_epilogue_insns): Call all
-       make_*logue_seq in the same order as traditional.  Call them
-       all a second time if shrink_wrapped_separate.
- 2016-10-13  Marek Polacek  <polacek@redhat.com>
-       * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
-       insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
-       use -Wno-error.
- 2016-10-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR tree-optimization/77937
-       * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
-       to infinite when we have a pointer with an increment of -1.
- 2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
-       into ...
-       * memmodel.h: This file.
-       * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
-         caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
-         cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
-         combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
-         common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
-         common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
-         common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
-         compare-elim.c, config/aarch64/aarch64-builtins.c,
-         config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
-         config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
-         config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
-         config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
-         config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
-         config/darwin.c, config/epiphany/epiphany.c,
-         config/epiphany/mode-switch-use.c,
-         config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
-         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
-         config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
-         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
-         config/m68k/m68k.c, config/mcore/mcore.c,
-         config/microblaze/microblaze.c, config/mmix/mmix.c,
-         config/mn10300/mn10300.c, config/moxie/moxie.c,
-         config/msp430/msp430.c, config/nds32/nds32-cost.c,
-         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
-         config/nds32/nds32-memory-manipulation.c,
-         config/nds32/nds32-predicates.c, config/nds32/nds32.c,
-         config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
-         config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
-         config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
-         config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
-         config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
-         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
-         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
-         config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
-         coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
-         df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
-         dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
-         expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
-         ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
-         ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
-         ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
-         loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
-         lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
-         lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
-         lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
-         postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
-         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
-         reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
-         rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
-         sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
-         stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
-         targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
-         tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
-         tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
-         tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
-         var-tracking.c, varasm.c: Include memmodel.h.
-       * genattrtab.c (write_header): Include memmodel.h in generated file.
-       * genautomata.c (main): Likewise.
-       * gengtype.c (open_base_files): Likewise.
-       * genopinit.c (main): Likewise.
-       * genconditions.c (write_header): Include memmodel.h earlier in
-       generated file.
-       * genemit.c (main): Likewise.
-       * genoutput.c (output_prologue): Likewise.
-       * genpeep.c (main): Likewise.
-       * genpreds.c (write_insn_preds_c): Likewise.
-       * genrecog.c (write_header): Likewise.
-       * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
- 2016-10-13  David Malcolm  <dmalcolm@redhat.com>
-       * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
-       for new "compact" param of print_rtx_function.  Check for "cinsn"
-       rather than "insn".
-       * print-rtl-function.c (flag_compact): New decl.
-       (print_rtx_function): Add param "compact" and use it to set
-       flag_compact, adding a description of the effect to the leading
-       comment, and updating the example output.
-       * print-rtl.c (flag_compact): New variable.
-       (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
-       mode.
-       (print_rtx_operand_code_i): When printing source locations, wrap
-       xloc.file in quotes.  Don't print INSN_CODEs in compact mode.
-       (print_rtx_operand_code_r): Don't print regnos for hard regs and
-       virtuals in compact mode.
-       (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
-       apart from in LABEL_REFs.
-       (print_rtx_operand): In case 'w', don't print in hex in compact mode.
-       Don't print basic block ids in compact mode.
-       (print_rtx):  In compact mode, prefix the code of insns with "c",
-       only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
-       * print-rtl.h (print_rtx_function): Add "compact" param.
- 2016-10-13  Richard Earnshaw  <rearnsha@arm.com>
-       * arm.h (TARGET_VFP): Delete.
-       (TARGET_VFPD32): Remove references to TARGET_VFP.
-       (TARGET_VFP3, TARGET_VFP5): Likewise.
-       (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
-       (TARGET_NEON_FP16): Likewise.
-       (TARGET_FMA): Likewise.
-       (TARGET_CRYPTO): Likewise.
-       (TARGET_NEON): Likewise.
-       (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
-       (FUNCTION_ARG_REGNO_P): Likewise.
-       * arm.c (arm_option_check_internal): Likewise.
-       (arm_option_override): Likewise.
-       (use_return_insn): Likewise.
-       (arm_function_value_regno_p): Likewise.
-       (arm_apply_result_size): Likewise.
-       (use_vfp_abi): Likewise.
-       (arm_legitimate_address_outer_p): Likewise.
-       (thumb2_legitimate_address_p): Likewise.
-       (arm_legitimate_index_p): Likewise.
-       (thumb2_legitimate_index_p): Likewise.
-       (arm_legitimate_address): Likewise.
-       (arm_get_vfp_saved_size): Likewise.
-       (arm_emit_vfp_multi_reg_pop): Likewise.
-       (arm_get_frame_offsets): Likewise.
-       (arm_save_coproc_regs): Likewise.
-       (arm_hard_regno_mode_ok): Likewise.
-       (arm_expand_epilogue_apcs_frame): Likewise.
-       (arm_expand_epilogue): Likewise.
-       (arm_file_start): Likewise.
-       (arm_conditional_register_usage): Likewise.
-       (arm_validize_comparison): Use vfp_compare_operand directly.
-       * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
-       (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
-       unsupported usage.
-       (arm_atomic_assign_expand_fenv): Likewise.
-       * arm.md (divsf3): Likewise.
-       (arm_negsi2): Likewise.
-       (absdf2): Likewise.
-       (arm_movdi): Likewise.
-       (arm_movt): Likewise.
-       (cbranchsf4): Change predicate to vfp_compare_operand.
-       (cbranchdf4): Change predicate to vfp_compare_operand.
-       (cstorehf4): Change predicate to vfp_compare_operand.
-       (cstoresf4): Change predicate to vfp_compare_operand.
-       (cstoredf4): Change predicate to vfp_compare_operand.
-       (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
-       (movhi_insn_arch4, movhi_bytes): Likewise.
-       * constraints.md (Dt): Likewise.
-       (Dp): Likewise.
-       * iterators.md (SDF): Likewise.
-       * predicates.md (arm_float_compare_operand): Delete.
-       (const_double_vcvt_power_of_two_reciprocal): Remove references to
-       TARGET_VFP.
-       (const_double_vcvt_power_of_two): Likewise.
-       * thumb2.md thumb2_movsi_insn): Likewise.
-       * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
-       (movhf_vfp): Likewise.
-       (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
-       (movdi_vfp, movdi_vfp_cortexa8): Likewise.
-       (movsf_vfp, thumb2_movsf_vfp): Likewise.
-       (movdf_vfp, thumb2_movdf_vfp): Likewise.
-       (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
-       (subsf3_vfp, divsf3_vfp): Likewise.
-       (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
-       (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
-       (mulsf3negsfsubsf_vfp): Likewise.
-       (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
-       (floatunssisf2, sqrtsf2_vfp): Likewise.
-       (movcc_vfp): Likewise.
-       (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
-       (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
-       (push_multi_vfp): Likewise.
-       (set_fpscr, get_fpscr): Likewise.
-       * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
- 2016-10-13  Richard Earnshaw  <rearnsha@arm.com>
-       * arm.h (TARGET_VFP): Unconditionally define to 1.
-       (arm_fpu_desc): Remove 'model' field.
-       (TARGET_FPU_MODEL): Delete.
-       * arm.c (all_fpus): Don't initialize the model field.
-       (arm_can_inline_p): Don't check the FPU model.
-       * arm-fpus.def: Remove redundant model field from all FPU
-       descriptions.
- 2016-10-13  Richard Biener  <rguenther@suse.de>
-       PR middle-end/77826
-       * genmatch.c (struct capture): Add value_match member.
-       (commutate): Preserve value_match.
-       (lower_opt_convert): Likewise.
-       (lower_cond): Likewise.
-       (replace_id): Likewise.
-       (struct dt_operand): Add value_match member.
-       (decision_tree::cmp_node): Compare it.
-       (decision_tree::insert_operand): Honor it when finding and
-       when appending a DT_MATCH.
-       (dt_operand::gen_match_op): Generate a type check after
-       operand_equal_p if ! value_match for both GENERIC and GIMPLE.
-       (parser::get_internal_capture_id): New helper.
-       (parser::finish_match_operand): New function lowering @@<id>.
-       (parser::parse_capture): Parse @@<id> as value-match.
-       (parser::parse_expr): Use get_internal_capture_id.
-       (parser::parse_simplify): Call finish_match_operand.
-       (walk_captures): New helper.
-       * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
-       of operand_equal_p.
-       ((X /[ex] A) * A -> X): Likewise.
-       ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
-       convert[12] and value-matching.
-       ((A | B) & (A | C) ->  A | (B & C)): Likewise.
-       ((X | Y) | Y -> X | Y): Likewise.
-       ((X ^ Y) ^ Y -> X): Likewise.
-       (A - (A & B) -> ~B & A): Likewise.
-       ((T)(P + A) - (T)P -> (T) A): Likewise.
-       ((T)P - (T)(P + A) -> -(T) A): Likewise.
-       ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
-       * doc/match-and-simplify.texi: Amend capture section.
- 2016-10-13  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.md (umul_600): Remove predicated variant.
-       (umul64_600): Likewise.
- 2016-10-13  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop.c (loop_niters_no_overflow): New func.
-       (vect_transform_loop): Call loop_niters_no_overflow.  Pass the
-       no-overflow information to vect_do_peeling_for_loop_bound and
-       vect_gen_vector_loop_niters.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
-       iterates 1 time.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
-       adjust_vec automatically.
-       (slpeel_add_loop_guard): Remove param cond_expr_stmt_list.  Rename
-       param exit_bb to guard_to.
-       (slpeel_checking_verify_cfg_after_peeling):
-       (set_prologue_iterations):
-       (create_lcssa_for_virtual_phi): New func which is factored out from
-       slpeel_tree_peel_loop_to_edge.
-       (slpeel_tree_peel_loop_to_edge):
-       (iv_phi_p): New func.
-       (vect_can_advance_ivs_p): Call iv_phi_p.
-       (vect_update_ivs_after_vectorizer): Call iv_phi_p.  Directly insert
-       new gimple stmts in basic block.
-       (vect_gen_niters_for_prolog_loop): Rename to...
-       (vect_gen_prolog_loop_niters): ...Rename from.  Change parameters and
-       adjust implementation.
-       (vect_update_inits_of_drs): Fix code style issue.  Convert niters to
-       sizetype if necessary.
-       (vect_build_loop_niters): Move to here from tree-vect-loop.c.  Change
-       it to external function.
-       (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
-       (vect_gen_vector_loop_niters_mult_vf): New.
-       (slpeel_update_phi_nodes_for_loops): New.
-       (slpeel_update_phi_nodes_for_guard1): Reimplement.
-       (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
-       (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
-       * tree-vect-loop.c (vect_build_loop_niters): Move to file
-       tree-vect-loop-manip.c
-       (vect_generate_tmps_on_preheader): Delete.
-       (vect_transform_loop): Rename vectorization_factor to vf.  Call
-       vect_do_peeling instead of vect_do_peeling-* functions.
-       * tree-vectorizer.h (vect_do_peeling): New decl.
-       (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
-       (vect_do_peeling_for_loop_bound): Delete.
-       (vect_do_peeling_for_alignment): Delete.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
-       duplicated loop after its preheader and after the original loop.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
-       has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop.c (vectorizable_live_operation): Support handling
-       for live variable outside loop but not in lcssa form.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * cfg.c (reset_original_copy_tables): New func.
-       * cfg.h (reset_original_copy_tables): New decl.
- 2016-10-13  Jakub Jelinek  <jakub@redhat.com>
-       PR c/77946
-       * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
-       public_flag.
-       * varasm.c (default_binds_local_p_3): Formatting fix.
- 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
-       style issue.
-       (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
-       Remove useless code.
- 2016-10-13  Martin Liska  <mliska@suse.cz>
-       PR tree-optimization/77943
-       * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
-       a different EH landing pads.
- 2016-10-13  Jakub Jelinek  <jakub@redhat.com>
-       PR target/77957
-       * hooks.h (hook_tree_void_null): Declare.
-       * hooks.c (hook_tree_void_null): New function.
-       * langhooks.c (lhd_return_null_tree_v): Remove.
-       * langhooks-def.h (lhd_return_null_tree_v): Remove.
-       * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
-       set y to const0_rtx.
-       * function.c (stack_protect_epilogue): Likewise.
-       * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
-       if TARGET_THREAD_SSP_OFFSET is defined.
-       * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
-       * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
-       * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
-       * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
-       * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
-       (ix86_stack_protect_guard): New function.
- 2016-10-13  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (tree_add_const_value_attribute): Do not try
-       rtl_for_decl_init during early phase.
-       (gen_variable_die): Do not create locations during early phase.
-       (gen_label_die): Likewise.
-       (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
-       twice.
- 2016-10-12  Richard Biener  <rguenther@suse.de>
-       * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
-       try_add_new_range and made to eturn new range.
-       (evrp_dom_walker::before_dom_children): Push op1 value range before
-       pushing op0 value range.
- 2016-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR tree-optimization/77937
-       * gimple-ssa-strength-reduction.c (analyze_increments): Use
-       POINTER_TYPE_P on the candidate type to determine whether
-       candidates in this chain require pointer arithmetic.
- 2016-10-12  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
-       correction if the type is smaller than a word.
-       (visium_select_cc_mode): Add ... fall through ... comment.
- 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.c (machine_function): Add new fields
-       gpr_is_wrapped_separately and lr_is_wrapped_separately.
-       (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
-       TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
-       TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
-       TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
-       TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
-       TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
-       (rs6000_get_separate_components): New function.
-       (rs6000_components_for_bb): New function.
-       (rs6000_disqualify_components): New function.
-       (rs6000_emit_prologue_components): New function.
-       (rs6000_emit_epilogue_components): New function.
-       (rs6000_set_handled_components): New function.
-       (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
-       Don't emit GPR saves if gpr_is_wrapped_separately for that register.
-       (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
-       (rs6000_emit_epilogue): Don't emit GPR restores if
-       gpr_is_wrapped_separately for that register.  Don't make a
-       REG_CFA_RESTORE note for registers we did not restore, either.
- 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (thread_prologue_and_epilogue_insns): Call
-       try_shrink_wrapping_separate.  Compute the prologue_seq afterwards,
-       if it has possibly changed.  Compute the split_prologue_seq and
-       epilogue_seq later, too.
-       * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
-       (dump_components): New function.
-       (struct sw): New struct.
-       (SW): New function.
-       (init_separate_shrink_wrap): New function.
-       (fini_separate_shrink_wrap): New function.
-       (place_prologue_for_one_component): New function.
-       (spread_components): New function.
-       (disqualify_problematic_components): New function.
-       (emit_common_heads_for_components): New function.
-       (emit_common_tails_for_components): New function.
-       (insert_prologue_epilogue_for_components): New function.
-       (try_shrink_wrapping_separate): New function.
-       * shrink-wrap.h: Declare try_shrink_wrapping_separate.
- 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
-       * regrename.c (build_def_use): Invalidate chains that have a
-       REG_CFA_RESTORE on some instruction.
- 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
-       * dce.c (delete_unmarked_insns): Don't delete instructions with
-       a REG_CFA_RESTORE note.
- 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
-       * common.opt (-fshrink-wrap-separate): New flag.
-       * doc/invoke.texi: Document it.
-       * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
-       * doc/tm.texi: Regenerate.
-       * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
-       * target.def (shrink_wrap): New hook vector.
-       (get_separate_components, components_for_bb, disqualify_components,
-       emit_prologue_components, emit_epilogue_components,
-       set_handled_components): New hooks.
+ 2018-07-16  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR tree-optimization/86514
+       * tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a
+       conversion to a boolean type from a type with greater precision.
  
-       * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
-       vector return by reference only if -Wpsabi.
-       (rs6000_pass_by_reference): Similarly, for argument passing.
+ 2018-07-16  Tom de Vries  <tdevries@suse.de>
  
- 2016-10-12  David Malcolm  <dmalcolm@redhat.com>
+       * var-tracking.c (vt_initialize): Print adjusted insn slim if
+       dump_flags request TDF_SLIM.
  
-       * function-tests.c: Include "print-rtl.h".
-       (selftest::test_expansion_to_rtl): Call print_rtx_function on the
-       function, and verify what is dumped.
-       * print-rtl-function.c (print_edge): New function.
-       (begin_any_block): New function.
-       (end_any_block): New function.
-       (can_have_basic_block_p): New function.
-       (print_rtx_function): Track the basic blocks of insns in the
-       chain, wrapping those that are within blocks within "(block)"
-       directives.  Remove the "(cfg)" directive.
+ 2018-07-16  Aldy Hernandez  <aldyh@redhat.com>
  
- 2016-10-12  David Malcolm  <dmalcolm@redhat.com>
+         * fold-const.c (int_const_binop_1): Abstract...
+         (wide_int_binop): ...wide int code here.
+       (poly_int_binop): ...poly int code here.
+       Abstract the rest of int_const_binop_1 into int_const_binop.
+         * fold-const.h (wide_int_binop): New.
+         * tree-vrp.c (vrp_int_const_binop): Call wide_int_binop.
+       Remove useless PLUS/MINUS_EXPR case.
+         (zero_nonzero_bits_from_vr): Move wide int code...
+         (zero_nonzero_bits_from_bounds): ...here.
+         (extract_range_from_binary_expr_1): Move mask optimization code...
+         (range_easy_mask_min_max): ...here.
+         * tree-vrp.h (zero_nonzero_bits_from_bounds): New.
+         (range_easy_mask_min_max): New.
  
-       * selftest.c (selftest::read_file): New function.
-       (selftest::test_read_file): New function.
-       (selftest::selftest_c_tests): Call test_read_file.
-       * selftest.h (selftest::read_file): New decl.
+ 2018-07-15  Jeff Law  <law@redhat.com>
  
- 2016-10-12  Richard Biener  <rguenther@suse.de>
+       PR target/85993
+       * config/sh/sh.c (output_mi_thunk): Remove dead conditional
+       block.
  
-       PR debug/77947
-       * cgraphunit.c (analyze_functions): Preserve cgraph nodes
-       function context.
+ 2018-07-14  Jim Wilson  <jimw@sifive.com>
  
- 2016-10-12  Thomas Schwinge  <thomas@codesourcery.com>
+       * config/riscv/linux.h (TARGET_ASM_FILE_END): New.
  
-       * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
+ 2018-07-14  Paul Koning  <ni1d@arrl.net>
  
-       * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
-       dwarf2out_assembly_start.
+       * config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes.
  
-       * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
+ 2018-07-13  Jan Hubicka  <hubicka@ucw.cz>
  
-       * Makefile.in (SELFTEST_FLAGS): New variable.
-       (s-selftest, selftest-gdb, selftest-valgrind): Use it.
+       * lto-streamer-out.c (copy_function_or_variable): Dump info about
+       copying section.
  
-       * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
-       early_finish hook.
+ 2018-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
+           Steve Munroe  <munroesj52@gmail.com>
  
- 2016-10-12  Georg-Johann Lay  <avr@gjlay.de>
+       * config/rs6000/emmintrin.h (_mm_and_si128): New function.
+       (_mm_andnot_si128): Likewise.
+       (_mm_or_si128): Likewise.
+       (_mm_xor_si128): Likewise.
  
-       * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
-       dumped in RTL dumps.
+ 2018-07-13  Qing Zhao  <qing.zhao@oracle.com>
  
- 2016-10-12  Martin Liska  <mliska@suse.cz>
+       PR middle-end/78809
+       * builtins.c (expand_builtin_memcmp): Inline the calls first
+       when result_eq is false.
+       (expand_builtin_strcmp): Inline the calls first.
+       (expand_builtin_strncmp): Likewise.
+       (inline_string_cmp): New routine. Expand a string compare
+       call by using a sequence of char comparison.
+       (inline_expand_builtin_string_cmp): New routine. Inline expansion
+       a call to str(n)cmp/memcmp.
+       * doc/invoke.texi (--param builtin-string-cmp-inline-length):
+       New option.
+       * params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New.
  
-       * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
-       (gimple_fold_builtin_memory_op): Use the function.
-       (gimple_fold_builtin_strchr): Likewise.
-       (gimple_fold_builtin_strcat): Likewise.
-       (gimple_build): Likewise.
+ 2018-07-13  Richard Earnshaw  <rearnsha@arm.com>
  
- 2016-10-12  Nathan Sidwell  <nathan@acm.org>
+       * config/arm/driver-arm.c: Include arm-native.h.
+       (host_detect_local_cpu): Use auto-generated data tables.
+       (vendors, arm_cpu_table): Delete.  Move part information to ...
+       * config/arm/arm-cpus.in: ... here.
+       * config/arm/parsecpu.awk (gen_native): New function.
+       (vendor, part): New CPU fields.
+       (END): Add support for building the native CPU detection tables.
+       * config/arm/t-arm (arm-native.h): Add build rule.
+       (driver-arm.o): Add dependency on arm-native.h.
  
-       * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
+ 2018-07-13  Richard Biener  <rguenther@suse.de>
  
- 2016-10-12  Pierre-Marie de Rodat  <derodat@adacore.com>
-       * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
-       equivalent 32-bit constant (modulo 2**32) when that yields
-       smaller instructions.
-       (size_of_int_loc_descriptor): Update accordingly.
+       PR middle-end/85974
+       * match.pd (addr1 - addr2): Allow either of the operand to
+       have a conversion.
  
- 2016-10-12  Pierre-Marie de Rodat  <derodat@adacore.com>
+ 2018-07-13  Tom de Vries  <tdevries@suse.de>
  
-       * dwarf2out.c (dwarf2out_early_global_decl): For nested
-       functions, call dwarf2out_decl on the parent function first.
- 2016-10-12  Richard Biener  <rguenther@suse.de>
-       * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
-       on the conversion.
+       * tree-inline.c (remap_ssa_name): Save and reuse debug exprs generated
+       in remap_ssa_name.
  
- 2016-10-12  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-propagate.c
-       (substitute_and_fold_dom_walker::before_dom_children): Do not
-       ignore ASSERT_EXPRs but only preserve them.
-       * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
-       that have been propagated into.
-       (vrp_finalize): Enable DCE for substitute_and_fold.
- 2016-10-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77920
-       * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
-       (simplify_min_or_max_using_ranges): Pass in gsi and use it.
-       (simplify_abs_using_ranges): Likewise.
-       (simplify_conversion_using_ranges): Likewise.
-       (simplify_stmt_using_ranges): Adjust.
+ 2018-07-13  Jackson Woodruff  <jackson.woodruff@arm.com>
  
- 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
+       * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): Use
+       arrays instead of numbered variables.
  
-       PR tree-optimization/77929
-       * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
-       (*ops)[ranges[i].idx]->op != ranges[i].exp case.
+ 2018-07-13  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-10-12  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+       * config/sparc/sparc-protos.h (sparc_compute_frame_size): Delete.
+       * config/sparc/sparc.c (sparc_compute_frame_size): Make static.
  
-       PR target/77934
-       * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
-       needs a base register for arg 1.
+ 2018-07-13  Richard Biener  <rguenther@suse.de>
  
- 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/86452
+       * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for
+       instead of get_context_die.
  
-       * common.opt (Wimplicit-fallthrough) Turn into alias to
-       -Wimplicit-fallthrough=3.  Remove EnabledBy.
-       (Wimplicit-fallthrough=): New option.
-       * gimplify.c (warn_implicit_fallthrough_r): Use
-       OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
-       * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
-       to -Wimplicit-fallthrough=3.
-       (-Wimplicit-fallthrough=): Document.
+ 2018-07-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
+           Richard Biener  <rguenther@suse.de>
  
- 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
+       PR middle-end/86489
+       * tree-ssa-loop-niter.c (number_of_iterations_popcount): Check
+       that the loop latch destination where phi is defined.
+ 2018-07-12  Kito Cheng  <kito.cheng@gmail.com>
+         * config/riscv/riscv.c (enum riscv_privilege_levels): Add UNKNOWN_MODE.
+         (riscv_expand_epilogue): Add assertion to check interrupt mode.
+         (riscv_set_current_function): Extract getting interrupt type to new
+         function.
+         (riscv_get_interrupt_type): New function.
+         (riscv_merge_decl_attributes): New function, checking interrupt type is
+         same.
+         (TARGET_MERGE_DECL_ATTRIBUTES): Define.
+ 2018-07-12  Paul Koning  <ni1d@arrl.net>
+       * config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set
+       directive.
+ 2018-07-12  Paul Koning  <ni1d@arrl.net>
+       * doc/rtl.texi (REG_NONNEG): Remove decrement and branch until
+       zero reference, add doloop_end instead.
+       * doc/md.texi (decrement_and_branch_until_zero): Remove.
+       (Looping patterns): Remove decrement_and_branch_until_zero.  Add
+       detail for doloop_end.
+ 2018-07-12  Martin Sebor  <msebor@redhat.com>
+       PR c/86453
+       * attribs.c (decl_attributes): Reject conflicting attributes before
+       calling attribute handlers.
+ 2018-07-12  Jan Hubicka  <hubicka@ucw.cz>
+       * dumpfile.c (gcc::dump_manager::get_dump_file_name): Add PART
+        parameter.
+       (gcc::dump_manager::get_dump_file_name): likewise.
+       (dump_begin): Likewise.
+       * dumpfile.h (dump_begin): Update prototype.
+       (gcc::dump_manager::get_dump_file_name,
+       gcc::dump_manager::get_dump_file_name): Update prototype.
+ 2018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * internal-fn.h (vectorizable_internal_fn_p): New function.
+       * tree-vect-slp.c (compatible_calls_p): Likewise.
+       (vect_build_slp_tree_1): Remove nops argument.  Handle calls
+       to internal functions.
+       (vect_build_slp_tree_2): Update call to vect_build_slp_tree_1.
+ 2018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * fold-const.h (inverse_conditions_p): Declare.
+       * fold-const.c (inverse_conditions_p): New function.
+       * match.pd: Use inverse_conditions_p.  Add folds of view_converts
+       that test the inverse condition of a conditional internal function.
+       * internal-fn.h (vectorized_internal_fn_supported_p): Declare.
+       * internal-fn.c (internal_fn_mask_index): Handle conditional
+       internal functions.
+       (vectorized_internal_fn_supported_p): New function.
+       * tree-if-conv.c: Include internal-fn.h and fold-const.h.
+       (any_pred_load_store): Replace with...
+       (need_to_predicate): ...this new variable.
+       (redundant_ssa_names): New variable.
+       (ifcvt_can_use_mask_load_store): Move initial checks to...
+       (ifcvt_can_predicate): ...this new function.  Handle tree codes
+       for which a conditional internal function exists.
+       (if_convertible_gimple_assign_stmt_p): Use ifcvt_can_predicate
+       instead of ifcvt_can_use_mask_load_store.  Update after variable
+       name change.
+       (predicate_load_or_store): New function, split out from
+       predicate_mem_writes.
+       (check_redundant_cond_expr): New function.
+       (value_available_p): Likewise.
+       (predicate_rhs_code): Likewise.
+       (predicate_mem_writes): Rename to...
+       (predicate_statements): ...this.  Use predicate_load_or_store
+       and predicate_rhs_code.
+       (combine_blocks, tree_if_conversion): Update after above name changes.
+       (ifcvt_local_dce): Handle redundant_ssa_names.
+       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Handle
+       general conditional functions.
+       * tree-vect-stmts.c (vectorizable_call): Likewise.
  
-       * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
-       and GEU in DImode if TARGET_SUBXC.
-       * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
-       (seqdi<W:mode>_zero_subxc): Delete.
-       (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
-       (neg_seqdi<W:mode>_zero_vis3): Delete.
-       (plus_seqdi<W:mode>_zero): Likewise.
-       (minus_seqdi<W:mode>_zero): Likewise.
-       (plus_plus_sltu<W:mode>): Accept only register.
-       (addx<W:mode>): Likewise.
-       (plus_sltu<W:mode>_vis3): Likewise.
-       (plus_plus_sltu<W:mode>_vis3): Likewise.
-       (neg_sgeu<W:mode>_vis3): Delete.
-       (minus_sgeu<W:mode>_vis3): Likewise.
-       (addxc<W:mode>): Accept only registers.
-       (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
-       (minus_neg_sltu<W:mode>_subxc): Accept only register.
-       (neg_plus_sltu<W:mode>_subxc): Likewise.
-       (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
-       (minus_minus_sltu<W:mode>_subxc): Accept only register.
-       (sgeu<W:mode>_insn_subxc): Delete.
-       (plus_sgeu<W:mode>_subxc): Likewise.
-       (subxc<W:mode>): Accept only register.
-       (scc splitter): Split always GEU again.
- 2016-10-11  Jeff Law  <law@redhat.com>
-       PR tree-optimization/77424
-       * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
-       dead conditionals.  Assert that all e->aux fields are NULL.
- 2016-10-11  David Malcolm  <dmalcolm@redhat.com>
-       * print-rtl.c (print_rtx): Rename "i" to "idx".  Split out the
-       operand-printing "switch" statement into...
-       (print_rtx_operand_code_0): ...this new function, ...
-       (print_rtx_operand_code_e): ...this new function, ...
-       (print_rtx_operand_codes_E_and_V): ...this new function, ...
-       (print_rtx_operand_code_i): ...this new function, ...
-       (print_rtx_operand_code_r): ...this new function, ...
-       (print_rtx_operand_code_u): ...this new function, ...
-       (print_rtx_operand): ...and this new function.
- 2016-10-11  Uros Bizjak  <ubizjak@gmail.com>
-       * config/alpha/alpha-passes.def: New file.
-       * config/alpha/t-alpha: New file.
-       * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
-       (make_pass_handle_trap_shadows): New prototype.
-       (make_pass_align_insns): Ditto.
-       * config/alpha/alpha.c (alpha_option_override): Don't register
-       passes here.
-       * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
- 2016-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/77924
-       * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
-       distinct __ibm128 IBM extended double type if long doubles are
-       128-bits and the default format for long double is IEEE 128-bit.
- 2016-10-11  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
-       (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
-       (verify_die): New function.
-       (dwarf2out_finish): Call it.
-       (output_line_info): Handle case of -gsplit-dwarf without
-       DWARF2_ASM_LINE_DEBUG_INFO.
- 2016-10-11  Richard Biener  <rguenther@suse.de>
-       PR debug/77931
-       * gimple-low.c (lower_gimple_bind): Handle arbitrary common
-       sub-chains of BLOCK_VARS and gimple_bind_vars.
- 2016-10-11  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
-       * config/i386/znver1.md : Fix imov/imovx load type reservations.
- 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc.opt (msubxc): New option.
-       * doc/invoke.texi (SPARC options): Document it and tidy up.
-       * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
+ 2018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * internal-fn.h (can_interpret_as_conditional_op_p): Declare.
+       * internal-fn.c (can_interpret_as_conditional_op_p): New function.
+       * tree-ssa-math-opts.c (convert_mult_to_fma_1): Handle conditional
+       plus and minus and convert them into IFN_COND_FMA-based sequences.
+       (convert_mult_to_fma): Handle conditional plus and minus.
+ 2018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * doc/md.texi (cond_fma, cond_fms, cond_fnma, cond_fnms): Document.
+       * optabs.def (cond_fma_optab, cond_fms_optab, cond_fnma_optab)
+       (cond_fnms_optab): New optabs.
+       * internal-fn.def (COND_FMA, COND_FMS, COND_FNMA, COND_FNMS): New
+       internal functions.
+       (FMA): Use DEF_INTERNAL_FLT_FN rather than DEF_INTERNAL_FLT_FLOATN_FN.
+       * internal-fn.h (get_conditional_internal_fn): Declare.
+       (get_unconditional_internal_fn): Likewise.
+       * internal-fn.c (cond_ternary_direct): New macro.
+       (expand_cond_ternary_optab_fn): Likewise.
+       (direct_cond_ternary_optab_supported_p): Likewise.
+       (FOR_EACH_COND_FN_PAIR): Likewise.
+       (get_conditional_internal_fn): New function.
+       (get_unconditional_internal_fn): Likewise.
+       * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 5.
+       (gimple_match_op::gimple_match_op): Add a new overload for 5
+       operands.
+       (gimple_match_op::set_op): Likewise.
+       (gimple_resimplify5): Declare.
+       * genmatch.c (decision_tree::gen): Generate simplifications for
+       5 operands.
+       * gimple-match-head.c (gimple_simplify): Define an overload for
+       5 operands.  Handle calls with 5 arguments in the top-level overload.
+       (convert_conditional_op): Handle conversions from unconditional
+       internal functions to conditional ones.
+       (gimple_resimplify5): New function.
+       (build_call_internal): Pass a fifth operand.
+       (maybe_push_res_to_seq): Likewise.
+       (try_conditional_simplification): Try converting conditional
+       internal functions to unconditional internal functions.
+       Handle 3-operand unconditional forms.
+       * match.pd (UNCOND_TERNARY, COND_TERNARY): Operator lists.
+       Define ternary equivalents of the current rules for binary conditional
+       internal functions.
+       * config/aarch64/aarch64.c (aarch64_preferred_else_value): Handle
+       ternary operations.
+       * config/aarch64/iterators.md (UNSPEC_COND_FMLA, UNSPEC_COND_FMLS)
+       (UNSPEC_COND_FNMLA, UNSPEC_COND_FNMLS): New unspecs.
+       (optab): Handle them.
+       (SVE_COND_FP_TERNARY): New int iterator.
+       (sve_fmla_op, sve_fmad_op): New int attributes.
+       * config/aarch64/aarch64-sve.md (cond_<optab><mode>)
+       (*cond_<optab><mode>_2, *cond_<optab><mode_4)
+       (*cond_<optab><mode>_any): New SVE_COND_FP_TERNARY patterns.
+ 2018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * target.def (preferred_else_value): New target hook.
+       * doc/tm.texi.in (TARGET_PREFERRED_ELSE_VALUE): New hook.
        * doc/tm.texi: Regenerate.
-       * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
-       (CCNZ): ...this.
-       (CCX_NOOV): Rename into...
-       (CCXNZ): ...this.
-       (CCC): New.
-       (CCXC): Likewise.
-       * config/sparc/predicates.m (fcc_register_operand): Simplify.
-       (fcc0_register_operand): Likewise.
-       (icc_register_operand): New.
-       (icc_or_fcc_register_operand): Simplify.
-       (nz_comparison_operator): New.
-       (c_comparison_operator): Likewise.
-       (noov_compare_operator): Rename into...
-       (icc_comparison_operator): ...this.  Use above predicates.
-       (noov_compare64_operator): Rename into...
-       (v9_comparison_operator): ...this and tidy up.
-       (fcc_comparison_operator): New.
-       (icc_or_fcc_comparison_operator): Likewise.
-       (v9_register_compare_operator): Rename info...
-       (v9_register_comparison_operator): ...this.
-       * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
-       (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
-       for Niagara-7.
-       (sparc_fixed_condition_code_regs): New function.
-       (select_cc_mode): Remove ATTRIBUTE_UNUSED.  Adjust for CCNZ/CCXNZ
-       renaming and add support for CCC/CCXC.
-       (output_cbranch): Likewise.
-       (sparc_print_operand): Likewise.
-       (gen_v9_scc): Remove obsolete assertion.
-       (emit_scc_insn): Emit RTL directly for EQ and NE.  Add direct support
-       for EQ in DImode if TARGET_SUBXC.  Remove test on TARGET_VIS3 for GEU.
-       (output_cbcond): Remove bogus handling of CC modes.
-       (sparc_register_move_cost): Return 100 for NO_REGS.
-       * config/sparc/sparc.md (W): New mode iterator.
-       (length): Adjust for noov_compare64_operator renaming.
-       (cmpsi_sne): New instruction.
-       (cmpdi_sne): Likewise.
-       (seqdi_special): Delete.
-       (seqdi_special): Likewise.
-       (snesi<P:mode>_special): Likewise.
-       (snedi_special): Likewise.
-       (snedi_special_vis3): Likewise.
-       (snesi patterns): Use W iterator.
-       (snedi patterns): Likewise.  Add TARGET_SUBXC patterns.
-       (sltu patterns): Likewise.
-       (sgeu patterns): Likewise.
-       (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
-       (normal_branch): Use icc_comparison_operator predicate.
-       (inverted_branch): Likewise.
-       (cbcond_sp32): Use comparison_operator predicate.
-       (cbcond_sp64): Likewise.
-       (normal_int_branch_sp64): Adjust for renaming
-       (inverted_int_branch_sp64): Likewise.
-       (mov<I:mode>_cc_reg_sp64): Likewise.
-       (movsf_cc_reg_sp6): Likewise.
-       (movdf_cc_reg_sp64): Likewise.
-       (movtf_cc_reg_hq_sp64): Likewise.
-       (movtf_cc_reg_sp64): Likewise.
-       (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
-       (movsf_cc_v9): Likewise.
-       (movdf_cc_v9): Likewise.
-       (movtf_cc_hq_v9): Likewise.
-       (movtf_cc_v9): Likewise.
-       (adddi3): Call gen_adddi3_sp32.
-       (adddi3_insn_sp32): Rename to...
-       (adddi3_sp32): ...this.  Accept only register_operand as operand #1
-       and use CCCmode for the carry.
-       (addx_extend_sp32): Use CCCmode for the carry.
-       (addx_extend_sp64): Delete.
-       (adddi3_extend_sp32): Use CCCmode for the carry.
-       (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
-       (subdi3): Call gen_subdi3_sp32.
-       (subdi3_insn_sp32): Rename to...
-       (subdi3_sp32): ...this and use CCmode for the carry.
-       (subx_extend_sp32): Use CCCmode for the carry.
-       (subx_extend_sp64): Delete.
-       (subdi3_extend_sp32): Use CCmode for the carry.
-       (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
-       (negdi3): Call gen_negdi3_sp32.
-       (negdi3_sp32): Use CCCmode for the carry.
-       (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
-       (cmp_nz_ashift_1): Use CCNZ mode.
-       (cmp_nz_set_ashift_1): Likewise.
-       (ctrapsi4): Use comparison_operator predicate.
-       (ctrapdi4): Likewise.
-       (trapsi_insn): Use icc_comparison_operator predicate.
-       (trapdi_insn): Likewise.
-       (edge8 patterns): Use CCNZmode.
-       (edge16 patterns): Likewise.
-       (edge32 patterns): Likewise.
- 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/visium/visium-modes.def (CC_NOOV): Rename into...
-       (CCNZ): ...this.
-       (CC_BTST): Rename into...
-       (CCC): ...this.
-       * config/visium/predicates.md (real_add_operand): New.
-       (visium_btst_operator): Rename into...
-       (visium_equality_comparison_operator): ...this.
-       (visium_noov_operator): Rename into...
-       (visium_nz_comparison_operator): ...this.
-       (visium_c_comparison_operator): New.
-       (visium_branch_operator): Adjust and deal with all CC modes.
-       * config/visium/visium.c (visium_adjust_cost): Adjust.
-       (visium_split_double_add): Use the *_set_carry patterns.
-       (visium_select_cc_mode): Add support for CCC mode and adjust.
-       (output_cbranch): Adjust and use the carry-based operators for
-       floating-point comparisons.
-       * config/visium/visium.md (flags_subst_arith): Adjust.
-       (addsi3_insn_set_carry): New instruction.
-       (subsi3_insn_set_carry): Likewise.
-       (negsi2_insn_set_carry): Likewise.
-       (btst): Adjust.
-       (cmp<mode>_sne): Likewise.
-       (cbranch<mode>4): Use ordered_comparison_operator.
-       (cbranch<mode>4_insn): Likewise.
-       (cbranchsi4_btst_insn): Adjust.
- 2016-10-11  Tom de Vries  <tom@codesourcery.com>
-       PR middle-end/77558
-       * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
-       special-casing.
- 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree.h (build_complex_type): Add second parameter with default.
-       * tree.c (build_complex_type): Add NAMED second parameter and adjust
-       recursive call.  Create a TYPE_DECL only if NAMED is true.
-       (build_common_tree_nodes): Pass true in calls to build_complex_type.
- 2016-10-11  Georg-Johann Lay  <avr@gjlay.de>
-       New avr-passes.def to register AVR specific passes.
-       * config/avr/avr-passes.def: New file.
-       * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
-       * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
-       (make_avr_pass_recompute_note): New proto.
-       * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
-       (avr_pass_recompute_notes): Use anonymous namespace.
-       (avr_register_passes): Remove function...
-       (avr_option_override): ...and its call.
- 2016-10-11  Robert Suchanek  <robert.suchanek@imgtec.com>
-       * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
-       PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
-       PTF_AVOID_BRANCHLIKELY_SPEED for others.
-       (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
-       flags.
-       * config/mips/mips.c (mips_option_override): Enable the branch
-       likely depending on the tune flags and optimization level.
-       * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
-       (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
-       (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
-       (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
- 2016-10-11  Richard Biener  <rguenther@suse.de>
-       * lto-streamer-out.c (collect_block_tree_leafs): New helper.
-       (output_function): Properly stream the whole block tree.
-       * lto-streamer-in.c (input_function): Likewise.
- 2016-10-11  Marek Polacek  <polacek@redhat.com>
-       * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
- 2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
-       (evrp_dom_walker::before_dom_children): Infer and push new value
-       ranges for x in y < x.
- 2016-10-10  Joseph Myers  <joseph@codesourcery.com>
-       PR target/77586
-       * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
-       (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
-       * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
-       * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
-       * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
-       (IA64_NO_LIBGCC_TFMODE): Likewise.
- 2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
-         copying.
- 2016-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
-       * config.gcc: Add aarch64-*-freebsd* support.
-       * config.host: Likewise.
-       * config/aarch64/aarch64-freebsd.h: New file.
-       * config/aarch64/t-aarch64-freebsd: Ditto.
- 2016-10-10  Jeff Law  <law@redhat.com>
-       PR tree-optimization/71947
-       * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
-       B with A within a single statement.
- 2016-10-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR tree-optimization/77824
-       * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
-       zero cost for copies.
-       (find_candidates_dom_walker::before_dom_children): Replace
-       MODIFY_EXPR with SSA_NAME.
-       (replace_mult_candidate): Likewise.
-       (replace_profitable_candidates): Likewise.
- 2016-10-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.h: Wrap more macros args in brackets and fix
- 2016-10-10  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
- 2016-10-10  Andreas Schwab  <schwab@suse.de>
-       PR target/77738
-       * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
-       pseudo is not DImode.
- 2016-10-10  Claudiu Zissulescu  <claziss@synopsys.com>
-       * common/config/arc/arc-common.c (arc_option_optimization_table):
-       Remove compact casesi option.
-       * config/arc/arc.c (arc_override_options): Use compact casesi
-       option only for pre-ARCv2 cores.
-       * doc/invoke.texi (mcompact-casesi): Update text.
- 2016-10-09  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
-       Add macro to say we can efficiently handle overlapping unaligned
-       loads.
-       * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
-       poor code for processors older than p8.
- 2016-10-09  Eric Botcazou  <ebotcazou@adacore.com>
-       * gen-pass-instances.awk: Remove GNUism.
- 2016-10-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
-       NULL of (*ipcp_transformations)][node->uid].
- 2016-10-09  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
-       (MALLOC_ABI_ALIGNMENT): Define.
- 2016-10-09  Jakub Jelinek  <jakub@redhat.com>
-       * tree-ssa.c (target_for_debug_bind, verify_phi_args,
-       ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
-       VAR_OR_FUNCTION_DECL_P macros.
-       * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
-       chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
-       chkp_find_bounds_1): Likewise.
-       * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
-       * hsa-gen.c (get_symbol_for_decl): Likewise.
-       * cgraphunit.c (check_global_declaration, analyze_functions,
-       handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
-       Likewise.
-       * gimple-fold.c (can_refer_decl_in_current_unit_p,
-       canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
-       Likewise.
-       * tree.c (set_decl_section_name, copy_node_stat,
-       need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
-       merge_dllimport_decl_attributes, handle_dll_attribute,
-       decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
-       verify_type): Likewise.
-       * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
-       find_explicit_erroneous_behavior): Likewise.
-       * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
-       * ipa.c (process_references): Likewise.
-       * tree-chkp-opt.c (chkp_get_check_result): Likewise.
-       * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
-       notice_global_symbol, assemble_variable, mark_decl_referenced,
-       build_constant_desc, output_constant_def_contents, do_assemble_alias,
-       make_decl_one_only, default_section_type_flags,
-       categorize_decl_for_section, default_encode_section_info): Likewise.
-       * trans-mem.c (requires_barrier): Likewise.
-       * gimple-expr.c (mark_addressable): Likewise.
-       * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
-       expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
-       expand_debug_expr): Likewise.
-       * tree-dump.c (dequeue_and_dump): Likewise.
-       * ubsan.c (instrument_bool_enum_load): Likewise.
-       * tree-pretty-print.c (print_declaration): Likewise.
-       * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
-       * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
-       * asan.c (asan_protect_global, instrument_derefs): Likewise.
-       * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
-       pass_build_ssa::execute): Likewise.
-       * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
-       * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
-       Likewise.
-       * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
-       Likewise.
-       * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
-       can_be_nonlocal, remap_decls, copy_debug_stmt,
-       initialize_inlined_parameters, add_local_variables,
-       reset_debug_binding, replace_locals_op): Likewise.
-       * dse.c (can_escape): Likewise.
-       * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
-       Likewise.
-       * tree-diagnostic.c (default_tree_printer): Likewise.
-       * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
-       unpack_ts_decl_with_vis_value_fields,
-       lto_input_ts_decl_common_tree_pointers): Likewise.
-       * builtins.c (builtin_save_expr, fold_builtin_expect,
-       readonly_data_expr): Likewise.
-       * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
-       create_variable_info_for, set_uids_in_ptset, visit_loadstore):
-       Likewise.
-       * gimple-streamer-out.c (output_gimple_stmt): Likewise.
-       * gimplify.c (force_constant_size, gimplify_bind_expr,
-       gimplify_decl_expr, gimplify_var_or_parm_decl,
-       gimplify_compound_lval, gimplify_init_constructor,
-       gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
-       gimplify_type_sizes): Likewise.
-       * cgraphbuild.c (record_reference, record_type_list, mark_address,
-       mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
-       * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
-       remove_unused_locals): Likewise.
-       * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
-       ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
-       * function.c (instantiate_expr, instantiate_decls_1,
-       setjmp_vars_warning, add_local_decl): Likewise.
-       * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
-       Likewise.
-       * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
-       va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
-       optimize_va_list_gpr_fpr_size): Likewise.
-       * tree-nrv.c (pass_nrv::execute): Likewise.
-       * tsan.c (instrument_expr): Likewise.
-       * tree-ssa-dce.c (remove_dead_stmt): Likewise.
-       * vtable-verify.c (verify_bb_vtables): Likewise.
-       * tree-dfa.c (ssa_default_def, set_ssa_default_def,
-       get_ref_base_and_extent): Likewise.
-       * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
-       Likewise.
-       * tree-sra.c (static bool constant_decl_p, find_var_candidates,
-       analyze_all_variable_accesses): Likewise.
-       * tree-nested.c (get_nonlocal_debug_decl,
-       convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
-       note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
-       get_local_debug_decl, convert_local_omp_clauses,
-       convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
-       Likewise.
-       * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
-       * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
-       * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
-       dbxout_symbol, dbxout_common_check): Likewise.
-       * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
-       string_constant): Likewise.
-       * hsa.c (hsa_get_declaration_name): Likewise.
-       * passes.c (rest_of_decl_compilation): Likewise.
-       * tree-ssanames.c (make_ssa_name_fn): Likewise.
-       * tree-streamer-out.c (pack_ts_decl_common_value_fields,
-       pack_ts_decl_with_vis_value_fields,
-       write_ts_decl_common_tree_pointers): Likewise.
-       * stor-layout.c (place_field): Likewise.
-       * symtab.c (symtab_node::maybe_create_reference,
-       symtab_node::verify_base, symtab_node::make_decl_local,
-       symtab_node::copy_visibility_from,
-       symtab_node::can_increase_alignment_p): Likewise.
-       * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
-       decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
-       fortran_common, add_location_or_const_value_attribute,
-       add_scalar_info, add_linkage_name, set_block_abstract_flags,
-       local_function_static, gen_variable_die, dwarf2out_late_global_decl,
-       optimize_one_addr_into_implicit_ptr,
-       optimize_location_into_implicit_ptr): Likewise.
-       * gimple-low.c (record_vars_into): Likewise.
-       * ipa-visibility.c (update_vtable_references): Likewise.
-       * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
-       Likewise.
-       * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
-       DFS::DFS_write_tree_body, write_symbol): Likewise.
-       * langhooks.c (lhd_warn_unused_global_decl,
-       lhd_set_decl_assembler_name): Likewise.
-       * attribs.c (decl_attributes): Likewise.
-       * except.c (output_ttype): Likewise.
-       * varpool.c (varpool_node::get_create, ctor_for_folding,
-       varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
-       * fold-const.c (fold_unary_loc): Likewise.
-       * ipa-prop.c (ipa_compute_jump_functions_for_edge,
-       ipa_find_agg_cst_from_init): Likewise.
-       * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
-       expand_omp_target, lower_omp_regimplify_p,
-       grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
-       find_link_var_op): Likewise.
-       * tree-chrec.c (chrec_contains_symbols): Likewise.
-       * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
-       gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
-       execute_fixup_cfg): Likewise.
-       PR tree-optimization/77901
-       * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
-       if ranges[i].exp is SSA_NAME when looking for >= and only when
-       ranges[i].exp is NULL or SSA_NAME when looking for the other
-       comparison.
- 2016-10-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * ipa-cp.c (ipcp_alignment_lattice): Remove.
-       (ipcp_param_lattices): Remove field alignment.
-       (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
-       (set_all_contains_variable): Remove call to
-       ipcp_alignment_lattice::set_to_bottom.
-       (initialize_node_lattices): Likewise.
-       (propagate_alignment_accross_jump_function): Remove.
-       (propagate_constants_accross_call): Remove call to
-       propagate_alignment_accross_jump_function.
-       (ipcp_store_alignment_results): Remove.
-       (ipcp_driver): Remove call to ipcp_store_alignment_results.
-       (propagate_bits_accross_jump_function): Handle ancestor jump function.
-       * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
-       pretty-printing of alignment jump function.
-       (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
-       (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
-       alignments and remove computing ipa_alignment jump function.
-       (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
-       (ipa_write_jump_functions): Remove streaming for ipa_alignment.
-       (ipa_read_jump_function): Remove reading of ipa_alignment.
-       (write_ipcp_transformation_info): Remove streaming for alignment
-       propagation summary.
-       (read_ipcp_transformation_info): Remove reading of alignment
-       propagation summary.
-       (ipcp_update_alignments): Remove.
-       (ipcp_update_bits): Adjust to set alignment for parameters of pointer
-       type.
-       (ipcp_transform_function): Remove call to ipcp_update_alignments()
-       and remove assignment to (*ipcp_transformations)[node->uid].alignments.
-       * ipa-prop.h (ipa_alignment): Remove.
-       (ipa_jump_func): Remove field alignment.
-       (ipcp_transformation_summary): Remove field alignments.
-       * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
-       * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
-       (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
- 2016-10-08  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
-       * config/visium/visium.c (visium_expand_int_cstore): Revert latest
-       change.
-       (visium_expand_fp_cstore): Likewise.
- 2016-10-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * diagnostic-core.h (warning_at_rich_loc_n): Declare.
-       * diagnostic.c (warning_at_rich_loc_n): New function.
-       (diagnostic_n_impl_richloc): Likewise.
-       (diagnostic_n_impl): Move most of the function to
-       diagnostic_n_impl_richloc and call it.
- 2016-10-08  Jakub Jelinek  <jakub@redhat.com>
-       * gen-pass-instances.awk: Rewritten.
-       * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
-       $(PASSES_EXTRA) after passes.def to the script.
-       * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
-       * config/i386/i386-passes.def: New file.
-       * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
-       make_pass_stv): Declare.
-       * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
-       false.
-       (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
-       or !TARGET_64BIT.
-       (pass_stv::clone, pass_stv::set_pass_param): New methods.
-       (pass_stv::timode_p): New non-static data member.
-       (ix86_option_override): Don't register passes here.
-       * doc/invoke.texi: Document accepting Else, fallthrough.
-       * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
-       style changes.
-       * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
-       FALLTHRU comment styles.
- 2016-10-07  Andrew Pinski  <apinski@cavium.com>
-       * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
-       * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
-       * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
-       Likewise.
-       * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
-       Likewise.
-       * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
-       Likewise.
-       * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
-       (AARCH64_ARCH): Likewise.
-       * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
-       Likewise.
-       (AARCH64_CORE): Likewise.
-       (AARCH64_ARCH): Likewise.
-       * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
-       (AARCH64_EXTRA_TUNING_OPTION): Likewise.
-       * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
-       (AARCH64_EXTRA_TUNING_OPTION): Likewise.
-       (AARCH64_ARCH): Likewise.
-       (AARCH64_CORE): Likewise.
-       * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
-       * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
-       (AARCH64_CORE): Likewise.
-       (AARCH64_ARCH): Likewise.
- 2016-10-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
-       -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
-       floating point type infrastructre, and -mfloat128 that enables the
-       keyword.  Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
-       if -mfloat128-type.  Define __ibm128 to be long double by default.
-       * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
-       the IEEE 128-bit floating point type infrastructure should
-       automatically be enabled.
-       (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
-       instead of -mfloat128 to enable KFmode.
-       (rs6000_option_override_internal): Split the option -mfloat128
-       into -mfloat128-type and -mfloat128.  On Linux PowerPC 64-bit
-       systems, automatically set -mfloat128-type, but don't enable it on
-       other operating systems.  Move setting the long double size and
-       IEEE quad support before the IEEE 128-bit floating point changes.
-       (rs6000_init_builtins): Do not create a unique type for __ibm128
-       if long double is IBM extended double, instead rely on __ibm128
-       being defined as 'long double'.  If -mfloat128-type and not
-       -mfloat128, create the KFmode type with an undocumented __ieee128
-       keyword.
-       (rs6000_init_libfuncs): Use -mfloat128-type instead of
-       -mfloat128 for tests about the types, but keep tests for
-       -mfloat128 to enable the keyword support.
-       (rs6000_complex_function_value): Likewise.
-       (rs6000_scalar_mode_supported_p): Likewise.
-       (rs6000_floatn_mode): Likewise.
-       (rs6000_c_mode_for_suffix): Likewise.
-       (rs6000_opt_masks): Add -mfloat128-type.
-       * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
-       -mfloat128-type being split from -mfloat128.  Add
-       -mfloat128-hardware, which was missing.
-       * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
-       -mfloat128 and -mfloat128-type:
-       (-mfloat128-type): Likewise.
-       * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
-       that 64-bit Linux systems with enable -mfloat128-type by default
-       on VSX systems.
-       * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
-       (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
-       -mfloat128-type instead of -mfloat128.
-       (FLOAT128_2REG_P): Likewise.
-       (MASK_FLOAT128_TYPE): Likewise.
-       (ALTIVEC_ARG_MAX_RETURN): Likewise.
-       (RS6000_BTM_FLOAT128): Likewise.
-       (TARGET_FLOAT128): Poison old identifiers.
-       (OPTION_MASK_FLOAT128): Likewise.
-       (MASK_FLOAT128): Likewise.
-       * config/rs6000/rs6000.md (FP): Likewise.
-       (FLOAT128): Likewise.
-       (fix_trunc<mode>di2): Likewise.
-       (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
-       (floatdi<mode>2): Likewise.
-       (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
-       (neg<mode>2, FLOAT128 iterator): Likewise.
-       (abs<mode>2, FLOAT128 iterator): Likewise.
-       (ieee_128bit_negative_zero): Likewise.
-       (ieee_128bit_vsx_neg<mode>2): Likewise.
-       (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
-       (ieee_128bit_vsx_abs<mode>2): Likewise.
-       (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
-       (ieee_128bit_vsx_nabs<mode>2): Likewise.
-       (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
-       (extendiftf2): Likewise.
-       (extendifkf2): Likewise.
-       (extendtfkf2): Likewise.
-       (trunciftf2): Likewise.
-       (truncifkf2): Likewise.
-       (trunckftf2): Likewise.
-       (trunctfif2): Likewise.
-       (extendkftf2): Likewise.
-       (trunctfkf2): Likewise.
- 2016-10-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
-       before merging in bytes to pass down to real_from_target.
- 2016-10-07  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
-       required hack.
-       (substitute_and_fold_dom_walker::before_dom_children):
-       Substitute and fold before pass specific folding to avoid
-       feeding that with SSA names that will be later released.
-       * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
-       introduced by folding and visited by evaluate_stmt called during
-       ccp_fold_stmt.
-       (likely_value): Likewise.
-       (evaluate_stmt): Likewise.
-       * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
-       (simplify_div_or_mod_using_ranges): Likewise.
-       (simplify_min_or_max_using_ranges): Likewise.
-       (simplify_abs_using_ranges): Likewise.
-       (simplify_conversion_using_ranges): Likewise.
-       (simplify_float_conversion_using_ranges): Likewise.
-       (simplify_stmt_using_ranges): Likewise.
- 2016-10-07  Marek Polacek  <polacek@redhat.com>
-       * gimplify.c (should_warn_for_implicit_fallthrough): Check for
-       FALLTHROUGH_LABEL_P here...
-       (warn_implicit_fallthrough_r): ...not here.
- 2016-10-07  Bernd Schmidt  <bschmidt@redhat.com>
-       PR tree-optimization/77880
-       * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
-       necessary.
- 2016-10-07  Marek Polacek  <polacek@redhat.com>
-       PR c++/77803
-       * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
- 2016-10-07  Richard Biener  <rguenther@suse.de>
-       * bitmap.h: Document constraints on bitmap modification while
-       iterating over it.
- 2016-10-07  Richard Biener  <rguenther@suse.de>
-       * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
-       * bitmap.h (bmp_iter_set): When advancing to the next element
-       check that we didn't remove the current one.
-       (bmp_iter_and): Likewise.
-       (bmp_iter_and_compl): Likewise.
-       * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
-       we currently iterate on but keep a one-level queue.
-       * sched-deps.c (remove_from_deps): Do not clear current bit
-       but keep a one-level queue.
- 2016-10-07  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/77664
-       * tree-ssa-reassoc.c (update_range_test): Also clear low and high
-       for the other ranges.
-       (optimize_range_tests_diff): Fix up formatting.
-       (optimize_range_tests_var_bound): New function.
-       (optimize_range_tests): Use it.
- 2016-10-07  Martin Liska  <mliska@suse.cz>
-       * coverage.c (build_gcov_exit_decl): Fix priority what
-       should be really 99.
- 2016-10-07  Richard Biener  <rguenther@suse.de>
-       * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
-       vars in gimple_bind_vars but not in BLOCK_VARS.
- 2016-10-07  Richard Biener  <rguenther@suse.de>
+       * targhooks.h (default_preferred_else_value): Declare.
+       * targhooks.c (default_preferred_else_value): New function.
+       * internal-fn.h (conditional_internal_fn_code): Declare.
+       * internal-fn.c (FOR_EACH_CODE_MAPPING): New macro.
+       (get_conditional_internal_fn): Use it.
+       (conditional_internal_fn_code): New function.
+       * gimple-match.h (gimple_match_cond): New struct.
+       (gimple_match_op): Add a cond member function.
+       (gimple_match_op::gimple_match_op): Update all forms to take a
+       gimple_match_cond.
+       * genmatch.c (expr::gen_transform): Use the same condition as res_op
+       for the suboperation, but don't specify a particular else_value.
+       * tree-ssa-sccvn.c (vn_nary_simplify, vn_reference_lookup_3)
+       (visit_nary_op, visit_reference_op_load): Pass
+       gimple_match_cond::UNCOND to the gimple_match_op constructor.
+       * gimple-match-head.c: Include tree-eh.h
+       (convert_conditional_op): New function.
+       (maybe_resimplify_conditional_op): Likewise.
+       (gimple_resimplify1): Call maybe_resimplify_conditional_op.
+       (gimple_resimplify2): Likewise.
+       (gimple_resimplify3): Likewise.
+       (gimple_resimplify4): Likewise.
+       (maybe_push_res_to_seq): Return null for conditional operations.
+       (try_conditional_simplification): New function.
+       (gimple_simplify): Call it.  Pass conditions to the gimple_match_op
+       constructor.
+       * match.pd: Fold VEC_COND_EXPRs of an IFN_COND_* call to a new
+       IFN_COND_* call.
+       * config/aarch64/aarch64.c (aarch64_preferred_else_value): New
+       function.
+       (TARGET_PREFERRED_ELSE_VALUE): Redefine.
  
-       PR tree-optimization/77879
-       * tree-ssa-structalias.c (handle_const_call): Properly handle
-       NRV return slots.
-       (handle_pure_call): Likewise.
+ 2018-07-12  Jan Hubicka  <hubicka@ucw.cz>
  
- 2016-10-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+       * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
+       DECL_FCONTEXT
+       (hash_tree): Do not hash DECL_FCONTEXT
+       * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
+       Do not stream DECL_FCONTEXT.
+       * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
+       * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
  
-       * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
-       (rs6000_elf_asm_out_destructor): increase size of buf to avoid
-       possible overflow.
+ 2018-07-12  Richard Biener  <rguenther@suse.de>
  
- 2016-10-06  Andrew Pinski  <apinski@cavium.com>
+       PR debug/86462
+       * dwarf2out.c (gen_block_die): Only output blocks when they have
+       at least one !DECL_IGNORED_P variable.
  
-       * config/aarch64/aarch64-cores.def: Add a comment before each
-       set of cores.
+ 2018-07-12  Richard Biener  <rguenther@suse.de>
  
- 2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       PR target/84829
+       * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC):
+       Remove -mieee-fp handling.
  
-       PR tree-optimization/77862
-       * tree-vrp.c (add_equivalence): Use get_value_range so that
-       num_vr_values is checked before accessing vr_values.
+ 2018-07-12  Richard Biener  <rguenther@suse.de>
  
- 2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       * tree-ssa-sccvn.c (vn_lookup_simplify_result): Remove bogus
+       left-over from last patch.
  
-       * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
-         POINTER_TYPE_P.
+ 2018-07-12  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-10-05  Jeff Law  <law@redhat.com>
+       PR tree-optimization/86492
+       * gimple-ssa-store-merging.c
+       (imm_store_chain_info::coalesce_immediate_stores): Call
+       check_no_overlap even for the merge_overlapping case.  Formatting fix.
  
-       PR tree-optimization/71661
-       * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
-       removal of a forwarder exposes a new natural loop.
+ 2018-07-12  Richard Biener  <rguenther@suse.de>
  
- 2016-10-06  Uros Bizjak  <ubizjak@gmail.com>
+       PR middle-end/86479
+       * fold-const.c (fold_binary_op_with_conditional_arg): Do not
+       move possibly trapping operations into the conditional.
  
-       * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
-       Introduce ssesuffix variable.
-       (<mask_codefor><code><mode>3<mask_name>): Ditto.
-       (*<code><mode>3): Ditto.
+ 2018-07-12  Richard Biener  <rguenther@suse.de>
  
- 2016-10-06  Jan Hubicka  <hubicka@ucw.cz>
+       * tree-ssa-sccvn.c (mprts_hook_cnt): Remove.
+       (vn_lookup_simplify_result): Remove recursion limit applied
+       here.
+       (vn_nary_build_or_lookup_1): Adjust.
+       (try_to_simplify): Likewise.
+       * gimple-match-head.c (gimple_resimplify1): Instead apply one
+       here.
+       (gimple_resimplify2): Likewise.
+       (gimple_resimplify3): Likewise.
+       (gimple_resimplify4): Likewise.
+ 2018-07-11  Jakub Jelinek  <jakub@redhat.com>
+       * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask):
+       Use __mmask64 type instead of __mmask8 for __M argument.
+       * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64,
+       _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for
+       __U argument.
+       (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of
+       __mmask16 for __M argument.
+       (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4,
+       _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument
+       to __mmask16 instead of __mmask8.
+       * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps,
+       _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps,
+       _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps,
+       _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type
+       instead of __mmask16 for __U argument.
+       * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use
+       __mmask16 instead of __mmask8 for __U argument.
+       (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for
+       __U argument.
+       (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of
+       __mmask16.
+       (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U
+       argument.
+       (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for
+       __U argument.
+       (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of
+       __mmask16.
+       (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead
+       of __mmask16.
+       (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for
+       __U argument.
+       (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for
+       __U argument.
+       (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for
+       __U argument.
+       (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for
+       __U argument.
+       (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask,
+       _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change
+       return type as well as __M argument type and all casts from __mmask8
+       to __mmask32.
+       (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask,
+       _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change
+       return type as well as __M argument type and all casts from __mmask8
+       to __mmask16.
+       (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask,
+       _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change
+       return type as well as __M argument type and all casts from __mmask8
+       to __mmask32.
+       (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask,
+       _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change
+       return type as well as __M argument type and all casts from __mmask8
+       to __mmask16.
+       * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32,
+       _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of
+       __mmask16.
+ 2018-07-11  Grazvydas Ignotas  <notasas@gmail.com>
+       * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask,
+       _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32
+       for __U argument.
+ 2018-07-11  Paul Koning  <ni1d@arrl.net>
+       * doc/md.texi (define_subst): Document how multiple occurrences of
+       the same argument in the replacement pattern are handled.
+ 2018-07-11  Paul Koning  <ni1d@arrl.net>
+       * doc/extend.texi (Common Variable Attributes): Move "mode" into
+       alphabetical order.
+       (Common Type Attributes): Add "mode" attribute.
+ 2018-07-11  Jan Hubicka  <hubicka@ucw.cz>
+       * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not
+       stream DECL_ORIGINAL_TYPE.
+       (DFS::DFS_write_tree_body): Drop hack handling local external decls.
+       (hash_tree): Do not walk DECL_ORIGINAL_TYPE.
+       * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
+       Do not walk original type.
+       * tree-streamer-out.c (streamer_write_chain): Drop hack handling
+       external decls.
+       (write_ts_decl_non_common_tree_pointers): Do not stream
+       DECL_ORIGINAL_TYPE
+       * tree.c (free_lang_data_in_decl): Clear DECL_ORIGINAL_TYPE.
+       (find_decls_types_r): Do not walk DEC_ORIGINAL_TYPE.
+ 2018-07-11  Aldy Hernandez  <aldyh@redhat.com>
+         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not jump
+       thread twice from the same starting edge.
+ 2018-07-11  Aldy Hernandez  <aldyh@redhat.com>
+       * vr-values.c (gimple_stmt_nonzero_p): Abstract common code to...
+       * gimple.c (gimple_call_nonnull_result_p): ...here...
+       (gimple_call_nonnull_arg): ...and here.
+       * gimple.h (gimple_call_nonnull_result_p): New.
+       (gimple_call_nonnull_arg): New.
+ 2018-07-11  Richard Earnshaw  <rearnsha@arm.com>
+       * config/arm/arm-cpus.in: Move information from fpu field of each
+       cpu definition to the isa field.
+       * config/arm/parsecpu.awk (fpu): Delete match rule.
+       (gen_comm_data): Don't add bits from the CPU's FPU entry.
+ 2018-07-11  Richard Biener  <rguenther@suse.de>
+       PR debug/86457
+       * dwarf2out.c (init_sections_and_labels): Use
+       output_asm_line_debug_info consistently.
+       (dwarf2out_early_finish): Likewise.
+       (dwarf2out_finish): Remove DW_AT_stmt_list from early generated
+       type units.
+ 2018-07-11  Richard Biener  <rguenther@suse.de>
+       * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1):
+       Rework father_bb setting in a way to avoid propagating constants
+       multiple times on a loop body.
+ 2018-07-10  Mark Wielaard  <mark@klomp.org>
+       PR debug/86459
+       * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert.
+ 2018-07-10  Richard Biener  <rguenther@suse.de>
+       * hash-map.h (hash_map::iterator::operator*): Return
+       references to key and value.
+ 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/86443
+       * gimplify.c (find_combined_omp_for): Add DATA argument, in addition
+       to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers,
+       BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between.
+       (gimplify_omp_for): For composite loops, move outer
+       OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost
+       OMP_FOR/OMP_SIMD if there are any non-trivial wrappers.  For class
+       iterators add any needed clauses.  Allow OMP_FOR_ORIG_DECLS to contain
+       TREE_LIST for both the original class iterator and the "last" helper
+       var.  Gimplify OMP_FOR_PRE_BODY before the outermost composite
+       loop, remember has_decl_expr from outer composite loops for the
+       innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT.
+ 2018-07-09  Martin Sebor  <msebor@redhat.com>
+       PR middle-end/77357
+       PR middle-end/86428
+       * builtins.c (c_strlen): Avoid out-of-bounds warnings when
+       accessing implicitly initialized array elements.
+       * expr.c (string_constant): Handle string initializers of
+       character arrays within aggregates.
+       * gimple-fold.c (fold_array_ctor_reference): Add argument.
+       Store element offset.  As a special case, handle zero size.
+       (fold_nonarray_ctor_reference): Same.
+       (fold_ctor_reference): Add argument.  Store subobject offset.
+       * gimple-fold.h (fold_ctor_reference): Add argument.
+ 2018-07-09  Paul Koning  <ni1d@arrl.net>
+       * config/pdp11/pdp11.c (pdp11_addr_cost): New function.
+       (pdp11_insn_cost): New function.
+       (pdp11_md_asm_adjust): New function.
+       (TARGET_INVALID_WITHIN_DOLOOP): Define.
+       (pdp11_rtx_costs): Update to match machine better.
+       (output_addr_const_pdp11): Correct format mismatch warnings.
+       * config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition.
+       * config/pdp11/pdp11.md: General change to add base_cost and/or
+       length attributes for use by new pdp11_insn_cost function.
+       (MIN_BRANCH): Correct definition.
+       (MIN_SOB): Ditto.
+       (doloop_end): Use standard pattern name for looping pattern.
+       (doloop_end_nocc): New.
+       (movsf): Add another constraint alternative.
+       (zero_extendqihi2): Add constraint alternatives for not in place
+       extend.
+       (zero_extendhisi2): Remove.
+       (shift patterns): Add CC handling variants.
+       (bswaphi2): New.
+       (bswapsi2): New.
+       (rothi3): New.
+       (define_peephole2): New peephole to recognize mov that sets CC for
+       subsequent test.
+ 2018-07-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+       * config/sparc/sparc.c (sparc_fold_builtin) <SPARC_BUILTIN_PDIST,
+       SPARC_BUILTIN_PDISTN>: Adapt for signature change of wi::neg,
+       wi::add.
+ 2018-07-09  Jakub Jelinek  <jakub@redhat.com>
+       PR c/86420
+       * real.c (real_nextafter): Return true if result is denormal.
+ 2018-07-09  Martin Liska  <mliska@suse.cz>
+       * common.opt: Add back wrongly removed attribute.
+ 2018-07-09  Richard Biener  <rguenther@suse.de>
+       PR debug/86413
+       * dwarf2out.c (gen_block_die): For an early generated DIE
+       always output high/low PC attributes.
+ 2018-07-09  Tom de Vries  <tdevries@suse.de>
+       * cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL.
+       * tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping
+       onto VAR_DECL with abstract origin.
+ 2018-07-07  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New.
+ 2018-07-07  Tom de Vries  <tdevries@suse.de>
+       * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL.
+ 2018-07-07  Aldy Hernandez  <aldyh@redhat.com>
+       * tree-vrp.c (vrp_int_const_binop): Change overflow type to
+       overflow_type.
+       (combine_bound): Use wide-int overflow calculation instead of
+       rolling our own.
+       * calls.c (maybe_warn_alloc_args_overflow): Change overflow type to
+       overflow_type.
+       * fold-const.c (int_const_binop_2): Same.
+       (extract_muldiv_1): Same.
+       (fold_div_compare): Same.
+       (fold_abs_const): Same.
+       * match.pd: Same.
+       * poly-int.h (add): Same.
+       (sub): Same.
+       (neg): Same.
+       (mul): Same.
+       * predict.c (predict_iv_comparison): Same.
+       * profile-count.c (slow_safe_scale_64bit): Same.
+       * simplify-rtx.c (simplify_const_binary_operation): Same.
+       * tree-chrec.c (tree_fold_binomial): Same.
+       * tree-data-ref.c (split_constant_offset_1): Same.
+       * tree-if-conv.c (idx_within_array_bound): Same.
+       * tree-scalar-evolution.c (iv_can_overflow_p): Same.
+       * tree-ssa-phiopt.c (minmax_replacement): Same.
+       * tree-vect-loop.c (is_nonwrapping_integer_induction): Same.
+       * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same.
+       * vr-values.c (vr_values::adjust_range_with_scev): Same.
+       * wide-int.cc (wi::add_large): Same.
+       (wi::mul_internal): Same.
+       (wi::sub_large): Same.
+       (wi::divmod_internal): Same.
+       * wide-int.h: Change overflow type to overflow_type for neg, add,
+       mul, smul, umul, div_trunc, div_floor, div_ceil, div_round,
+       mod_trunc, mod_ceil, mod_round, add_large, sub_large,
+       mul_internal, divmod_internal.
+       (overflow_type): New enum.
+       (accumulate_overflow): New.
+ 2018-07-06  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
+       * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New.
+       (tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern.
+ 2018-07-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       * tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount
+       argument is checked for zero before entering loop, avoid checking again.
+ 2018-07-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       * gimplify.h (generic_expr_could_trap_p): Set as global function.
+       * gimplify.h (generic_expr_could_trap_p): Likwise.
+       * tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR.
+ 2018-07-06  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/86401
+       * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Move the
+       ((A & N) + B) & M -> (A + B) & M etc. optimization into ...
+       (fold_bit_and_mask): ... here.  New helper function for match.pd.
+       * fold-const.h (fold_bit_and_mask): Declare.
+       * match.pd (((A & N) + B) & M -> (A + B) & M): New optimization.
+ 2018-07-06  Peter Bergner  <bergner@linux.ibm.com>
+       PR target/86324
+       * target.def (translate_mode_attribute): New hook.
+       * targhooks.h (default_translate_mode_attribute): Declare.
+       * targhooks.c (default_translate_mode_attribute): New function.
+       * doc/tm.texi.in (TARGET_TRANSLATE_MODE_ATTRIBUTE): New hook.
+       * doc/tm.texi: Regenerate.
+       * config/rs6000/rs6000.c (TARGET_TRANSLATE_MODE_ATTRIBUTE): Define.
+       (rs6000_translate_mode_attribute): New function.
  
-       * postreload.c (reload_cse_simplify): Skip also USE when detecting
-       noop move.
+ 2018-07-06  Paul Koning  <ni1d@arrl.net>
  
- 2016-10-06  Richard Biener  <rguenther@suse.de>
+       * doc/md.texi (define_split): Document DONE and FAIL.
+       (define_peephole2): Ditto.
  
-       PR tree-optimization/77855
-       * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
-       instead of removing the current item while iterating over the set
-       which is not safe.
+ 2018-07-05  Jeff Law  <law@redhat.com>
  
- 2016-10-06  James Clarke  <jrtc27@jrtc27.com>
-           Eric Botcazou  <ebotcazou@adacore.com>
+       PR tree-optimization/86010
+       * tree-ssa-dse.c (compute_trims): More aggressively trim at
+       both the head and tail of mem* and str* calls.
  
-       PR target/77759
-       * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
-       (classify_registers): Don't set it
-       (function_arg_slotno): Don't initialize and test it.  Tidy up.
+ 2018-07-05  Jim Wilson  <jimw@sifive.com>
  
- 2016-10-06  Richard Biener  <rguenther@suse.de>
+       * config.gcc (riscv*-*-*): When setting xlen, handle riscv-*.
  
-       PR tree-optimization/77839
-       * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
-       lattice transition.
+ 2018-07-05  Indu Bhagat  <indu.bhagat@oracle.com>
  
- 2016-10-06  Martin Liska  <mliska@suse.cz>
+       * config/aarch64/aarch64-simd.md: correct flags text for
+       MIN_EXPR replacement.
  
-       * gcc.c: Set -fprofile-update=atomic when profiling is
-       enabled and -pthread is set.  Warn when one combines
-       -pthread and -fprofile-update=single for an app using
-       profiling code.
+ 2018-07-05  James Clarke  <jrtc27@jrtc27.com>
  
- 2016-10-06  Martin Liska  <mliska@suse.cz>
+       * configure: Regenerated.
  
-       PR bootstrap/77788
-       * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
-       * gimple-ssa-strength-reduction.c (slsr_process_cast):
-       Initialize a pointer to NULL.
-       (slsr_process_copy): Likewise.
-       * input.c (location_get_source_line): Likewise.
-       * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
+ 2018-07-05  Carl Love  <cel@us.ibm.com>
  
- 2016-10-05  Andrew Senkevich  <andrew.senkevich@intel.com>
-       * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
-       OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
-       (ix86_handle_option): Deleted handle of OPT_mpcommit.
-       * config.gcc: Deleted pcommitintrin.h
-       * config/i386/pcommitintrin.h: Deleted file.
-       * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
-       * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
-       detection.
-       * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
-       __PCOMMIT__.
-       * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
-       (PTA_PCOMMIT): Deleted define.
-       (ix86_option_override_internal): Deleted handle of option.
-       (ix86_valid_target_attribute_inner_p): Deleted pcommit.
-       * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
-       __builtin_ia32_pcommit): Deleted.
-       * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
-       * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
-       (pcommit): Deleted instruction.
-       * config/i386/i386.opt: Mention -mpcommit deprecation.
-       * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
- 2016-10-05  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/77874
-       * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
-       Remove wrong assert.
-       (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
-       Use <round_constraint> as operand 1 constraint.
- 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/66343
-       * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
-       (ubsan_instrument_float_cast): And not here.
-       PR sanitizer/66343
-       * ubsan.c (ubsan_ids): New GTY(()) array.
-       (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
-       instead of static local counters.
- 2016-10-05  Martin Sebor  <msebor@redhat.com>
-       PR bootstrap/77819
-       * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
-       * config/linux.c (gnu_libc_printf_pointer_format): Remove.
-       * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
-       (default_printf_pointer_format): Define function.
-       * targhooks.c (linux_printf_pointer_format): Define new function.
-       * targhooks.h (linux_printf_pointer_format): Declare.
-       (gnu_libc_printf_pointer_format): Remove declaration.
- 2016-10-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for
+       float argument to VSX_BUILTIN_DOUBLEH_V4SF.
+       Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to
+       VSX_BUILTIN_DOUBLEL_V4SF.
  
-       * fold-const.c (native_encode_real): Fix logic for selecting offset
-       to write to when BYTES_BIG_ENDIAN.
- 2016-10-05  Wilco Dijkstra  <wdijkstr@arm.com>
-       * builtins.c (fold_builtin_strchr): Remove function.
-       (fold_builtin_strrchr): Likewise.
-       (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
-       * gimple-fold.c (target_char_cst_p): New function.
-       (gimple_fold_builtin_strchr) Add more foldings.
-       (gimple_fold_builtin): Add index, strrchr, rindex cases.
+ 2018-07-05  Martin Sebor  <msebor@redhat.com>
  
- 2016-10-05  Richard Biener  <rguenther@suse.de>
+       PR c++/86400
+       * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather
+       than its domain to compute its the upper bound of a char array.
  
-       PR middle-end/77863
-       * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
-       capture ids in c-exprs.
+ 2018-07-05  Nathan Sidwell  <nathan@acm.org>
  
- 2016-10-05  Richard Biener  <rguenther@suse.de>
+       Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C.
+       * doc/cpp.texi: Update comment.
+       * doc/tm.texi: Rebuilt.
+       * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ...
+       (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense.
+       * doc/extend.texi (Backwards Compatibility): Clarify it is system
+       headers affected by extern "C".
+       * system.h: Poison NO_IMPLICIT_EXTERN_C.
+       * config/alpha/alpha.h, config/arm/uclinux-elf.h,
+       config/bfin/elf.h, config/cris/cris.h, config/darwin.h,
+       config/dragonfly.h, config/freebsd.h, config/gnu-user.h,
+       config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h,
+       config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h,
+       config/lynx.h, config/mips/elf.h, config/mmix/mmix.h,
+       config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h,
+       config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h,
+       config/s390/tpf.h, config/sh/newlib.h, config/sol2.h,
+       config/sparc/openbsd64.h, config/sparc/sp-elf.h,
+       config/sparc/sp64-elf.h, config/spu/spu.h,
+       config/stormy16/stormy16.h, config/v850/v850.h,
+       config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't
+       define NO_IMPLICIT_EXTERN_C.
+       * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C.
  
-       PR middle-end/77826
-       * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
-       with types_match for GIMPLE code gen to handle type mismatched
-       constants properly.
-       (dt_operand::gen): Adjust.
-       * match.pd ((X /[ex] A) * A -> X): Properly handle converted
-       and constant A.
+ 2018-07-05  Tamar Christina  <tamar.christina@arm.com>
  
- 2016-10-05  Richard Biener  <rguenther@suse.de>
+       PR target/84711
+       * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
+       instead of GET_MODE_SIZE when comparing Units.
  
-       * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
+ 2018-07-05  Tamar Christina  <tamar.christina@arm.com>
  
- 2016-10-05  Richard Biener  <rguenther@suse.de>
+       PR target/84711
+       * rtlanal.c (set_noop_p): Constrain on mode change,
+       include hard-reg-set.h
  
-       PR middle-end/77842
-       * genmatch.c (parser::parse_c_expr): Handle premature EOF.
+ 2018-07-05  Tamar Christina  <tamar.christina@arm.com>
  
- 2016-10-05  Pierre-Marie de Rodat  <derodat@adacore.com>
+       * config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size.
  
-       * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
-       version check to protect only DW_TAG_imported_module generation.
+ 2018-07-05  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-10-05  Richard Biener  <rguenther@suse.de>
+       Revert
+       2018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
  
-       PR middle-end/55152
-       * match.pd (min(a,-a) -> -abs(a)): New pattern.
- 2016-10-04  Ian Lance Taylor  <iant@golang.org>
-       * explow.c (allocate_dynamic_stack_space): Call
-       do_pending_stack_adjust before handling flag_split_stack.
+       PR sanitizer/84250
+       * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
+       libasan.
+       * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
  
- 2016-10-04  David Malcolm  <dmalcolm@redhat.com>
+ 2018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
  
-       * genattrtab.c (make_internal_attr): Supply dummy column number to
-       file_location ctor.
-       (main): Likewise.
-       * genoutput.c (init_insn_for_nothing): Likewise.
-       * gensupport.c (add_define_attr): Likewise.
-       * read-md.c (message_at_1): Print column number.
-       (fatal_with_file_and_line): Likewise.
-       (rtx_reader::read_char): Track column numbers.
-       (rtx_reader::unread_char): Likewise.
-       (rtx_reader::rtx_reader): Initialize m_read_md_colno.
-       (rtx_reader::handle_include): Stash and restore m_read_md_colno.
-       (rtx_reader::handle_file): Initialize m_read_md_colno.
-       (rtx_reader::get_current_location): Supply column number to
-       file_location ctor.
-       * read-md.h (struct file_location): Add field "colno".
-       (file_location::file_location): Likewise.
-       (rtx_reader::get_colno): New accessor.
-       (rtx_reader::m_read_md_colno): New field.
-       (rtx_reader::m_last_line_colno): New field.
+       PR sanitizer/84250
+       * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
+       libasan.
+       * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
  
- 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 2018-07-04  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * doc/extend.texi (Java Exceptions): Remove.
-       (java_interface): Remove.
+       PR middle-end/86380
+       * expmed.c (choose_multiplier): Fix incorrect comparison with mask.
  
- 2016-10-04  Doug Gilmore  <doug.gilmore@imgtec.com>
+ 2018-07-04  Aldy Hernandez  <aldyh@redhat.com>
  
-       PR tree-optimization/77808
-       * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
-       and addr are different before copying points-to information.
+       * tree-vrp.c (extract_range_from_binary_expr_1): Initialize
+       neg_*_op* variables.
  
- 2016-10-04  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-07-04  Martin Liska  <mliska@suse.cz>
  
-       * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
-       * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
-       * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
-       of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
+       * tree-switch-conversion.c: Define
+         max_ratio_for_speed and max_ratio_for_size constants.
  
- 2016-10-04  Richard Biener  <rguenther@suse.de>
+ 2018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
+           Martin Liska  <mliska@suse.cz>
  
-       PR tree-optimization/77399
-       * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
-       verify the target can convert.
+       PR middle-end/66240
+       PR target/45996
+       PR c/84100
+       * common.opt: Rename align options with 'str_' prefix.
+       * common/config/i386/i386-common.c (set_malign_value): New
+       function.
+       (ix86_handle_option): Use it to set -falign-* options/
+       * config/aarch64/aarch64-protos.h (struct tune_params): Change
+       type from int to string.
+       * config/aarch64/aarch64.c: Update default values from int
+       to string.
+       * config/alpha/alpha.c (alpha_override_options_after_change):
+       Likewise.
+       * config/arm/arm.c (arm_override_options_after_change_1): Likewise.
+       * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
+       max skip conditionally.
+       * config/i386/freebsd.h (SUBALIGN_LOG): New.
+       (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
+       max skip conditionally.
+       * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
+       max skip conditionally.
+       * config/i386/gnu-user.h (SUBALIGN_LOG): New.
+       (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
+       max skip conditionally.
+       * config/i386/i386.c (struct ptt): Change type from int to
+       string.
+       (ix86_default_align): Set default values.
+       * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print
+       max skip conditionally.
+       * config/i386/iamcu.h (SUBALIGN_LOG): New.
+       (ASM_OUTPUT_MAX_SKIP_ALIGN):
+       * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN):
+       * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
+       max skip conditionally.
+       * config/i386/openbsdelf.h (SUBALIGN_LOG): New.
+       (ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.:
+       * config/i386/x86-64.h (SUBALIGN_LOG): New.
+       (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
+       max skip conditionally.
+       (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
+       * config/ia64/ia64.c (ia64_option_override): Set default values
+         for alignment options.
+       * config/m68k/m68k.c: Handle new str_align_* options.
+       * config/mips/mips.c (mips_set_compression_mode): Change
+       type of constants.
+       (mips_option_override): Set default values for options.
+       * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
+         Likewise.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal):
+       Likewise.
+       * config/rx/rx.c (rx_option_override): Likewise.
+       * config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log.
+       (LABEL_ALIGN): Use align_labels_log.
+       (LOOP_ALIGN): Use align_loops_align.
+       * config/s390/s390.c (s390_asm_output_function_label): Use new
+         macros.
+       * config/sh/sh.c (sh_override_options_after_change):
+       Change type of constants.
+       * config/spu/spu.c (spu_sched_init): Likewise.
+       * config/sparc/sparc.c (sparc_option_override): Set default
+         values for options.
+       * config/visium/visium.c (visium_option_override): Likewise.
+       * config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not
+         emit p2align format with last argument if it's not needed.
+       * doc/invoke.texi: Document extended format of -falign-*.
+       * final.c: Use align_labels alignment.
+       * flags.h (struct target_flag_state): Change type to use
+       align_flags.
+       (struct align_flags_tuple): New.
+       (struct align_flags): Likewise.
+       (align_loops_log): Redefine macro to use new types.
+       (align_loops_max_skip): Redefine macro to use new types.
+       (align_jumps_log): Redefine macro to use new types.
+       (align_jumps_max_skip): Redefine macro to use new types.
+       (align_labels_log): Redefine macro to use new types.
+       (align_labels_max_skip): Redefine macro to use new types.
+       (align_functions_log): Redefine macro to use new types.
+       (align_loops): Redefine macro to use new types.
+       (align_jumps): Redefine macro to use new types.
+       (align_labels): Redefine macro to use new types.
+       (align_functions): Redefine macro to use new types.
+       (align_functions_max_skip): Redefine macro to use new types.
+       (align_loops_value): New macro.
+       (align_jumps_value): New macro.
+       (align_labels_value): New macro.
+       (align_functions_value): New macro.
+       * function.c (invoke_set_current_function_hook): Propagate
+       alignment values from flags to global variables default in
+       topleev.h.
+       * ipa-icf.c (sem_function::equals_wpa): Use
+       cl_optimization_option_eq instead of memcmp.
+       * lto-streamer.h (cl_optimization_stream_out): Support streaming
+       of string types.
+       (cl_optimization_stream_in): Likewise.
+       * optc-save-gen.awk: Support strings in cl_optimization.
+       * opth-gen.awk: Likewise.
+       * opts.c (finish_options): Remove error checking of invalid
+       value ranges.
+       (MAX_CODE_ALIGN): Remove.
+       (MAX_CODE_ALIGN_VALUE): Likewise.
+       (parse_and_check_align_values): New function.
+       (check_alignment_argument): Likewise.
+       (common_handle_option): Use check_alignment_argument.
+       * opts.h (parse_and_check_align_values): Declare.
+       * toplev.c (init_alignments): Remove.
+       (read_log_maxskip): New.
+       (parse_N_M): Likewise.
+       (parse_alignment_opts): Likewise.
+       (backend_init_target): Remove usage of init_alignments.
+       * toplev.h (parse_alignment_opts): Declare.
+       * tree-streamer-in.c (streamer_read_tree_bitfields): Add new
+       argument.
+       * tree-streamer-out.c (streamer_write_tree_bitfields): Likewise.
+       * tree.c (cl_option_hasher::equal): New.
+       * varasm.c: Use new global macros.
+ 2018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
+       * config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN):
+       Use a simpler align directive also if MAXSKIP = ALIGN-1.
+       * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
+       * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N
+       is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG
+       define. Use a simpler align directive also if MAXSKIP = ALIGN-1.
+       * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+       * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+ 2018-07-04  Martin Liska  <mliska@suse.cz>
+             Jonathan Wakely  <jwakely@redhat.com>
+       * coverage.c: Use correct type.
+       * doc/invoke.texi: Language correction.
+ 2018-07-03  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/85620
+       * config/i386/i386.c (rest_of_insert_endbranch): Also generate
+       ENDBRANCH for non-tail call which may return via indirect branch.
+       * doc/extend.texi: Document indirect_return attribute.
+ 2018-07-03  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/86274
+       * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify
+       precondition.
+       (format_floating): Correct handling of infinities and NaNs.
+ 2018-07-03  Martin Sebor  <msebor@redhat.com>
+       * print-tree.c (print_real_cst): New function.
+       (print_node_brief): Call it.
+       (print_node): Ditto.
+ 2018-07-03  Jeff Law  <law@redhat.com>
+       * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge
+       into a single pattern.
+       * config/h8300/h8300.md (ors code_iterator): New.
+       (bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into
+       a single pattern and single splitter.
+       (bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern.
+       (iorqi3_1, xorqi3_1): Likewise.
+       (iorqi3, xorqi3 expanders): Similarly.
+       * config/h8300/h8300.md (movmd_internal_normal): Consolidated with
+       (movmd_internal) into a single pattern using the P mode iterator.
+       (movmd splitters): Similarly.
+       (stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns.
+       (movsd splitters): Similarly.
+       * config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate
+       ADDB, ADDW and ADDL into a single ADD attribute which selects the
+       right table based on the size of the operand.
+       * config/h8300/h8300.md (length_table): Corresponding changes. All
+       references to "addb", "addw" and "addl" changed to "add".
+       (btst patterns): Merge two variants into a single pattern.
+       (tstqi, tsthi): Likewise.
+       (addhi3_incdec, addsi3_incdec): Likewise.
+       (subhi3_h8300hs, subsi3_h8300hs): Likewise.
+       (mulhi3, mulsi3): Likewise.
+       (udivhi3, udivsi3): Likewise.
+       (divhi3, divsi3): Likewise.
+       (andorqi3, andorhi3, andorsi3): Likewise.
+ 2018-07-03  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/85694
+       * config/i386/sse.md (uavg<mode>3_ceil): New expander.
+       (<sse2_avx2>_uavg<mode>3<mask_name>): Simplify expander.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       PR tree-optimization/85694
+       * config/aarch64/iterators.md (HADD, RHADD): New int iterators.
+       (u): Handle UNSPEC_SHADD, UNSPEC_UHADD, UNSPEC_SRHADD and
+       UNSPEC_URHADD.
+       * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor)
+       (<u>avg<mode>3_ceil): New patterns.
+ 2018-07-03  David Malcolm  <dmalcolm@redhat.com>
+       * gcc.dg/vect/slp-perm-1.c: Remove "note: " prefix from
+       scan-tree-dump directive.
+       * gcc.dg/vect/slp-perm-2.c: Likewise.
+       * gcc.dg/vect/slp-perm-3.c: Likewise.
+       * gcc.dg/vect/slp-perm-5.c: Likewise.
+       * gcc.dg/vect/slp-perm-6.c: Likewise.
+       * gcc.dg/vect/slp-perm-7.c: Likewise.
+       * gcc.dg/vect/slp-perm-8.c: Likewise.
+ 2018-07-03  Marek Polacek  <polacek@redhat.com>
+       PR middle-end/86202
+       * gimple-fold.c (size_must_be_zero_p): Check the type of the size.
+ 2018-07-03  Richard Biener  <rguenther@suse.de>
+       PR ipa/86389
+       * tree-ssa-structalias.c (find_func_clobbers): Properly
+       handle indirect calls.
+ 2018-07-03  Jeff Law  <law@redhat.com>
+       * config/h8300/h8300.md (HSI, QHSI, QHSIF): New mode iterators.
+       (shifts): New code iterator.
+       (movqi, movhi, movsi, movsf expanders): Consolidate into a single
+       expander.  Fix HImode handling on H8/SX.
+       (addqi3, addhi3, addsi3 expanders): Consolidate into a single expander.
+       (subqi3, subhi3, subsi3 expanders): Likewise.
+       (andqi3, andhi3, andsi3 expanders): Likewise.
+       (iorqi3, iorhi3, iorsi3 expanders): Likewise.
+       (xorqi3, xorhi3, xorsi3 expanders): Likewise.
+       (negqi2, neghi2, negsi2, negsf2 expanders): Likewise.
+       (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
+       (zero_extendqihi2, zero_extendqisi2): Likewise.
+       (extendqihi2, extendqisi2): Likewise.
+       (rotlqi3, rotlhi3, rotlsi3): Likewise.
+       (neghi2_h8300, negsi2_h8300): Likewise for these patterns.
+       (rotlqi3_1, rotlhi3_1): Likewise.
+       (logicalhi3_sn, logicalsi3_sn): Likewise.
+       (logicalhi3, logicalsi3): Likewise.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_recog_rotate_pattern)
+       (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern)
+       (vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast)
+       (adjust_bool_pattern, vect_recog_bool_pattern): Pass the vector
+       type to append_pattern_def_seq instead of creating a stmt_vec_info
+       directly.
+       (build_mask_conversion): Likewise.  Remove vinfo argument.
+       (vect_add_conversion_to_patterm): Likewise, renaming to...
+       (vect_add_conversion_to_pattern): ...this.
+       (vect_recog_mask_conversion_pattern): Update call to
+       build_mask_conversion.  Pass the vector type to
+       append_pattern_def_seq here too.
+       (vect_recog_gather_scatter_pattern): Update call to
+       vect_add_conversion_to_pattern.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (new_pattern_def_seq): Delete.
+       (vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
+       (vect_recog_widen_op_pattern, vect_recog_over_widening_pattern)
+       (vect_recog_rotate_pattern, vect_synth_mult_by_constant): Don't set
+       STMT_VINFO_PATTERN_DEF_SEQ to null here.
+       (vect_recog_pow_pattern, vect_recog_vector_vector_shift_pattern)
+       (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern): Use
+       append_pattern_def_seq instead of new_pattern_def_seq.
+       (vect_recog_divmod_pattern): Do both of the above.
+       (vect_pattern_recog_1): Assert that STMT_VINO_PATTERN_DEF_SEQ
+       is null.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
+       (vect_recog_sad_pattern, vect_recog_widen_op_pattern)
+       (vect_recog_widen_mult_pattern, vect_recog_pow_pattern):
+       (vect_recog_widen_sum_pattern, vect_recog_over_widening_pattern)
+       (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
+       (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern)
+       (vect_recog_vector_vector_shift_pattern, vect_synth_mult_by_constant)
+       (vect_recog_mult_pattern, vect_recog_divmod_pattern)
+       (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern)
+       (vect_recog_mask_conversion_pattern): Replace vec<gimple *>
+       parameter with a single stmt_vec_info.
+       (vect_recog_func_ptr): Likewise.
+       (vect_recog_gather_scatter_pattern): Likewise, folding in...
+       (vect_try_gather_scatter_pattern): ...this.
+       (vect_pattern_recog_1): Remove stmts_to_replace and just pass
+       the stmt_vec_info of the statement to be matched.  Don't clear
+       STMT_VINFO_RELATED_STMT.
+       (vect_pattern_recog): Update call accordingly.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       PR tree-optimization/85694
+       * doc/md.texi (avgM3_floor, uavgM3_floor, avgM3_ceil)
+       (uavgM3_ceil): Document new optabs.
+       * doc/sourcebuild.texi (vect_avg_qi): Document new target selector.
+       * internal-fn.def (IFN_AVG_FLOOR, IFN_AVG_CEIL): New internal
+       functions.
+       * optabs.def (savg_floor_optab, uavg_floor_optab, savg_ceil_optab)
+       (savg_ceil_optab): New optabs.
+       * tree-vect-patterns.c (vect_recog_average_pattern): New function.
+       (vect_vect_recog_func_ptrs): Add it.
+       * tree-vect-stmts.c (vectorizable_call): Get the type of the zero
+       constant directly from the associated lhs.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_split_statement): New function.
+       (vect_convert_input): Use it to try to split an existing cast.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       * poly-int.h (print_hex): New function.
+       * dumpfile.h (dump_dec, dump_hex): Declare.
+       * dumpfile.c (dump_dec, dump_hex): New poly_wide_int functions.
+       * tree-vectorizer.h (_stmt_vec_info): Add min_output_precision,
+       min_input_precision, operation_precision and operation_sign.
+       * tree-vect-patterns.c (vect_get_range_info): New function.
+       (vect_same_loop_or_bb_p, vect_single_imm_use)
+       (vect_operation_fits_smaller_type): Delete.
+       (vect_look_through_possible_promotion): Add an optional
+       single_use_p parameter.
+       (vect_recog_over_widening_pattern): Rewrite to use new
+       stmt_vec_info infomration.  Handle one operation at a time.
+       (vect_recog_cast_forwprop_pattern, vect_narrowable_type_p)
+       (vect_truncatable_operation_p, vect_set_operation_type)
+       (vect_set_min_input_precision): New functions.
+       (vect_determine_min_output_precision_1): Likewise.
+       (vect_determine_min_output_precision): Likewise.
+       (vect_determine_precisions_from_range): Likewise.
+       (vect_determine_precisions_from_users): Likewise.
+       (vect_determine_stmt_precisions, vect_determine_precisions): Likewise.
+       (vect_vect_recog_func_ptrs): Put over_widening first.
+       Add cast_forwprop.
+       (vect_pattern_recog): Call vect_determine_precisions.
+ 2018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove pattern
+       statements that have been replaced by further pattern statements.
+       (vect_pattern_recog_1): Clear STMT_VINFO_PATTERN_DEF_SEQ on failure.
+ 2018-07-03  Richard Biener  <rguenther@suse.de>
+       * tree-vect-stmts.c (vect_is_simple_use): Consolidate dumping,
+       always set *dt.  Dump vectype in vectype overload.
+       * dumpfile.h (dump_gimple_expr): New function.
+       (dump_gimple_expr_loc): Likewise.
+       * dumpfile.c (dump_gimple_expr): New function.
+       (dump_gimple_expr_loc): Likewise.
+ 2018-07-02  Jeff Law  <law@redhat.com>
+       * config/h8300/h8300.md (movqi_h8300, movqi_h8300hs): Consolidate
+       the H8/300, H8/300H and H8/S variants into a single pattern.
+       (movhi_h8300, movqi_h8300hs): Similarly.
+       (pushqi_h8300hs, pushhi_h8300hs): Consolidate into a single pattern.
+       (QHI mode iterator): New.
+       * config/h8300/h8300.md: Remove trailing whitespace.
+ 2018-07-02  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv.c (riscv_expand_epilogue): Use emit_jump_insn
+       instead of emit_insn for interrupt returns.
+       * config/riscv/riscv.md (riscv_met): Add (return) to rtl.
+       (riscv_sret, riscv_uret): Likewise.
+ 2018-07-02  David Malcolm  <dmalcolm@redhat.com>
+       * pretty-print.c (selftest::test_pp_format): Move save and restore
+       of quotes to class auto_fix_quotes, and add an instance.
+       * selftest.c: Include "intl.h".
+       (selftest::auto_fix_quotes::auto_fix_quotes): New ctor.
+       (selftest::auto_fix_quotes::~auto_fix_quotes): New dtor.
+       * selftest.h (selftest::auto_fix_quotes): New class.
+ 2018-07-02  Richard Henderson  <richard.henderson@linaro.org>
+       * config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c
+       (aarch64_sve_prepare_conditional_op): Remove.
+       * config/aarch64/aarch64-sve.md (cond_<SVE_INT_BINARY><SVE_I>):
+       Allow aarch64_simd_reg_or_zero as select operand; remove
+       the aarch64_sve_prepare_conditional_op call.
+       (cond_<SVE_INT_BINARY_SD><SVE_SDI>): Likewise.
+       (cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise.
+       (*cond_<SVE_INT_BINARY><SVE_I>_z): New pattern.
+       (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_z): New pattern.
+       (*cond_<SVE_COND_FP_BINARY><SVE_F>_z): New pattern.
+       (*cond_<SVE_INT_BINARY><SVE_I>_any): New pattern.
+       (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_any): New pattern.
+       (*cond_<SVE_COND_FP_BINARY><SVE_F>_any): New pattern
+       and a splitters to match all of the *_any patterns.
+       * config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New.
+       * config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove.
+       (SVE_COND_FP_BINARY_REV): Remove.
+       (sve_int_op_rev, sve_fp_op_rev): New.
+       * config/aarch64/aarch64-sve.md (*cond_<SVE_INT_BINARY><SVE_I>_0): New.
+       (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_0): New.
+       (*cond_<SVE_COND_FP_BINARY><SVE_F>_0): New.
+       (*cond_<SVE_INT_BINARY><SVE_I>_2): Rename, add movprfx alternative.
+       (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_2): Similarly.
+       (*cond_<SVE_COND_FP_BINARY><SVE_F>_2): Similarly.
+       (*cond_<SVE_INT_BINARY><SVE_I>_3): Similarly; use sve_int_op_rev.
+       (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_3): Similarly.
+       (*cond_<SVE_COND_FP_BINARY><SVE_F>_3): Similarly; use sve_fp_op_rev.
+       * config/aarch64/aarch64-sve.md (cond_<SVE_COND_FP_BINARY><SVE_F>):
+       Remove match_dup 1 from the inner unspec.
+       (*cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise.
+       * config/aarch64/aarch64.md (movprfx): New attr.
+       (length): Default movprfx to 8.
+       * config/aarch64/aarch64-sve.md (*mul<SVE_I>3): Add movprfx alt.
+       (*madd<SVE_I>, *msub<SVE_I): Likewise.
+       (*<su>mul<SVE_I>3_highpart): Likewise.
+       (*<SVE_INT_BINARY_SD><SVE_SDI>3): Likewise.
+       (*v<ASHIFT><SVE_I>3): Likewise.
+       (*<su><MAXMIN><SVE_I>3): Likewise.
+       (*<su><MAXMIN><SVE_F>3): Likewise.
+       (*fma<SVE_F>4, *fnma<SVE_F>4): Likewise.
+       (*fms<SVE_F>4, *fnms<SVE_F>4): Likewise.
+       (*div<SVE_F>4): Likewise.
+ 2018-07-02  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo
+       in dump string.
+ 2018-07-02  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/86363
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Check the
+       memset argument refers to a non-variable address.
+ 2018-07-02  Aldy Hernandez  <aldyh@redhat.com>
+       * tree-vrp.c (extract_range_from_binary_expr_1): Abstract a lot of the
+       {PLUS,MINUS}_EXPR code to...
+       (adjust_symbolic_bound): ...here,
+       (combine_bound): ...here,
+       (set_value_range_with_overflow): ...and here.
+ 2018-07-02  Aldy Hernandez  <aldyh@redhat.com>
+       * tree-vrp.c (extract_range_from_unary_expr): Abstract ABS_EXPR
+       code...
+       (extract_range_from_abs_expr): ...here.
+ 2018-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+       * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule
+       -fno-omit-frame-pointer when not optimizing.
+ 2018-07-02  Martin Liska  <mliska@suse.cz>
+         PR ipa/86279
+       * ipa-pure-const.c (malloc_candidate_p): Revert usage of ::get.
+       (propagate_nothrow): Likewise.
+ 2018-07-02  Martin Liska  <mliska@suse.cz>
+         PR ipa/86323
+       * ipa-inline.c (early_inliner): Revert wrongly added ::get call.
+ 2018-07-02  David Malcolm  <dmalcolm@redhat.com>
+       * dumpfile.c (dump_generic_expr_loc): Undo removal of this
+       function in r262149, changing "loc" param from source_location to
+       const dump_location_t &.
+       * dumpfile.h (dump_generic_expr_loc): Undo removal of this
+       declaration, as above.
+ 2018-07-01  Paul Koning  <ni1d@arrl.net>
+       * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
+       -munit-asm, -mgnu-asm, -mdec-asm.
+       * config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New.
+       (pdp11_output_labelref): New.
+       (pdp11_output_def): New.
+       (pdp11_output_addr_vec_elt): New.
+       * config/pdp11/pdp11.c: Use tab between opcode and operands.  Use
+       %# and %@ format codes.
+       (pdp11_option_override): New.
+       (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
+       (pdp11_output_ident): New.
+       (pdp11_asm_named_section): New.
+       (pdp11_asm_init_sections): New.
+       (pdp11_file_start): New.
+       (pdp11_file_end): New.
+       (output_ascii): Use .ascii/.asciz for -mdec-asm.
+       (pdp11_asm_print_operand): Update %# and %$ for -mdec-asm.  Add
+       %o, like %c but octal.
+       (pdp11_option_override): New.
+       * config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for
+       -mdec-asm.
+       (DATA_SECTION_ASM_OP): Ditto.
+       (READONLY_DATA_SECTION_ASM_OP): New.
+       (IS_ASM_LOGICAL_LINE_SEPARATOR): New.
+       (ASM_GENERATE_INTERNAL_LABEL): Use new function.
+       (ASM_OUTPUT_LABELREF): Ditto.
+       (ASM_OUTPUT_DEF): Ditto.
+       (ASM_OUTPUT_EXTERNAL): New.
+       (ASM_OUTPUT_SOURCE_FILENAME): New.
+       (ASM_OUTPUT_ADDR_VEC_ELT): Use new function.
+       (ASM_OUTPUT_SKIP): Update for -mdec-asm.
+       * config/pdp11/pdp11.md: Use tab between opcode and operands.  Use
+       %# and %@ format codes.
+       * config/pdp11/pdp11.opt (mgnu-asm): New.
+       (mdec-asm): Conflicts with -mgnu-asm and -munix-asm.
+       (munix-asm): Conflicts with -mdec-asm and -mgnu-asm.
+       * doc/invoke.txt (PDP-11 Options): Add -mgnu-asm.
+ 2018-07-01  Aldy Hernandez  <aldyh@redhat.com>
+       * tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid
+       dereferencing path[] beyond its length.
+       (debug_path): New.
+       (debug_all_paths): New.
+       (rewire_first_differing_edge): New.
+       (adjust_paths_after_duplication): New.
+       (duplicate_thread_path): Call adjust_paths_after_duplication.
+       Add new argument.
+       (thread_through_all_blocks): Add new argument to
+       duplicate_thread_path.
+ 2018-06-30  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/predicates.md (p2m1_shift_operand): New.
+       (high_mask_shift_operand): New.
+       * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner
+       pattern using p2m1_shift_operand.
+       (lshsi3_zero_extend_3+2): New combiner pattern using
+       high_mask_shift_operand.
+ 2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_get_external_def_edge): New function,
+       split out from...
+       (vect_recog_rotate_pattern): ...here.
+       (vect_convert_input): Try to insert casts of invariants in the
+       preheader.
+       * tree-vect-loop-manip.c (vect_loop_versioning): Don't require the
+       preheader to be empty.
+ 2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (append_pattern_def_seq): Take an optional
+       vector type.  If given, install it in the new statement's
+       STMT_VINFO_VECTYPE.
+       (vect_element_precision): New function.
+       (vect_unpromoted_value): New struct.
+       (vect_unpromoted_value::vect_unpromoted_value): New function.
+       (vect_unpromoted_value::set_op): Likewise.
+       (vect_look_through_possible_promotion): Likewise.
+       (vect_joust_widened_integer, vect_joust_widened_type): Likewise.
+       (vect_widened_op_tree, vect_convert_input): Likewise.
+       (vect_convert_inputs, vect_convert_output): Likewise.
+       (vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion
+       to handle the optional cast of the multiplication result and
+       vect_widened_op_tree to detect the widened multiplication itself.
+       Do not require the input and output of promotion casts to have
+       the same sign, but base the signedness of the operation on the
+       input rather than the result.  If the pattern includes two
+       promotions, check that those promotions have the same sign.
+       Do not restrict the MULT_EXPR handling to a double-width result;
+       handle quadruple-width results and wider.  Use vect_convert_inputs
+       to convert the inputs to the common type.
+       (vect_recog_sad_pattern):  Use vect_look_through_possible_promotion
+       to handle the optional cast of the ABS result.  Also allow a sign
+       change or a sign extension between the ABS and MINUS.
+       Use vect_widened_op_tree to detect the widened subtraction and use
+       vect_convert_inputs to convert the inputs to the common type.
+       (vect_handle_widen_op_by_const): Delete.
+       (vect_recog_widen_op_pattern): New function.
+       (vect_recog_widen_mult_pattern): Use it.
+       (vect_recog_widen_shift_pattern): Likewise.
+       (vect_recog_widen_sum_pattern): Use
+       vect_look_through_possible_promotion to handle the promoted
+       PLUS_EXPR operand.
+ 2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+       * gimple-iterator.c (gsi_for_stmt): Add a new overload that takes
+       the containing gimple_seq *.
+       * gimple-iterator.h (gsi_for_stmt): Declare it.
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern)
+       (vect_recog_sad_pattern, vect_recog_widen_sum_pattern)
+       (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern)
+       (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern)
+       (vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P
+       checks.
+       (vect_init_pattern_stmt, vect_set_pattern_stmt): New functions,
+       split out from...
+       (vect_mark_pattern_stmts): ...here.  Handle cases in which the
+       statement being replaced is part of an existing pattern
+       definition sequence, inserting the new pattern statements before
+       the original one.
+       (vect_pattern_recog_1): Don't return a bool.  If the statement
+       is already part of a pattern, instead apply pattern matching
+       to the pattern definition statements.  Don't clear the
+       STMT_VINFO_RELATED_STMT if is_pattern_stmt_p.
+       (vect_pattern_recog): Don't break after the first match;
+       continue processing the pattern definition statements instead.
+       Don't bail out for STMT_VINFO_IN_PATTERN_P here.
+ 2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
+       (vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
+       (vect_recog_widen_sum_pattern): Use it.
+ 2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-loop.c (vectorizable_reduction): Assert that the
+       phi is not a pattern statement and has not been replaced by
+       a pattern statement.
+       * tree-vect-patterns.c (type_conversion_p): Don't check
+       STMT_VINFO_IN_PATTERN_P.
+       (vect_recog_vector_vector_shift_pattern): Likewise.
+       (vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return
+       the pattern statement rather than the original statement; check
+       directly for a WIDEN_MULT_EXPR here.
+       * tree-vect-slp.c (vect_get_and_check_slp_defs): Expect
+       vect_is_simple_use to return the pattern statement rather
+       than the original statement; use is_pattern_stmt_p to check
+       for such a pattern statement.
+       * tree-vect-stmts.c (process_use): Expect vect_is_simple_use
+       to return the pattern statement rather than the original statement;
+       don't do the same transformation here.
+       (vect_is_simple_use): If the defining statement has been replaced
+       by a pattern statement, return the pattern statement instead.
+       Remove the corresponding (local) transformation from the vectype
+       overload.
+ 2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the
+       end and default to null.
+       * tree-vect-loop.c (vect_create_epilog_for_reduction)
+       (vectorizable_reduction): Update calls accordingly, dropping the
+       gimple ** argument if the passed-back statement isn't needed.
+       * tree-vect-patterns.c (vect_get_internal_def, type_conversion_p)
+       (vect_recog_rotate_pattern): Likewise.
+       (vect_recog_mask_conversion_pattern): Likewise.
+       * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
+       (vect_mask_constant_operand_p): Likewise.
+       * tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use):
+       (vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise.
+       (get_group_load_store_type, get_load_store_type): Likewise.
+       (vect_check_load_store_mask, vect_check_store_rhs): Likewise.
+       (vectorizable_call, vectorizable_simd_clone_call): Likewise.
+       (vectorizable_conversion, vectorizable_assignment): Likewise.
+       (vectorizable_shift, vectorizable_operation): Likewise.
+       (vectorizable_store, vect_is_simple_cond): Likewise.
+       (vectorizable_condition, vectorizable_comparison): Likewise.
+       (get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise.
+       (vect_is_simple_use): Rename the def_stmt argument to def_stmt_out
+       and move it to the end.  Cope with null def_stmt_outs.
+ 2018-06-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+       * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET.
+ 2018-06-29  Jeff Law  <law@redhat.com>
+       * config/v850/v850.c (v850_legitimate_address_p): Handle large
+       displacements for TARGET_V850E2V3 and newer.
+       (TARGET_LRA_P): Remove.  Defaults to LRA now.
+       * config/v850/v850.md (sign23byte_load): Remove.
+       (unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise.
+       (23word_load, 23byte_store, 23hword_store, 23word_store): Likewise.
+ 2018-06-29  Martin Liska  <mliska@suse.cz>
+       PR lto/85759
+       * coverage.c (coverage_init): Mangle full path name.
+       * doc/invoke.texi: Document the change.
+       * gcov-io.c (mangle_path): New.
+       * gcov-io.h (mangle_path): Likewise.
+       * gcov.c (mangle_name): Use mangle_path for path mangling.
+ 2018-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/arm.c (output_move_double): Don't allow STRD instructions
+       if starting source register is not even.
+ 2018-06-29  Martin Liska  <mliska@suse.cz>
+         PR tree-optimization/86263
+       * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion):
+         Make edge redirection.
+ 2018-06-29  David Malcolm  <dmalcolm@redhat.com>
+       * dumpfile.c (dump_loc): Add indentation based on scope depth.
+       (dump_scope_depth): New variable.
+       (get_dump_scope_depth): New function.
+       (dump_begin_scope): New function.
+       (dump_end_scope): New function.
+       * dumpfile.h (get_dump_scope_depth): New declaration.
+       (dump_begin_scope): New declaration.
+       (dump_end_scope): New declaration.
+       (class auto_dump_scope): New class.
+       (AUTO_DUMP_SCOPE): New macro.
+       * tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of
+       AUTO_DUMP_SCOPE.
+ 2018-06-29  Richard Biener  <rguenther@suse.de>
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert
+       compute_all_dependences succeeds.
+       * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we
+       exceed --param loop-max-datarefs-for-datadeps.
+ 2018-06-29  Jakub Jelinek  <jakub@redhat.com>
+       * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
+ 2018-06-28  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/86348
+       * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use
+       alternative 0 in preferred_for_speed attribute.
+ 2018-06-28  Paul Koning  <ni1d@arrl.net>
+       * config/pdp11/pdp11-protos.h (pdp11_shift_length): New function.
+       * config/pdp11/pdp11.c (pdp11_shift_length): New function.
+       * config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove.
+       * config/pdp11/pdp11.md: Correct "length" attribute calculation
+       for shift insn patterns.
+ 2018-06-28  David Malcolm  <dmalcolm@redhat.com>
+       * cgraph.c (cgraph_node::get_body): Replace assignments to
+       "dump_file" with calls to set_dump_file.
+       * dumpfile.c (alt_dump_file): Make static, and group with...
+       (alt_flags): ...this definition.
+       (dumps_are_enabled): New variable.
+       (refresh_dumps_are_enabled): New function.
+       (set_dump_file): New function.
+       (set_alt_dump_file): New function.
+       (gcc::dump_manager::dump_start): Replace assignments to
+       "dump_file" and "alt_dump_file" with calls to set_dump_file and
+       set_alt_dump_file.
+       (gcc::dump_manager::dump_finish): Likewise.
+       * dumpfile.h (alt_dump_file): Delete decl.
+       (dumps_are_enabled): New variable decl.
+       (set_dump_file): New function decl.
+       (dump_enabled_p): Rewrite in terms of new "dumps_are_enabled"
+       global.
+       * tree-nested.c (lower_nested_functions): Replace assignments to
+       "dump_file" with calls to set_dump_file.
+ 2018-06-28  Eric Botcazou  <ebotcazou@adacore.com>
+       * tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the
+       goto_locus of each outgoing edge of each basic block.
+ 2018-06-28  Richard Biener  <rguenther@suse.de>
+       * dwarf2out.c (decl_scope_table): Remove.
+       (push_decl_scope): Likewise.
+       (pop_decl_scope): Likewise.
+       (gen_type_die_for_member): Do not call push/pop_decl_scope.
+       (gen_struct_or_union_type_die): Likewise.
+       (gen_tagged_type_die): Likewise.
+       (dwarf2out_init): Do not initialize decl_scope_table.
+       (dwarf2out_c_finalize): Do not free it.
+ 2018-06-28  Richard Biener  <rguenther@suse.de>
+       * dwarf2out.c (gen_subprogram_die): Use is_unit_die when
+       deciding whether to not re-use a DIE.
+ 2018-06-28  Richard Biener  <rguenther@suse.de>
+       * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an
+       DW_AT_abstract_origin attribute.
+ 2018-06-28  Martin Liska  <mliska@suse.cz>
+       * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
+         Use newly introduced constants.
+       * tree-switch-conversion.h (struct jump_table_cluster):
+         Define max_ratio_for_size and max_ratio_for_speed.
+ 2018-06-28  Martin Liska  <mliska@suse.cz>
+       * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
+         Add new checking assert to catch invalid state.
+       (jump_table_cluster::can_be_handled): Handle single case
+         clusters.
+       (jump_table_cluster::is_beneficial): Bail out for such case.
+       (bit_test_cluster::find_bit_tests):
+         Add new checking assert to catch invalid state.
+       (bit_test_cluster::can_be_handled): Handle single case
+         clusters.
+       (bit_test_cluster::is_beneficial): Bail out for such case.
+       (switch_decision_tree::analyze_switch_statement):
+         Fix comment.
+ 2018-06-28  Martin Liska  <mliska@suse.cz>
+       * common.opt: Introduce -completion option.
+       * gcc.c (driver_handle_option): Handle it.
+       (driver::main): Print completions if completion
+         is set.
+       * opt-suggestions.c (option_proposer::get_completions):
+         New function.
+       (option_proposer::suggest_completion): Likewise.
+       (option_proposer::find_param_completions): Likewise.
+       (verify_autocompletions): Likewise.
+       (test_completion_valid_options): Likewise.
+       (test_completion_valid_params): Likewise.
+       (in_completion_p): Likewise.
+       (empty_completion_p): Likewise.
+       (test_completion_partial_match): Likewise.
+       (test_completion_garbage): Likewise.
+       (opt_proposer_c_tests): Likewise.
+       * opt-suggestions.h: Declare new functions.
+       * opts.c (common_handle_option): Handle OPT__completion_.
+       * selftest-run-tests.c (selftest::run_tests): Add
+         opt_proposer_c_tests.
+       * selftest.c (assert_str_startswith): New.
+       * selftest.h (assert_str_startswith): Likewise.
+       (opt_proposer_c_tests): New.
+       (ASSERT_STR_STARTSWITH): Likewise.
+ 2018-06-28  Martin Liska  <mliska@suse.cz>
+       * Makefile.in: Add opt-suggestions.o.
+       * gcc-main.c: Include opt-suggestions.h.
+       * gcc.c (driver::driver): Likewise.
+       (driver::~driver): Remove m_option_suggestions.
+       (driver::build_option_suggestions): Moved to option_proposer.
+       (driver::suggest_option): Likewise.
+       (driver::handle_unrecognized_options): Use option_proposer.
+       * gcc.h (class driver): Add new memver m_option_proposer.
+       * opt-suggestions.c: New file.
+       * opt-suggestions.h: New file.
+ 2018-06-28  Martin Liska  <mliska@suse.cz>
+       * vec.h (class auto_string_vec): New (moved from auto_argvec).
+       (auto_string_vec::~auto_string_vec): Likewise.
+ 2018-06-28  Eric Botcazou  <ebotcazou@adacore.com>
+       * tree-inline.h (struct copy_body_data): Move remapping_type_depth and
+       prevent_decl_creation_for_types fields up and add reset_location field.
+       * tree-inline.c (remap_gimple_stmt): Force input_location on the new
+       statement if id->reset_location is true.
+       (copy_edges_for_bb): Do not set goto_locus on the new edges if
+       id->reset_location is true.
+       (copy_phis_for_bb): Force input_location on the arguments if
+       id->reset_location is true.
+       (expand_call_inline): Set id->reset_location if DECL_IGNORED_P
+       is set on the function to be inlined.
+ 2018-06-27  Stephan Bergmann  <sbergman@redhat.com>
+       * doc/invoke.texi (Debugging Options): Add -gsplit-dwarf.
+ 2018-06-27  Dimitar Dimitrov  <dimitar@dinux.eu>
+       * lra-eliminations.c (update_reg_eliminate): Mark all spanning hard
+       registers for Pmode.
+       * lra-lives.c (check_pseudos_live_through_calls): Mark all spanning
+       hard registers for the clobbered pseudo.
+ 2018-06-27  Paul Koning  <ni1d@arrl.net>
+       * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
+       mutually exclusive options.
+       * config/pdp11/constraints.md (h): New constraint.
+       (O): Update definition to match shift code generation.
+       (D): New constraint.
+       * config/pdp11/pdp11-modes.def (CCNZ): Define mode.
+       (CCFP): Remove.
+       * config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New
+       function.
+       (output_jump): Change arguments.
+       (pdp11_fixed_cc_regs): New function.
+       (pdp11_cc_mode): Ditto.
+       (pdp11_expand_shift): Ditto.
+       (pdp11_assemble_shift): Ditto.
+       (pdp11_small_shift): Ditto.
+       (pdp11_branch_cost): Remove.
+       * config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments
+       from output.
+       (pdp11_register_move_cost): Update for CC registers.
+       (pdp11_rtx_costs): Add case for LSHIFTRT.
+       (pdp11_output_jump): Add CCNZ mode conditional branches.
+       (notice_update_cc_on_set): Remove.
+       (pdp11_cc_mode): New function.
+       (simple_memory_operand): Correct pre/post decrement case.
+       (no_side_effect_operand): New function.
+       (pdp11_regno_reg_class): Add CC_REGS class.
+       (pdp11_fixed_cc_regs): New function.
+       (pdp11_small_shift): New function.
+       (pdp11_expand_shift): New function to expand shift insns.
+       (pdp11_assemble_shift): New function to output shifts.
+       (pdp11_branch_cost): Remove.
+       (pdp11_modes_tieable_p): Make QI/HI modes tieable.
+       * config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type.
+       (WCHAR_TYPE): Ditto.
+       (PTRDIFF_TYPE): Ditto.
+       (ADJUST_INSN_LENGTH): New macro.
+       (FIXED_REGISTERS): Add CC registers.
+       (CALL_USED_REGISTERS): Ditto.
+       (reg_class): Ditto.
+       (REG_CLASS_NAMES): Ditto.
+       (REG_CLASS_CONTENTS): Ditto.
+       (SELECT_CC_MODE): Use new function.
+       (TARGET_FLAGS_REGNUM): New macro.
+       (TARGET_FIXED_CONDITION_CODE_REGS): Ditto.
+       (cc0_reg_rtx): Remove.
+       (CC_STATUS_MDEP): Remove.
+       (CC_STATUS_MDEFP_INIT): Remove.
+       (CC_IN_FPU): Remove.
+       (NOTICE_UPDATE_CC): Remove.
+       (REGISTER_NAMES): Add CC registers.
+       (BRANCH_COST): Change to constant 1.
+       * config/pdp11/pdp11.md: Rewrite for CCmode condition code
+       handling.
+       * config/pdp11/pdp11.opt (mbcopy): Remove.
+       (mbcopy-builtin): Remove.
+       (mbranch-cheap): Remove.
+       (mbranch-expensive): Remove.
+       * config/pdp11/predicates.md (expand_shift_operand): Update to
+       match shift code generation.
+       (ccnz_operator): New predicate.
+       * doc/invoke.texi (PDP-11 Options): Remove deleted options
+       -mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive.
+       Remove non-existent option -mabshi, -mno-abshi.  Document mutually
+       exclusive options.
+       * doc/md.texi (PDP-11): Document new D and h constraints.  Update
+       description of O constraint.
+ 2018-06-27  Jeff Law  <law@redhat.com>
+           Austin Law  <austinklaw@gmail.com>
+       * config/v850/v850.md (addsi3_set_flags): New pattern.
+       (subsi3_set_flags, negsi2_set_flags, andsi3_set_flags): Likewise.
+       (iorsi3_set_flags, xorsi3_set_flags, one_cmplsi2_set_flags): Likewise.
+       (zero_extendhisi2_v850_set_flags): Likewise.
+       (zero_extendqisi2_v850_set_flags): Likewise.
+       (ashlsi3_set_flags, ashlsi3_v850e2_set_flags): Likewise.
+       (lshrsi3_set_flags, lshrsi3_v850e2_set_flags): Likewise.
+       (ashrsi3_set_flags, ashrsi3_v850e2_set_flags): Likewise.
+       * config/v850/v850-protos.h (notice_update_cc): Remove.
+       * config/v850/v850.c (v850_compare_op0, v850_compare_op1): Remove.
+       (v850_print_operand): Handle 'D' and "d".
+       (v850_select_cc_mode): Remove ATTRIBUTE_UNUSED for last argument.
+       Add handling of arithmetic/logical operations compared against zero.
+       (v850_gen_float_compare): Remove ATTRIBUTE_UNUSED for last argument.
+       Do not look at v850_compare_op, instead get mode from last argument.
+       (v850_gen_compare): Remove
+       (increment_stack): Use addsi3_clobber_flags to avoid splitting failure
+       after reload for prologue insns.
+       (expand_prologue): Account for CLOBBER of CC_REGNUM in various
+       patterns.
+       (construct_save_jarl): Likewise.
+       (TARGET_FLAGS_REGNUM): Define.
+       * config/v850/v850.h (v850_compare_op0, v850_compare_op1): Remove.
+       (NOTICE_UPDATE_CC): Remove.
+       * config/v850/v850.md (v850_tst1): Use (reg:CCZ CC_REGNUM) rather
+       than cc0.  Conditionalize on reload_completed.
+       (cmpsi_insn, setfcc_insn): Likewise.
+       (tst1 splitter): Turn into define_and_split which sets the flags
+       after reload.
+       (cstoresi4, cbranchsf4, cbranchdf4, cbranchsi4_insn): Likewise.
+       (cbranchsi4, branch_normal, branch_invert): Do not expose cc0 here.
+       (cstoresf4, cstoredf4): Clobber the flags.
+       (cmpsi, cmpsf, cmpdf): Remove expanders.
+       (setf_insn): Remove pattern.
+       (addsi3): Turn into define_and_split which clobbers the flags after
+       reload and a suitable pattern (addsi3_clobber_flags) for use after
+       reload.
+       (subsi3, negsi2, andsi3, iorsi3, xorsi3, one_cmplsi2) Likewise.
+       (ashlsi3, ashlsi3_v850e2, lshrsi3, lsh4si3_v850e2): Likewise.
+       (ashrsi3, ashrsi3_v850e2): Likewise.
+       (bins): Clobber the flags.
+       (movsicc_normal_cc, movsicc_normal, movsicc_tst1): Likewise.
+       (movsicc_tst1_revesed, sasf, swap and rotate patterns): Likewise.
+       (fix_loop_counter, call_internal_short, call_internal_long): Likewise.
+       (call_value_internal_short, call_value_internal_long): Likewise.
+       (callt_save_interrupt, callt_return_interrupt): Likewise.
+       (save_interrupt, return_interrupt): Likewise.
+       (callt_save_all_interrupt, save_all_interrupt): Likewise.
+       (_save_all_interrupt, callt_restore_all_interrupt): Likewise.
+       (restore_all_interrupt, _restore_all_interrupt): Likewise.
+       (All FP comparisons): Only allow after reload has completed.
+       (trfsr): Likewise.
+       (divh, divhu): Tweak output template.
+       (branch_z_normal, branch_z_invert): Remove
+       (branch_nz_normal, branch_nz_invert): Likewise.
+       (extendhisi_insn, extendqisi_insn): Do not clobber flags.
+       * config/v850/v850-modes.def (CCZ, CCNZ): Add new modes.
+       * config/v850/v850.c (notice_update_cc): Remove.
+       * config/v850/v850.h  (CC_OVERFLOW_UNUSABLE): Remove
+       (CC_NO_CARRY): Likewise.
+       (NOTICE_UPDATE_CC): Define to nothing.
+       * config/v850/v850.md: Remove block comment on cc0 handling
+       Remove "cc" attribute from all patterns.  Remove cc_status handling
+       from all patterns.  Minor formatting fixes.
+ 2018-06-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/aarch64/aarch64-cores.def (cortex-a76): New entry.
+       (cortex-a76.cortex-a55): Likewise.
+       * config/aarch64/aarch64-tune.md: Regenerate.
+       * doc/invoke.texi (AArch64 Options): Document cortex-a76 and
+       cortex-a76.cortex-a55.
  
- 2016-10-04  Richard Biener  <rguenther@suse.de>
+ 2018-06-27  Jeff Law  <law@redhat.com>
  
-       PR middle-end/77833
-       * explow.c (plus_constant): Verify the mode of the constant
-       pool offset before calling plus_constant.
+       * config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align.
+       (MULTILIB_DIRNAMES): Similarly.
  
- 2016-10-04  Richard Biener  <rguenther@suse.de>
+ 2018-06-27  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR middle-end/77407
-       * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
-       type support, mark with :C.
-       (X / -X -> -1): Mark with :C.
+       * gimple.h (gimple_return_retbnd): Delete.
+       (gimple_return_set_retbnd): Likewise.
+       * cgraphunit.c (cgraph_node::expand_thunk): Remove call to
+       gimple_return_set_retbnd.
+       * gimple-pretty-print.c (dump_gimple_return): Remove call to
+       gimple_return_retbnd and adjust.
+       * tree-inline.h (struct copy_body_data): Remove retbnd field.
+       * tree-inline.c (remap_gimple_stmt): Remove handling of retbnd.
+       Explicitly return NULL in a couple more cases.  Move assertion
+       on debug statements and remove unreachable code.
+       (reset_debug_binding): Do not test id->retbnd.
+       (expand_call_inline): Do not set it.
  
- 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 2018-06-27  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
  
-       * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
-       * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
-       * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
-       * doc/tm.texi: Regenerated.
-       * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
-       * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
-       * config/darwin.h (JCR_SECTION_NAME): Remove.
-       * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
-       * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
-       * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
-       * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
-       * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
-       * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
- 2016-10-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
-       between "because" and "param" in dump message in call to fprintf.
- 2016-10-03  Jeff Law  <law@redhat.com>
-       PR tree-optimization/71550
-       PR tree-optimization/71403
-       * tree-ssa-threadbackward.c: Include tree-vectorizer.h
-       (profitable_jump_thread_path): Also return boolean indicating if
-       the realized path will create an irreducible loop.
-       Remove loop depth tests from 71403.
-       (fsm_find_control_statement_thread_paths): Remove loop depth tests
-       from 71403.  If threading will create an irreducible loop, then
-       throw away loop iteration and related information.
- 2016-10-03  Uros Bizjak  <ubizjak@gmail.com>
-       * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
-       -Woverloaded-virtual checks for warning options.
+       * configure.ac: Add --disable-gcov option.
        * configure: Regenerate.
+       * Makefile.in: Honour @enable_gcov@.
+       * doc/install.texi: Document --disable-gcov.
  
- 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 2018-06-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       PR preprocessor/77699
-       * input.c (maybe_grow): Don't allocate one byte extra headroom.
-       (get_next_line): Return false on error.
-       (read_next_line): Removed, use get_next_line instead.
-       (read_line_num): Don't copy the line.
-       (location_get_source_line): Don't use static data.
-       (selftest::test_reading_source_line): Add more test cases.
- 2016-10-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       Revert
-       2016-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * ifcvt.c (noce_try_avoid_const_materialization): New function.
-       (noce_process_if_block): Use it.
- 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+       * config/arm/arm-cpus.in (cortex-a76): New entry.
+       (cortex-a76.cortex-a55): Likewise.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/arm-tune.md: Likewise.
+       * config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry.
+       * doc/invoke.texi (ARM Options): Document cortex-a76 and
+       cortex-a76.cortex-a55.
  
-       * doc/invoke.texi: Update -Wint-in-bool-context.
+ 2018-06-27 Tamar Christina  <tamar.christina@arm.com>
  
- 2016-10-02  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85769
+       * config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern.
  
-       * dwarf2out.c (output_fde, output_call_frame_info,
-       dwarf2out_do_cfi_startproc, set_indirect_string,
-       gen_internal_sym, output_die, output_line_info): Use
-       MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
-       ASM_GENERATE_INTERNAL_LABEL output.
+ 2018-06-27  Siddhesh Poyarekar  <siddhesh@sourceware.org>
  
- 2016-10-01  Richard Biener  <rguenther@suse.de>
+       * config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete
+       comment.
+       (EPILOGUE_USES): Likewise.
+ 2018-06-26  Eric Botcazou  <ebotcazou@adacore.com>
+       * tree-inline.c (remap_location): New function extracted from...
+       (copy_edges_for_bb): Add ID parameter.  Remap goto_locus.
+       (copy_phis_for_bb): ...here.  Call remap_location.
+       (copy_cfg_body): Adjust call to copy_edges_for_bb.
+ 2018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
+       * config/rs6000/rs6000-string.c (expand_block_clear): Don't use
+       unaligned vsx for 16B memset.
+ 2018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR target/86285
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
+       ieee128_float_type_node to long_double_type_node unless
+       TARGET_LONG_DOUBLE_128 is set.
+ 2018-06-26  David Malcolm  <dmalcolm@redhat.com>
+       * cfgloop.c (get_loop_location): Convert return type from
+       location_t to dump_user_location_t, replacing INSN_LOCATION lookups
+       by implicit construction from rtx_insn *, and using
+       dump_user_location_t::from_function_decl for the fallback case.
+       * cfgloop.h (get_loop_location): Convert return type from
+       location_t to dump_user_location_t.
+       * cgraphunit.c (walk_polymorphic_call_targets): Update call to
+       dump_printf_loc to pass in a dump_location_t rather than a
+       location_t, via the gimple stmt.
+       * coverage.c (get_coverage_counts): Update calls to
+       dump_printf_loc to pass in dump_location_t rather than a
+       location_t.
+       * doc/optinfo.texi (Dump types): Convert example of
+       dump_printf_loc from taking "locus" to taking "insn".  Update
+       description of the "_loc" calls to cover dump_location_t.
+       * dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and
+       "selftest.h".
+       (dump_user_location_t::dump_user_location_t): New constructors,
+       from gimple *stmt and rtx_insn *.
+       (dump_user_location_t::from_function_decl): New function.
+       (dump_loc): Make static.
+       (dump_gimple_stmt_loc): Convert param "loc" from location_t to
+       const dump_location_t &.
+       (dump_generic_expr_loc): Delete.
+       (dump_printf_loc): Convert param "loc" from location_t to
+       const dump_location_t &.
+       (selftest::test_impl_location): New function.
+       (selftest::dumpfile_c_tests): New function.
+       * dumpfile.h: Include "profile-count.h".
+       (class dump_user_location_t): New class.
+       (struct dump_impl_location_t): New struct.
+       (class dump_location_t): New class.
+       (dump_printf_loc): Convert 2nd param from source_location to
+       const dump_location_t &.
+       (dump_generic_expr_loc): Delete.
+       (dump_gimple_stmt_loc): Convert 2nd param from source_location to
+       const dump_location_t &.
+       * gimple-fold.c (fold_gimple_assign): Update call to
+       dump_printf_loc to pass in a dump_location_t rather than a
+       location_t, via the gimple stmt.
+       (gimple_fold_call): Likewise.
+       * gimple-loop-interchange.cc
+       (loop_cand::analyze_iloop_reduction_var): Update for change to
+       check_reduction_path.
+       (tree_loop_interchange::interchange): Update for change to
+       find_loop_location.
+       * graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for
+       change in return-type of find_loop_location.
+       (graphite_regenerate_ast_isl): Likewise.
+       * graphite-optimize-isl.c (optimize_isl): Likewise.
+       * graphite.c (graphite_transform_loops): Likewise.
+       * ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to
+       pass in a dump_location_t rather than a location_t, via the
+       gimple stmt.
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
+       * ipa.c (walk_polymorphic_call_targets): Likewise.
+       * loop-unroll.c (report_unroll): Convert "locus" param from
+       location_t to dump_location_t.
+       (decide_unrolling): Update for change to get_loop_location's
+       return type.
+       * omp-grid.c (struct grid_prop): Convert field "target_loc" from
+       location_t to dump_user_location_t.
+       (grid_find_single_omp_among_assignments_1): Updates calls to
+       dump_printf_loc to pass in a dump_location_t rather than a
+       location_t, via the gimple stmt.
+       (grid_parallel_clauses_gridifiable): Convert "tloc" from
+       location_t to dump_location_t.  Updates calls to dump_printf_loc
+       to pass in a dump_location_t rather than a location_t, via the
+       gimple stmt.
+       (grid_inner_loop_gridifiable_p): Likewise.
+       (grid_dist_follows_simple_pattern): Likewise.
+       (grid_gfor_follows_tiling_pattern): Likewise.
+       (grid_target_follows_gridifiable_pattern): Likewise.
+       (grid_attempt_target_gridification): Convert initialization
+       of local "grid" from memset to zero-initialization; FIXME: does
+       this require C++11?  Update call to dump_printf_loc to pass in a
+       optinfo_location rather than a location_t, via the gimple stmt.
+       * profile.c (read_profile_edge_counts): Updates call to
+       dump_printf_loc to pass in a dump_location_t rather than a
+       location_t
+       (compute_branch_probabilities): Likewise.
+       * selftest-run-tests.c (selftest::run_tests): Call
+       dumpfile_c_tests.
+       * selftest.h (dumpfile_c_tests): New decl.
+       * tree-loop-distribution.c (pass_loop_distribution::execute):
+       Update for change in return type of find_loop_location.
+       * tree-parloops.c (parallelize_loops): Likewise.
+       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert
+       "locus" from location_t to dump_user_location_t.
+       (canonicalize_loop_induction_variables): Likewise.
+       * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update
+       for change in return type of find_loop_location.
+       * tree-ssa-loop-niter.c (number_of_iterations_exit): Update call
+       to dump_printf_loc to pass in a dump_location_t rather than a
+       location_t, via the stmt.
+       * tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children):
+       Likewise.
+       * tree-vect-loop-manip.c (find_loop_location): Convert return
+       type from source_location to dump_user_location_t.
+       (vect_do_peeling): Update for above change.
+       (vect_loop_versioning): Update for change in type of
+       vect_location.
+       * tree-vect-loop.c (check_reduction_path): Convert "loc" param
+       from location_t to dump_user_location_t.
+       (vect_estimate_min_profitable_iters): Update for change in type
+       of vect_location.
+       * tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from
+       location_t to dump_location_t.
+       (vect_slp_bb): Update for change in type of vect_location.
+       * tree-vectorizer.c (vect_location): Convert from source_location
+       to dump_user_location_t.
+       (try_vectorize_loop_1): Update for change in vect_location's type.
+       (vectorize_loops): Likewise.
+       (increase_alignment): Likewise.
+       * tree-vectorizer.h (vect_location): Convert from source_location
+       to dump_user_location_t.
+       (find_loop_location): Convert return type from source_location to
+       dump_user_location_t.
+       (check_reduction_path): Convert 1st param from location_t to
+       dump_user_location_t.
+       * value-prof.c (check_counter): Update call to dump_printf_loc to
+       pass in a dump_user_location_t rather than a location_t; update
+       call to error_at for change in type of "locus".
+       (check_ic_target): Update call to dump_printf_loc to
+       pass in a dump_user_location_t rather than a location_t, via the
+       call_stmt.
+ 2018-06-26  Robin Dapp  <rdapp@linux.vnet.ibm.com>
+         * config/s390/s390.h (enum processor_flags): Do not use
+         default tune parameter when -march was specified.
+ 2018-06-26  Jakub Jelinek  <jakub@redhat.com>
+       PR target/86314
+       * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
+       Check reg_overlap_mentioned_p in addition to reg_set_p with the same
+       operands.
  
-       PR middle-end/77798
-       * genmatch.c (get_operand_type): Add operand position arg
-       and handle COND_EXPR comparison operand with fixed boolean_type_node.
-       (expr::gen_transform): Adjust.
-       (dt_simplify::gen_1): Likewise.
+ 2018-06-26  Richard Biener  <rguenther@suse.de>
  
- 2016-10-01  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/86287
+       PR bootstrap/86316
+       * tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free.
+       (vect_analyze_loop): Initialize n_stmts.
  
-       * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
-       comments.  Simplify asserts, remove unnecessary conditions.
-       Formatting fixes.
-       (*<code><mode>3): Likewise.
+ 2018-06-26  Richard Biener  <rguenther@suse.de>
  
- 2016-09-30  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/86271
+       * fold-const.c (fold_convertible_p): Pointer extension
+       isn't valid.
  
-       * doc/invoke.texi (-Wregister): Document.
+ 2018-06-26  Alexandre Oliva <aoliva@redhat.com>
  
- 2016-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+       PR debug/86064
+       * dwarf2out.c (loc_list_has_views): Adjust comments.
+       (dw_loc_list): Split single cross-partition range with
+       nonzero locview.
  
-       * configure.ac: Split CHECKING_P into CHECKING_P and
-       ENABLE_EXTRA_CHECKING.
-       * configure: Regenerated.
-       * config.in: Adjust commment of CHECKING_P.  Add ENABLE_EXTRA_CHECKING.
-       * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
+ 2018-06-25  Jeff Law  <law@redhat.com>
  
- 2016-09-30  Prasad Ghangal  <prasad.ghangal@gmail.com>
+       * common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn
+       on -mbig-switch by default.
  
-       PR other/31566
-       * gcc.c (process_command): For @filename handling, output
-       the correct name if the file does not exist.
+       * config/v850/predicates.md (const_float_1_operand): Fix match_code
+       test.
+       (const_float_0_operand): Remove unused predicate.
+       * config/v850/v850.md (define_constants): Remove UNSPEC_LOOP.
+       (define_c_enum unspec): Add LOOP, RCP and RSQRT constants.
+       (recipsf2): New expander.  Original pattern now called
+       (recipsf2_insn).
+       (recipdf2, recipdf2_insn): Similarly.
+       (rsqrtsf2, rsqrtsf2_insn): Similarly
+       (rsqrtdf2, rsqrtdf2_insn): Similarly
  
- 2016-09-30  Marek Polacek  <polacek@redhat.com>
+ 2018-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
  
-       * config/aarch64/aarch64-simd.md: Adjust fall through comments.
-       * config/alpha/predicates.md: Likewise.
+       * ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5.
+       Simplify logic for FreeBSD (twice).
  
- 2016-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-06-25  Martin Sebor  <msebor@redhat.com>
  
-       * ifcvt.c (noce_try_avoid_const_materialization): New function.
-       (noce_process_if_block): Use it.
+       PR tree-optimization/86204
+       * tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing
+       a strnlen result if it's less than the length of the string.
  
- 2016-09-30  Martin Liska  <mliska@suse.cz>
+ 2018-06-25  Martin Sebor  <msebor@redhat.com>
  
-       * doc/invoke.texi: Document asan-use-after-return that
-       it's disabled by default in runtime.
+       PR tree-optimization/85700
+       * gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment.
+       * tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction.
+       (maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy.
  
- 2016-09-30  Richard Biener  <rguenther@suse.de>
+ 2018-06-25  Martin Sebor  <msebor@redhat.com>
  
-       * tree-vrp.c (intersect_ranges): If we failed to handle
-       the intersection choose a constant singleton range if available.
+       * doc/extend.texi (Zero-length arrays): Update and clarify.
  
- 2016-09-30  Richard Biener  <rguenther@suse.de>
+ 2018-06-25  Michael Meissner  <meissner@linux.ibm.com>
  
-       PR tree-optimization/77399
-       * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
-       float <-> int conversions.
+       * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
+       added IEEE/IBM long double multilib support on PowerPC little
+       endian Linux systems.
+       * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
+       (MULTILIB_DEFAULTS): Likewise.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal):
+       Likewise.
+       * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
+       * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
+       * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.
  
- 2016-09-30  Alan Modra  <amodra@gmail.com>
+ 2018-06-25  Alexander Monakov  <amonakov@ispras.ru>
  
-       * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
+       PR middle-end/86311
+       * sort.cc (REORDER_23): Avoid memcpy with same destination and source.
+       (REORDER_45): Likewise.
  
- 2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-06-25  Jeff Law  <law@redhat.com>
  
-       * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
-       ext_level before calling CPUID with 0x80000008.
-       Simplify xgetbv checks.
+       * config/v850/v850.md (divmodhi4): Make sure to sign extend the
+       dividend to 32 bits.  Adjust length.
+       (udivmodhi4): Cleanup output template.  Fix length.
  
- 2016-09-29  David Malcolm  <dmalcolm@redhat.com>
+ 2018-06-25  Carl Love  <cel@us.ibm.com>
  
-       * Makefile.in (OBJS): Add print-rtl-function.o.
-       * print-rtl-function.c: New file.
-       * print-rtl.h (print_rtx_function): New decl.
+       * config/rs6000/vsx.md: Change word selector to prefered location.
  
- 2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-06-25  Richard Biener  <rguenther@suse.de>
  
-       PR target/77756
-       * config/i386/cpuid.h (__get_cpuid_count): New.
-       (__get_cpuid): Rename __level to __leaf.
+       PR tree-optimization/86304
+       * tree-vectorizer.c (vectorize_loops): Walk over new possibly
+       epilogue-if-converted loops as well.
  
- 2016-09-29  Marek Polacek  <polacek@redhat.com>
+ 2018-06-25  Jan Hubicka  <hubicka@ucw.cz>
  
-       * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
+       * lto-section-out.c (lto_begin_section): Do not print section
+       name for noaddr and unnumbered dumps.
  
- 2016-09-29  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-06-25  Richard Biener  <rguenther@suse.de>
  
-       * builtins.c (expand_builtin_memcmp): don't swap args unless
-       result is only being compared with zero.
+       * tree-vectorizer.h (struct vec_info_shared): New structure
+       with parts split out from struct vec_info and loop_nest from
+       struct _loop_vec_info.
+       (struct vec_info): Adjust accordingly.
+       (struct _loop_vec_info): Likewise.
+       (LOOP_VINFO_LOOP_NEST): Adjust.
+       (LOOP_VINFO_DATAREFS): Likewise.
+       (LOOP_VINFO_DDRS): Likewise.
+       (struct _bb_vec_info): Likewise.
+       (BB_VINFO_DATAREFS): Likewise.
+       (BB_VINFO_DDRS): Likewise.
+       (struct _stmt_vec_info): Add dr_aux member.
+       (DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo.
+       (DR_MISALIGNMENT_UNINITIALIZED): New.
+       (set_dr_misalignment): Adjust.
+       (dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED.
+       (vect_analyze_loop): Adjust prototype.
+       (vect_analyze_loop_form): Likewise.
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
+       Compute dependences lazily.
+       (vect_record_base_alignments): Use shared datarefs/ddrs.
+       (vect_verify_datarefs_alignment): Likewise.
+       (vect_analyze_data_refs_alignment): Likewise.
+       (vect_analyze_data_ref_accesses): Likewise.
+       (vect_analyze_data_refs): Likewise.
+       * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add
+       constructor parameter for shared part.
+       (vect_analyze_loop_form): Pass in shared part and adjust.
+       (vect_analyze_loop_2): Pass in storage for the number of
+       stmts.  Move loop nest finding to the caller.  Compute
+       datarefs lazily.
+       (vect_analyze_loop): Pass in shared part.
+       (vect_transform_loop): Verify shared datarefs are unchanged.
+       * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add
+       constructor parameter for shared part.
+       (vect_slp_analyze_bb_1): Pass in shared part and adjust.
+       (vect_slp_bb): Verify shared datarefs are unchanged before
+       transform.
+       * tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX
+       change.
+       (new_stmt_vec_info): Initialize DR_AUX misalignment to
+       DR_MISALIGNMENT_UNINITIALIZED.
+       * tree-vectorizer.c (vec_info::vec_info): Add constructor
+       parameter for shared part.
+       (vec_info::~vec_info): Adjust.
+       (vec_info_shared::vec_info_shared): New.
+       (vec_info_shared::~vec_info_shared): Likewise.
+       (vec_info_shared::save_datarefs): Likewise.
+       (vec_info_shared::check_datarefs): Likewise.
+       (try_vectorize_loop_1): Construct shared part live for analyses
+       of a single loop for multiple vector sizes.
+       * tree-parloops.c (gather_scalar_reductions): Adjust.
  
- 2016-09-29  Marek Polacek  <polacek@redhat.com>
+ 2018-06-25  Richard Biener  <rguenther@suse.de>
  
-       * dwarf2out.c (loc_descriptor): Add fall through comment.
-       (add_const_value_attribute): Likewise.
+       * tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify
+       DR for SIMD lane accesses here and mark DR with (void *)-1 aux.
+       (vect_analyze_data_refs): Remove similar code from here and
+       simplify accordingly.
  
- 2016-09-29  Matthew Wahab  <matthew.wahab@arm.com>
+ 2018-06-25  Richard Biener  <rguenther@suse.de>
  
-       * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
-       with "v6t2".  Move "arch" attribute above "pool_range".
-       * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
-       with "v6t2".
-       (*thumb2_movhi_vfp): Likewise.
-       (*arm_movhi_fp16): Likewise.
-       (*thumb2_movhi_fp16): Likewise.
-       (*arm_movsi_vfp): Remove "arch" attribute.
-       (*thumb2_movsi_vfp): Likewise.
+       * tree-vect-data-refs.c (vect_check_gather_scatter): Fail
+       for reverse storage order accesses rather than asserting
+       they cannot happen here.
  
- 2016-09-29  Martin Liska  <mliska@suse.cz>
+ 2018-06-25  Tom de Vries  <tdevries@suse.de>
  
-       * doc/extend.texi: Remove limitation of Objective C for
-       __attribute__((constructor)) and __attribute__((destructor)).
+       PR debug/86257
+       * config/i386/i386.md (define_insn "*tls_global_dynamic_64_<mode>"):
+       Use data16 instead of .byte for insn prefix.
  
- 2016-09-29  Richard Biener  <rguenther@suse.de>
+ 2018-06-25  Andreas Krebbel  <krebbel@linux.ibm.com>
  
-       PR tree-optimization/77768
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
-       Handle stores to readonly memory when removing redundant stores.
+       PR C++/86082
+       * parser.c (make_char_string_pack): Pass this literal chars
+       through cpp_interpret_string.
+       (cp_parser_userdef_numeric_literal): Check the result of
+       make_char_string_pack.
  
- 2016-09-29  Richard Biener  <rguenther@suse.de>
+ 2018-06-24  Maya Rashish  <coypu@sdf.org>
  
-       PR middle-end/77407
-       * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
-       X / -X -> -1 simplifications.
+       * ginclude/stddef.h: Simplify conditions around avoiding
+       re-definition of __size_t.
  
- 2016-09-29  Richard Biener  <rguenther@suse.de>
+ 2018-06-22  Jan Hubicka  <hubicka@ucw.cz>
  
-       PR middle-end/55152
-       * match.pd: Add max(a,-a) -> abs(a) pattern.
-       * tree-ssa-phiopt.c (minmax_replacement): Disable for
-       HONOR_SIGNED_ZEROS types.
+       * lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable
+       unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL.
  
- 2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>
+ 2018-06-22  Maya Rashish  <coypu@sdf.org>
  
-       * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
-       * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
+       * doc/invoke.texi (mno-fancy-math-387): Update for changes
+       made to OpenBSD and NetBSD through the years.
  
- 2016-09-29  Richard Biener  <rguenther@suse.de>
+ 2018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
-       * tree-vrp.c (set_defs_to_varying): New helper avoiding
-       writing to vr_const_varying.
-       (vrp_initialize): Call it.
-       (vrp_visit_stmt): Likewise.
-       (evrp_dom_walker::before_dom_children): Likewise.
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
+       behavior of vec_pack (vector double, vector double) to match
+       behavior of vec_float2 (vector double, vector double).
  
- 2016-09-29  Richard Biener  <rguenther@suse.de>
+ 2018-06-22  Olivier Hainque  <hainque@adacore.com>
  
-       * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
-       constructors with vector elements.
+       * gimplify.c (gimplify_function_tree): Prevent creation
+       of a trampoline for the address of the current function
+       passed to entry/exit instrumentation hooks.
  
- 2016-09-29  Richard Biener  <rguenther@suse.de>
+ 2018-06-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
  
-       PR tree-optimization/77768
-       * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
-       with stores to a place we know has a constant value.
+       PR target/86222
+       * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32
+       correctly.
  
- 2016-09-29  Alan Modra  <amodra@gmail.com>
+ 2018-06-22  Martin Liska  <mliska@suse.cz>
  
-       * config/rs6000/sysv4.opt (mgnu-attribute): New option.
-       * doc/invoke.texi: Document it.
-       * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
-       (rs6000_passes_float): Comment.
-       (rs6000_passes_long_double): New static var.
-       (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
-       (init_cumulative_args): Set up to emit fp .gnu_attribute for
-       ELF 64-bit ABIs as well as 32-bit ELF.  Correct rs6000_passes_float
-       to include fp values returned in vectors.
-       Set rs6000_passes_long_double.
-       (rs6000_function_arg_advance_1): Likewise for function args.
-       (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
-       and SPE.  Emit long double tag value too.
-       (rs6000_opt_vars): Add gnu-attr.
-       * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
-       * configure: Regenerate.
-       * config.in: Regenerate.
+         PR tree-optimization/86263
+       * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
+         Bail out if is_enabled is false.
+       * tree-switch-conversion.h (jump_table_cluster::is_enabled):
+         New declaration.
+       (jump_table_cluster::is_enabled): New function.
  
- 2016-09-28  Jakub Jelinek  <jakub@redhat.com>
+ 2018-06-22  Jan Hubicka  <hubicka@ucw.cz>
  
-       * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
-       of 0 < x.
-       (format_floating, format_string, format_directive,
-       get_destination_size, pass_sprintf_length::handle_gimple_call):
-       Likewise.
+       * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
+       BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD.
+       * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
+       (lto_input_ts_binfo_tree_pointers): Likewise.
+       * tree-streamer-out.c (streamer_write_tree_bitfields,
+       write_ts_binfo_tree_pointers): Likewise.
+       * tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD.
  
- 2016-09-28  Jakub Jelinek  <jakub@redhat.com>
+ 2018-06-22  Jan Hubicka  <hubicka@ucw.cz>
  
-       * gimple-ssa-sprintf.c: Fix comment formatting.
-       (format_integer): Use is_gimple_assign.
-       (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
-       and gimple_call_fndecl.  Reorder case BUILT_IN_SPRINTF_CHK.  Fix up
-       BUILT_IN_SNPRINTF_CHK comment.  Replace "to to" with "to" in comment.
-       (pass_sprintf_length::execute): Use is_gimple_call.
- 2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>
-       * gimple-fold.c (gimple_fold_builtin): After failing to fold
-       strchr, also try the generic folding.
+       * tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs.
  
- 2016-09-28  Martin Sebor  <msebor@redhat.com>
-       PR c/77762
-       * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
-       Fix typos.
- 2016-09-28  Martin Sebor  <msebor@redhat.com>
+ 2018-06-22  Martin Liska  <mliska@suse.cz>
  
-       PR middle-end/77683
-       * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
-       length modifier is not expected.
-       (format_floating): Ignore l length modifier and fail gracefuly
-       when it isn't one of the other expected ones.
+       * symbol-summary.h (get): Make it pure and inline move
+         functionality from ::get function.
+         (get): Remove and inline into ::get and ::get_create.
+         (get_create): Move code from ::get function.
  
- 2016-09-28  Martin Sebor  <msebor@redhat.com>
+ 2018-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
-       PR bootstrap/77753
-       * varasm.c (assemble_addr_to_section): Increase local buffer size.
+       PR target/85994
+       * config/i386/sol2.h (CPP_SPEC): Don't pass -P for
+       -x assembler-with-cpp.
  
- 2016-09-27  Richard Biener  <rguenther@suse.de>
+ 2018-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
-       * dwarf2out.c (cu_die_list): New global.
-       (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs.  Add
-       main_comp_unit_die to cu_die_list if we created it.
-       Move break_out_includes ...
-       (dwarf2out_early_finish): ... here.  Push created CU DIEs onto
-       the cu_die_list.
- 2016-09-28  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (struct die_struct): Add removed flag.
-       (lookup_type_die): If the DIE is marked as removed, clear
-       TYPE_SYMTAB_DIE and return NULL.
-       (lookup_decl_die): If the DIE is marked as removed, remove it
-       from the hash and return NULL.
-       (mark_removed): New helper.
-       (prune_unused_types_prune): Call it for removed DIEs.
-       (gen_subprogram_die): Move the premark_used_types call to after
-       DIEs for the functions scopes are generated.
-       (process_scope_var): Do not re-create pruned types or type decls.
-       Make sure to also re-parent type decls.
-       (dwarf2out_finish): Move unused type pruning and debug_types
-       handling ...
-       (dwarf2out_early_finish): ... here.
+       * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
+       _FILE_OFFSET_BITS=64 for C++.
  
- 2016-09-29  Claudiu Zissulescu  <claziss@synopsys.com>
+ 2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
  
-       * config/arc/arc-c.c: New file.
-       * config/arc/arc-c.def: Likewise.
-       * config/arc/t-arc: Likewise.
-       * config.gcc: Include arc-c.o as c and cpp object.
-       * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
-       * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
-       arc_cpu_cpp_builtins.
+       * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
+       conversion insn that shows up when pr85657-3.c is compiled using
+       IEEE 128-bit long double.
+       (neg<mode>2_internal): Use the correct mode to check whether the
+       mode is IBM extended.
+       * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex
+       multiply and divide external functions from being created more
+       than once.
  
- 2016-09-29  Claudiu Zissulescu  <claziss@synopsys.com>
+ 2018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
-       (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
+       * cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P
+       functions.
+       (rtl_merge_blocks): Likewise.  Do not emit a NOP if the location of
+       the edge can be forwarded.
+       (cfg_layout_merge_blocks): Likewise.
  
- 2016-09-28  Nathan Sidwell  <nathan@acm.org>
+ 2018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
-       printing.
+       * except.c (finish_eh_generation): Commit edge insertions only after
+       the EH edges have been redirected from post-landing to landing pads.
  
- 2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>
+ 2018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR tree-optimization/61056
-       * gimple-fold.c (gimple_fold_builtin_strchr):
-       New function to optimize strchr (s, 0) to strlen.
-       (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
+       * tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of
+       create_tmp_var_for to create the FRAME decl.
+       (finalize_nesting_tree_1): Do not unchain the FRAME decl.
  
- 2016-09-27  Robin Dapp  <rdapp@linux.vnet.ibm.com>
+ 2018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR tree-optimization/77724
-       * tree-vect-loop-manip.c (create_intersect_range_checks_index):
-       Add tree_fits_shwi_p check.
+       * tree-inline.c (copy_edges_for_bb): Minor tweak.
+       (maybe_move_debug_stmts_to_successors): Also reset the locus of the
+       debug statement when resetting its value.
+       (expand_call_inline): Copy the locus of the call onto the assignment
+       of the return value, if any.  Use local variable in more cases.
  
- 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
+ 2018-06-21  Martin Liska  <mliska@suse.cz>
  
-       * auto-inc-dec.c (try_merge): Remove break after return.
-       * cselib.c (autoinc_split): Likewise.
-       * explow.c (promote_mode): Likewise.
-       * fixed-value.c (fixed_arithmetic): Likewise.
-       * hsa.c (hsa_internal_fn::get_arity): Likewise.
-       * rtlanal.c (modified_between_p, modified_in_p): Likewise.
-       * trans-mem.c (get_attrs_for): Likewise.
-       * tree-if-conv.c (if_convertible_stmt_p): Likewise.
-       * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
-       * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
-       * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
-       * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
-       * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
-       * config/cris/cris.c (cris_op_str): Likewise.
-       * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
-       * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
+       * ipa-pure-const.c (propagate_nothrow): Use
+         funct_state_summaries->get.
+       (dump_malloc_lattice): Likewise.
+       (propagate_malloc): Likewise.
  
- 2016-09-27  Nathan Sidwell  <nathan@codesourcery.com>
+ 2018-06-21  Richard Biener  <rguenther@suse.de>
  
-       * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
-       IFN_GOACC_REDUCTION_CODES): New.
-       (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
-       ifn_goacc_reduction_kind): Use them.
-       * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
-       of internal functions, when applicable.
- 2016-09-27  Maciej W. Rozycki  <macro@imgtec.com>
-       * config/mips/constraints.md (d): Fix documentation.
-       * doc/md.texi (Machine Constraints): Update accordingly.
- 2016-09-27  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
-       cur_line_info_table initialization ...
-       (dwarf2out_assembly_start): ... here.
- 2016-09-27  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
-       * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
-       (*thumb2_movhi_vfp): Likewise.
-       (*arm_movhi_fp16): Remove predication operand from VMOV.F16
-       template.  Expand predicable attribute to mark VMOV.F16 as not
-       predicable.  Add "arch" attribute.
-       (*thumb2_movhi_fp16): Likewise.
-       (*arm_movsi_vfp): Break a long line.  Add "arch" attribute.
-       (*thumb2_movsi_vfp): Add "arch" attribute.
- 2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
-       VAR_DECL string.
- 2016-09-27  Marek Polacek  <polacek@redhat.com>
-       * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
+       * lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated
+       comment.  Follow BLOCK_ABSTRACT_ORIGIN unconditionally.
+       * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update
        comment.
+       * tree-streamer-out.c (write_ts_block_tree_pointers): Stream
+       BLOCK_ABSTRACT_ORIGIN unconditionally.
  
-       * config/c6x/c6x.h: Adjust fall through comment.
-       * config/sh/sh.c (final_prescan_insn): Likewise.
-       * config/visium/visium.c (visium_expand_int_cstore): Likewise.
-       (visium_expand_fp_cstore): Likewise.
+ 2018-06-21  David Malcolm  <dmalcolm@redhat.com>
  
- 2016-09-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after
+       deleting it.
+       * ipa-reference.c (ipa_reference_c_finalize): Delete
+       ipa_ref_opt_sum_summaries and set it to NULL.
  
-       * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
-       expected by -Wimplicit-fallthrough.
-       (thumb1_size_rtx_costs): Likewise.
-       (thumb2_reorg): Likewise.
-       (tls_mentioned_p): Add "Fall through" comment.
-       (thumb2_reorg): Likewise.
-       * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
-       comment form expected by -Wimplicit-fallthrough.
+ 2018-06-21  Tom de Vries  <tdevries@suse.de>
  
- 2016-09-27  Martin Liska  <mliska@suse.cz>
+       PR tree-optimization/85859
+       * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
+       test with comment from bb_no_side_effects_p.
  
-       PR gcov-profile/46266
-       * input.h (RESERVED_LOCATION_P): New macro.
-       * profile.c (branch_prob): Use RESERVED_LOCATION_P and
-       instread of comparison with UNKNOWN_LOCATION.
- 2016-09-27  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77745
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
-       When removing redundant stores make sure to check compatibility
-       of the TBAA state for downstream accesses.
-       * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
-       value-numbering virtual operands for store matches.
- 2016-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
+ 2018-06-21  Richard Biener  <rguenther@suse.de>
  
-       PR target/51244
-       * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
-       movrt patterns.  Match them before anything else in the SET case.
+       PR tree-optimization/86232
+       * tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust
+       max for constant niter.
  
- 2016-09-27  Martin Liska  <mliska@suse.cz>
+ 2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
-       PR gcov-profile/7970
-       PR gcov-profile/16855
-       PR gcov-profile/44779
-       * coverage.c (build_gcov_exit_decl): New function.
-       (coverage_obj_init): Call the function and generate __gcov_exit
-       destructor.
-       * doc/gcov.texi: Document when __gcov_exit function is called.
+       * config/aarch64/aarch64-simd.md
+       (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): New.
+ 2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+       * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
+       Make opernads of the unspec commutative.
+ 2018-06-21  Richard Biener  <rguenther@suse.de>
+       * tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP.
+       * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
+       Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters.
+       (vect_analyze_data_ref_dependence): Re-order checks to deal with
+       NULL DR_STEP.
+       (vect_record_base_alignments): Do not record base alignment
+       for gathers or scatters.
+       (vect_compute_data_ref_alignment): Drop return value that is always
+       true.  Bail out early for gathers or scatters.
+       (vect_enhance_data_refs_alignment): Bail out early for gathers
+       or scatters.
+       (vect_find_same_alignment_drs): Likewise.
+       (vect_analyze_data_refs_alignment): Remove dead code.
+       (vect_slp_analyze_and_verify_node_alignment): Likewise.
+       (vect_analyze_data_refs): For possible gathers or scatters do
+       not create an alternate DR, just check their possible validity
+       and mark them.  Adjust DECL_NONALIASED handling to not rely
+       on DR_BASE_ADDRESS.
+       * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not
+       update inits of gathers or scatters.
+       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
+       Also copy gather/scatter flag to pattern vinfo.
+ 2018-06-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
+       behavior of vec_packsu (vector unsigned long long, vector unsigned
+       long long) to match behavior of vec_packs with same signature.
+ 2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
+           Thomas Schwinge <thomas@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
+       * gimplify.c (gimplify_scan_omp_clauses): Add support for
+       OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
+       (gimplify_adjust_omp_clauses): Likewise.
+       (gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove
+       support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}.
+       (gimplify_omp_target_update): Update handling of acc update and
+       enter/exit data.
+       * omp-low.c (install_var_field): Remove unused parameter
+       base_pointers_restrict.
+       (scan_sharing_clauses): Remove base_pointers_restrict parameter.
+       Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT,
+       FINALIZE}
+       (omp_target_base_pointers_restrict_p): Delete.
+       (scan_omp_target): Update call to scan_sharing_clauses.
+       * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT,
+       FINALIZE}.
+       * tree-nested.c (convert_nonlocal_omp_clauses): Handle
+       OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
+       (convert_local_omp_clauses): Likewise.
+       * tree-pretty-print.c (dump_omp_clause): Likewise.
+       * tree.c (omp_clause_num_ops): Add entries for  OMP_CLAUSE_{IF_PRESENT,
+       FINALIZE}.
+       (omp_clause_code_name): Likewise.
+ 2018-06-20  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/86194
+       * var-tracking.c (use_narrower_mode_test): Check if shift amount can
+       be narrowed.
+       PR tree-optimization/86231
+       * tree-vrp.c (union_ranges): For (  [  )  ] or (   )[   ] range and
+       anti-range don't overwrite *vr0min before using it to compute *vr0max.
+ 2018-06-20  Tom de Vries  <tdevries@suse.de>
+       PR tree-optimization/86097
+       * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Also convert *nit to
+       iv type if signedness of iv type is not the same as that of *nit.
+ 2018-06-20  Jakub Jelinek  <jakub@redhat.com>
+       * cfgrtl.c (rtl_verify_edges): Formatting fix.  If bb->preds has any
+       EDGE_EH edges, verify they are all EDGE_EH.
+ 2018-06-20  Maya Rashish  <coypu@sdf.org>
+       * ginclude/stddef.h: Limit #include <machine/ansi.h> to NetBSD.
+ 2018-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/aarch64/aarch64-tuning-flags.def (no_ldp_stp_qregs): New.
+       * config/aarch64/aarch64.c (xgene1_tunings): Add
+       AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS to tune_flags.
+       (aarch64_mode_valid_for_sched_fusion_p):
+       Allow 16-byte modes.
+       (aarch64_classify_address): Allow 16-byte modes for load_store_pair_p.
+       * config/aarch64/aarch64-ldpstp.md: Add peepholes for LDP STP of
+       128-bit modes.
+       * config/aarch64/aarch64-simd.md (load_pair<VQ:mode><VQ2:mode>):
+       New pattern.
+       (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
+       * config/aarch64/iterators.md (VQ2): New mode iterator.
+ 2018-06-20  Martin Liska  <mliska@suse.cz>
+       * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
+         Change default ratio from 10 to 8.
+ 2018-06-20  Martin Liska  <mliska@suse.cz>
+       * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
+         New.
+       (bit_test_cluster::find_bit_tests): Likewise.
+       (switch_decision_tree::analyze_switch_statement): Find clusters.
+       * tree-switch-conversion.h (struct jump_table_cluster): Document
+         hierarchy.
+ 2018-06-20  Martin Liska  <mliska@suse.cz>
+       * tree-switch-conversion.c (switch_conversion::collect):
+         Record m_uniq property.
+       (switch_conversion::expand): Bail out for special conditions.
+       (group_cluster::~group_cluster): New.
+       (group_cluster::group_cluster): Likewise.
+       (group_cluster::dump): Likewise.
+       (jump_table_cluster::emit): New.
+       (switch_decision_tree::fix_phi_operands_for_edges): New.
+       (struct case_node): Remove struct.
+       (jump_table_cluster::can_be_handled): New.
+       (case_values_threshold): Moved to header.
+       (reset_out_edges_aux): Likewise.
+       (jump_table_cluster::is_beneficial): New.
+       (bit_test_cluster::can_be_handled): Likewise.
+       (add_case_node): Remove.
+       (bit_test_cluster::is_beneficial): New.
+       (case_bit_test::cmp): New.
+       (bit_test_cluster::emit): New.
+       (expand_switch_as_decision_tree_p): Remove.
+       (bit_test_cluster::hoist_edge_and_branch_if_true): New.
+       (fix_phi_operands_for_edge): Likewise.
+       (switch_decision_tree::analyze_switch_statement): New.
+       (compute_cases_per_edge): Move ...
+       (switch_decision_tree::compute_cases_per_edge): ... here.
+       (try_switch_expansion): Likewise.
+       (switch_decision_tree::try_switch_expansion): Likewise.
+       (record_phi_operand_mapping): Likewise.
+       (switch_decision_tree::record_phi_operand_mapping): Likewise.
+       (emit_case_decision_tree): Likewise.
+       (switch_decision_tree::emit): Likewise.
+       (balance_case_nodes): Likewise.
+       (switch_decision_tree::balance_case_nodes): Likewise.
+       (dump_case_nodes): Likewise.
+       (switch_decision_tree::dump_case_nodes): Likewise.
+       (emit_jump): Likewise.
+       (switch_decision_tree::emit_jump): Likewise.
+       (emit_cmp_and_jump_insns): Likewise.
+       (switch_decision_tree::emit_cmp_and_jump_insns): Likewise.
+       (emit_case_nodes): Likewise.
+       (switch_decision_tree::emit_case_nodes): Likewise.
+       (conditional_probability): Remove.
+       * tree-switch-conversion.h (enum cluster_type): New.
+       (PRINT_CASE): New.
+       (struct cluster): Likewise.
+       (cluster::cluster): Likewise.
+       (struct simple_cluster): Likewise.
+       (simple_cluster::simple_cluster): Likewise.
+       (struct group_cluster): Likewise.
+       (struct jump_table_cluster): Likewise.
+       (struct bit_test_cluster): Likewise.
+       (struct min_cluster_item): Likewise.
+       (struct case_tree_node): Likewise.
+       (case_tree_node::case_tree_node): Likewise.
+       (jump_table_cluster::case_values_threshold): Likewise.
+       (struct case_bit_test): Likewise.
+       (struct switch_decision_tree): Likewise.
+       (struct switch_conversion): Likewise.
+       (switch_decision_tree::reset_out_edges_aux): Likewise.
+ 2018-06-20  Martin Liska  <mliska@suse.cz>
+       * tree-switch-conversion.c (MAX_CASE_BIT_TESTS): Remove.
+       (hoist_edge_and_branch_if_true): Likewise.
+       (expand_switch_using_bit_tests_p): Likewise.
+       (struct case_bit_test): Likewise.
+       (case_bit_test_cmp): Likewise.
+       (emit_case_bit_tests): Likewise.
+       (switch_conversion::switch_conversion): New class.
+       (struct switch_conv_info): Remove old struct.
+       (collect_switch_conv_info): More to ...
+       (switch_conversion::collect): ... this.
+       (check_range): Likewise.
+       (switch_conversion::check_range): Likewise.
+       (check_all_empty_except_final): Likewise.
+       (switch_conversion::check_all_empty_except_final): Likewise.
+       (check_final_bb): Likewise.
+       (switch_conversion::check_final_bb): Likewise.
+       (create_temp_arrays): Likewise.
+       (switch_conversion::create_temp_arrays): Likewise.
+       (free_temp_arrays): Likewise.
+       (gather_default_values): Likewise.
+       (switch_conversion::gather_default_values): Likewise.
+       (build_constructors): Likewise.
+       (switch_conversion::build_constructors): Likewise.
+       (constructor_contains_same_values_p): Likewise.
+       (switch_conversion::contains_same_values_p): Likewise.
+       (array_value_type): Likewise.
+       (switch_conversion::array_value_type): Likewise.
+       (build_one_array): Likewise.
+       (switch_conversion::build_one_array): Likewise.
+       (build_arrays): Likewise.
+       (switch_conversion::build_arrays): Likewise.
+       (gen_def_assigns): Likewise.
+       (switch_conversion::gen_def_assigns): Likewise.
+       (prune_bbs): Likewise.
+       (switch_conversion::prune_bbs): Likewise.
+       (fix_phi_nodes): Likewise.
+       (switch_conversion::fix_phi_nodes): Likewise.
+       (gen_inbound_check): Likewise.
+       (switch_conversion::gen_inbound_check): Likewise.
+       (process_switch): Use the newly created class.
+       (switch_conversion::expand): New.
+       (switch_conversion::~switch_conversion): New.
+       * tree-switch-conversion.h: New file.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vectorizer.h (NUM_PATTERNS, vect_recog_func_ptr): Move to
+       tree-vect-patterns.c.
+       * tree-vect-patterns.c (vect_supportable_direct_optab_p): New function.
+       (vect_recog_dot_prod_pattern): Use it.  Remove the type_in argument.
+       (vect_recog_sad_pattern): Likewise.
+       (vect_recog_widen_sum_pattern): Likewise.
+       (vect_recog_pow_pattern): Likewise.  Check for a null vectype.
+       (vect_recog_widen_shift_pattern): Remove the type_in argument.
+       (vect_recog_rotate_pattern): Likewise.
+       (vect_recog_mult_pattern): Likewise.
+       (vect_recog_vector_vector_shift_pattern): Likewise.
+       (vect_recog_divmod_pattern): Likewise.
+       (vect_recog_mixed_size_cond_pattern): Likewise.
+       (vect_recog_bool_pattern): Likewise.
+       (vect_recog_mask_conversion_pattern): Likewise.
+       (vect_try_gather_scatter_pattern): Likewise.
+       (vect_recog_widen_mult_pattern): Likewise.  Check for a null vectype.
+       (vect_recog_over_widening_pattern): Likewise.
+       (vect_recog_gather_scatter_pattern): Likewise.
+       (vect_recog_func_ptr): Move from tree-vectorizer.h
+       (vect_vect_recog_func_ptrs): Move further down the file.
+       (vect_recog_func): Likewise.  Remove the third argument.
+       (NUM_PATTERNS): Define based on vect_vect_recog_func_ptrs.
+       (vect_pattern_recog_1): Expect the pattern function to do any
+       necessary target tests.  Also expect it to provide a vector type.
+       Remove the type_in handling.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_pattern_detected): New function.
+       (vect_recog_dot_prod_patternm, vect_recog_sad_pattern)
+       (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern)
+       (vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern
+       (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
+       (vect_recog_mult_pattern, vect_recog_divmod_pattern)
+       (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern)
+       (vect_recog_mask_conversion_pattern)
+       (vect_try_gather_scatter_pattern): Likewise.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_get_internal_def): New function.
+       (vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
+       (vect_recog_vector_vector_shift_pattern, check_bool_pattern)
+       (search_type_for_mask_1): Use it.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove
+       redundant WIDEN_SUM_EXPR handling.
+       (vect_recog_sad_pattern): Likewise.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove
+       redundant check that the types of a PLUS_EXPR or MULT_EXPR agree.
+       (vect_recog_sad_pattern): Likewise PLUS_EXPR, ABS_EXPR and MINUS_EXPR.
+       (vect_recog_widen_mult_pattern): Likewise MULT_EXPR.
+       (vect_recog_widen_sum_pattern): Likewise PLUS_EXPR.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-stmts.c (vectorizable_call): Make sure that we
+       use the stmt_vec_info of the original bb statement for the
+       new zero assignment, even if the call is part of a pattern.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq
+       that the sequence is attached to the original statement rather
+       than the pattern statement.
+       * tree-vect-loop.c (vect_determine_vf_for_stmt): Take the
+       PATTERN_DEF_SEQ from the original statement rather than
+       the main pattern statement.
+       * tree-vect-stmts.c (free_stmt_vec_info): Likewise.
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
+       (vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ.
+ 2018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+       * tree-vect-stmts.c (vect_analyze_stmt): Move the handling of pattern
+       definition statements before the early exit for statements that aren't
+       live or relevant.
+       * tree-vect-loop.c (vect_transform_loop_stmt): New function,
+       split out from...
+       (vect_transform_loop): ...here.  Process pattern definition
+       statements without first checking whether the main pattern
+       statement is live or relevant.
+ 2018-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+       * tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at
+       -O0 if the locus represent UNKNOWN_LOCATION but have different values.
+ 2018-06-19  Aaron Sawdey  <acsawdey@linux.ibm.com>
+       * config/rs6000/rs6000-string.c (select_block_compare_mode): Check
+       TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller.
+       (do_and3, do_and3_mask, do_compb3, do_rotl3): New functions.
+       (expand_block_compare): Change select_block_compare_mode call.
+       (expand_strncmp_align_check): Use new functions, fix comment.
+       (emit_final_str_compare_gpr): New function.
+       (expand_strn_compare): Refactor and clean up code.
+       * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Remove *.
+ 2018-06-19  Tony Reix  <tony.reix@atos.com>
+           Damien Bergamini  <damien.bergamini@atos.com>
+           David Edelsohn  <dje.gcc@gmail.com>
+       * collect2.c (static_obj): New variable.
+       (static_libs): New variable.
+       (is_in_list): Uncomment declaration.
+       (main): Track AIX libraries linked statically.
+       (is_in_list): Uncomment definition.
+       (scan_prog_file): Don't add AIX shared libraries initializer
+       to constructor list if linking statically.
+ 2018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
+       * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
+       constant.
+       (allocate_stack, frame_blockage, *frame_blockage): New patterns.
+ 2018-06-19  Jan Hubicka  <hubicka@ucw.cz>
+       * tree.c (find_decls_types_r): Remove all non-VAR_DECLs from
+       blocks.
+ 2018-06-19  Martin Liska  <mliska@suse.cz>
+       * config/i386/i386.c (ix86_can_inline_p): Do not use
+         ipa_fn_summaries::get_create.
+       * ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with
+         get.
+       (devirtualization_time_bonus): Likewise.
+       (ipcp_propagate_stage): Likewise.
+       * ipa-fnsummary.c (redirect_to_unreachable): Likewise.
+       (edge_set_predicate): Likewise.
+       (evaluate_conditions_for_known_args): Likewise.
+       (evaluate_properties_for_edge): Likewise.
+       (ipa_call_summary::reset): Tranform to ...
+       (ipa_call_summary::~ipa_call_summary): ... this.
+       (ipa_fn_summary::reset): Transform to ...
+       (ipa_fn_summary::~ipa_fn_summary): ... this.
+       (ipa_fn_summary_t::remove): Rename to ...
+       (ipa_fn_summary_t::remove_callees): ... this.
+       (ipa_fn_summary_t::duplicate): Use placement new
+         instead of memory copy.
+       (ipa_call_summary_t::duplicate): Likewise.
+       (ipa_call_summary_t::remove): Remove.
+       (dump_ipa_call_summary): Change get_create to get.
+       (ipa_dump_fn_summary): Dump only when summary exists.
+       (analyze_function_body): Use symbol_summary::get instead
+         of get_create.
+       (compute_fn_summary): Likewise.
+       (estimate_edge_devirt_benefit): Likewise.
+       (estimate_edge_size_and_time): Likewise.
+       (inline_update_callee_summaries): Likewise.
+       (remap_edge_change_prob): Likewise.
+       (remap_edge_summaries): Likewise.
+       (ipa_merge_fn_summary_after_inlining): Likewise.
+       (write_ipa_call_summary): Likewise.
+       (ipa_fn_summary_write): Likewise.
+       (ipa_free_fn_summary): Likewise.
+       * ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor.
+       (struct ipa_call_summary): Likewise.
+       * ipa-icf.c (sem_function::merge): Use symbol_summary::get instead
+         of get_create.
+       * ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
+       (estimate_size_after_inlining): Likewise.
+       (estimate_growth): Likewise.
+       (growth_likely_positive): Likewise.
+       * ipa-inline-transform.c (clone_inlined_nodes): Likewise.
+       (inline_call): Likewise.
+       * ipa-inline.c (caller_growth_limits): Likewise.
+       (can_inline_edge_p): Likewise.
+       (can_inline_edge_by_limits_p): Likewise.
+       (compute_uninlined_call_time): Likewise.
+       (compute_inlined_call_time): Likewise.
+       (want_inline_small_function_p): Likewise.
+       (edge_badness): Likewise.
+       (update_caller_keys): Likewise.
+       (update_callee_keys): Likewise.
+       (inline_small_functions): Likewise.
+       (inline_to_all_callers_1): Likewise.
+       (dump_overall_stats): Likewise.
+       (early_inline_small_functions): Likewise.
+       (early_inliner): Likewise.
+       * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
+       * ipa-pure-const.c (malloc_candidate_p): Likewise.
+       * ipa-split.c (execute_split_functions): Likewise.
+       * symbol-summary.h: Likewise.
+       * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
+ 2018-06-19  Richard Biener  <rguenther@suse.de>
+       * tree-vectorizer.c (try_vectorize_loop_1): Split out of ...
+       (vectorize_loops): ... here.  Fix dbgcnt handling.
+       (try_vectorize_loop): Wrap try_vectorize_loop_1.
+ 2018-06-19  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR target/86197
+       * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An
+       ieee128 argument takes up only one (vector) register, not two (floating
+       point) registers.
+ 2018-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+       * gimplify.c (gimplify_init_constructor): Really never clear for an
+       incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
+ 2018-06-19  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/86179
+       * tree-vect-patterns.c (vect_pattern_recog_1): Clean up
+       after failed recognition.
+ 2018-06-18  Martin Sebor  <msebor@redhat.com>
+       PR middle-end/85602
+       * calls.c (maybe_warn_nonstring_arg): Handle strncat.
+       * tree-ssa-strlen.c (is_strlen_related_p): Make extern.
+       Handle integer subtraction.
+       (maybe_diag_stxncpy_trunc): Handle nonstring source arguments.
+       * tree-ssa-strlen.h (is_strlen_related_p): Declare.
+ 2018-06-18  David Malcolm  <dmalcolm@redhat.com>
+       * config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd
+       param from rtx to rtx_insn *.
+       * config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn"
+       param.
+       (frv_ifcvt_modify_insn): Likwise.
+       (frv_ifcvt_modify_final): Likwise for local "existing_insn",
+       adding an as_a <rtx_insn *> cast.  Likewise for local "insn".
+       * config/mips/mips.c (r10k_insert_cache_barriers): Add an
+       as_a <rtx_insn *> cast to local "unprotected_region" once
+       it's been established that it's not NULL or pc_rtx.
+       * config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen
+       param "sethi" from rtx to rtx_insn *.
+       (nds32_group_float_insns): Likewise for param "insn".
+       * config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st
+       param.
+       (vax_output_int_subtract): Likewise.
+       * config/vax/vax.c (vax_output_int_add): Likewise for param
+       "insn".
+       (vax_output_int_subtract): Likewise.
+       * emit-rtl.c (set_insn_deleted): Likewise, removing cast.
+       (emit_pattern_after): Likewise for param "after".
+       (emit_insn_after): Likewise.
+       (emit_jump_insn_after): Likewise.
+       (emit_call_insn_after): Likewise.
+       (emit_debug_insn_after): Likewise.
+       (emit_pattern_before): Likewise for param "before".
+       (emit_insn_before): Likewise.
+       (emit_jump_insn_before): Likewise.
+       * final.c (get_insn_template): Likewise for param "insn", removing
+       a cast.
+       * output.h (get_insn_template): Likewise for 2nd param.
+       * rtl.h (emit_insn_before): Likewise.
+       (emit_jump_insn_before): Likewise.
+       (emit_debug_insn_before_noloc): Likewise.
+       (emit_insn_after): Likewise.
+       (emit_jump_insn_after): Likewise.
+       (emit_call_insn_after): Likewise.
+       (emit_debug_insn_after): Likewise.
+       (set_insn_deleted): Likewise for param.
+ 2018-06-18  Michael Meissner  <meissner@linux.ibm.com>
+       PR target/85358
+       * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit
+       floating point modes, so that IFmode is numerically greater than
+       TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE
+       to declare the ordering.  This prevents IFmode from being
+       converted to TFmode when long double is IEEE 128-bit on an ISA 3.0
+       machine.  Include rs6000-modes.h to share the fractional values
+       between genmodes* and the rest of the compiler.
+       (IFmode): Likewise.
+       (KFmode): Likewise.
+       (TFmode): Likewise.
+       * config/rs6000/rs6000-modes.h: New file.
+       * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the
+       meaning of rs6000_long_double_size so that 126..128 selects an
+       appropriate 128-bit floating point type.
+       (rs6000_option_override_internal): Likewise.
+       * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h.
+       (TARGET_LONG_DOUBLE_128): Change the meaning of
+       rs6000_long_double_size so that 126..128 selects an appropriate
+       128-bit floating point type.
+       (LONG_DOUBLE_TYPE_SIZE): Update comment.
+       * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the
+       source and destination to match the standard usage.
+       (truncifkf2): Likewise.
+       (copysign<mode>3, IEEE iterator): Rework copysign of float128 on
+       ISA 2.07 to use an explicit clobber, instead of passing in a
+       temporary.
+       (copysign<mode>3_soft): Likewise.
  
- 2016-09-27  Marek Polacek  <polacek@redhat.com>
+ 2018-06-18  David Malcolm  <dmalcolm@redhat.com>
  
-       PR bootstrap/77751
-       * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
-       insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
-       -Wno-error instead of -Wno-implicit-fallthrough.
- 2016-09-27  Martin Liska  <mliska@suse.cz>
-       PR bootstrap/77749
-       * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
- 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
-       * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
-       * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
-       comments.  Remove break after return.
-       (ix86_fp_compare_code_to_integer, has_dispatch,
-       ix86_simd_clone_usable): Remove break after return.
- 2016-09-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR rlt-optimization/77714
-       * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
-       REG_EQUAL note.
- 2016-09-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR ipa/77677
-       * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
-       extract_range_from_unary_expr to convert value_range.
-       * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
-       (extract_range_from_unary_expr): This.
-       * tree-vrp.h (extract_range_from_unary_expr): Declare.
- 2016-09-27  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
- 2016-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       * config/i386/i386.c (ix86_print_operand)
-       [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
-       * config/sparc/sparc.c (check_pic): Add fallthrough comment.
-       (epilogue_renumber): Likewise.
- 2016-09-26  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/77719
-       * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
-       to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
- 2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
-       is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
-       is_mm_seq_cst, is_mm_sync): Move to ...
-       * memmodel.h: This.  New file.
-       * builtins.c: Include memmodel.h.
-       * optabs.c: Likewise.
-       * tsan.c: Likewise.
-       * config/aarch64/aarch64.c: Likewise.
-       * config/alpha/alpha.c: Likewise.
-       * config/arm/arm.c: Likewise.
-       * config/i386/i386.c: Likewise.
-       * config/ia64/ia64.c: Likewise.
-       * config/mips/mips.c: Likewise.
-       * config/rs6000/rs6000.c: Likewise.
-       * config/sparc/sparc.c: Likewise.
-       * genconditions.c: Include memmodel.h in generated file.
-       * genemit.c: Likewise.
-       * genoutput.c: Likewise.
-       * genpeep.c: Likewise.
-       * genpreds.c: Likewise.
-       * genrecog.c: Likewise.
- 2016-09-26  David Malcolm  <dmalcolm@redhat.com>
-       * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
-       "c" instead when parsing characters.  Move operand parsing into...
-       (read_rtx_operand): ...this new function, renaming "i" to "idx",
-       and tightening the scope of various locals.
- 2016-09-26  Liu Hao  <lh_mouse@126.com>
-       * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
- 2016-09-26  Marek Polacek  <polacek@redhat.com>
-       * system.h: Use __has_attribute to check whether the fallthrough
-       attribute is supported.
- 2016-09-26  Marek Polacek  <polacek@redhat.com>
-       * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
-       gimple_call_internal_p.
-       * ipa-split.c (find_return_bb): Likewise.
-       (execute_split_functions): Likewise.
-       * omp-low.c (dump_oacc_loop_part): Likewise.
-       (oacc_loop_xform_head_tail): Likewise.
-       * predict.c (predict_loops): Likewise.
-       * sanopt.c (pass_sanopt::execute): Likewise.
-       * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
-       * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
-       * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
-       (expand_ifn_va_arg_1): Use gimple_call_internal_p.
-       (expand_ifn_va_arg): Likewise.
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
+       Replace dump_printf_loc call with DUMP_VECT_SCOPE.
+       (vect_slp_analyze_instance_dependence): Likewise.
+       (vect_enhance_data_refs_alignment): Likewise.
+       (vect_analyze_data_refs_alignment): Likewise.
+       (vect_slp_analyze_and_verify_instance_alignment
+       (vect_analyze_data_ref_accesses): Likewise.
+       (vect_prune_runtime_alias_test_list): Likewise.
+       (vect_analyze_data_refs): Likewise.
+       * tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise.
        * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
-       (optimize_mask_stores): Likewise.
-       * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
-       (vect_transform_stmt): Likewise.
-       * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
-       * tsan.c (instrument_memory_accesses): Likewise.
- 2016-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-           Alexander Monakov  <amonakov@ispras.ru>
-       * regrename.c (rename_chains): Check
-       HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
-       HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
-       * sel-sched.c (mark_unavailable_hard_regs): Likewise.
- 2016-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
-       (s390_sched_score): Likewise.
- 2016-09-26  Martin Liska  <mliska@suse.cz>
-       * doc/gcov.texi: Update program output of gcov tool.
- 2016-09-26  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/23332
-       * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
-       * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
-       * value-prof.c (dump_histogram_value): Do not handle
-       HIST_TYPE_CONST_DELTA.
-       (stream_in_histogram_value): Likewise.
-       (gimple_find_values_to_profile): Likewise.
-       * value-prof.h (enum hist_type): Likewise.
- 2016-09-26  Martin Liska  <mliska@suse.cz>
-       * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
-       from default sanitize recover values.
-       * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
-       -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
-       * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
-       consistent.
-       * opts.c (finish_options): Do a generic loop over options
-       that can be recovered.
-       (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
-       SANITIZE_RETURN.
-       (common_handle_option): Likewise.
-       * opts.h: Declare can_recover to sanitizer_opts_s.
- 2016-09-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>
-       * target.def(elf_flags_numeric): Change documentation to present tense.
-       * doc/tm.texi: Regenerate.
- 2016-09-26  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
-       insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
-       -Wno-switch-fallthrough.
-       * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
-       (expand_builtin): Likewise.
-       * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
-       * convert.c (convert_to_real_1): Likewise.
-       (convert_to_integer_1): Likewise.
-       * final.c (output_alternate_entry_point): Likewise.
-       * genattrtab.c (make_canonical): Likewise.
-       (write_test_expr): Likewise.
-       * genpreds.c (validate_exp): Likewise.
-       * gimple-ssa-strength-reduction.c
-       (find_candidates_dom_walker::before_dom_children): Likewise.
-       * godump.c (go_format_type): Likewise.
-       * reload1.c (elimination_effects): Likewise.
-       * resource.c (mark_referenced_resources): Likewise.
-       (mark_set_resources): Likewise.
-       * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
-       * varasm.c (output_addressed_constants): Likewise.
- 2016-09-26  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * common.opt (Wimplicit-fallthrough): New option.
-       * doc/extend.texi: Document statement attributes and the fallthrough
-       attribute.
-       * doc/invoke.texi: Document -Wimplicit-fallthrough.
-       * gimple.h (gimple_call_internal_p): New function.
-       * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
-       (struct label_entry): New struct.
-       (find_label_entry): New function.
-       (case_label_p): New function.
-       (collect_fallthrough_labels): New function.
-       (last_stmt_in_scope): New function.
-       (should_warn_for_implicit_fallthrough): New function.
-       (warn_implicit_fallthrough_r): New function.
-       (maybe_warn_implicit_fallthrough): New function.
-       (expand_FALLTHROUGH_r): New function.
-       (expand_FALLTHROUGH): New function.
-       (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
-       expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
-       (gimplify_label_expr): New function.
-       (gimplify_case_label_expr): Set location.
-       (gimplify_expr): Call gimplify_label_expr.
-       * internal-fn.c (expand_FALLTHROUGH): New function.
-       * internal-fn.def (FALLTHROUGH): New internal function.
-       * langhooks.c (lang_GNU_OBJC): New function.
-       * langhooks.h (lang_GNU_OBJC): Declare.
-       * system.h (gcc_fallthrough): Define.
-       * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
-       * tree.h (FALLTHROUGH_LABEL_P): Define.
- 2016-09-26  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (stripattributes): Remove unused function.
-       (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
-       Push dwarf_split_debug_info handling into init_sections_and_labels.
-       (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
-       (DEBUG_MACRO_SECTION_FLAGS): Remove.
-       (debug_macinfo_section_name): New global.
-       (output_macinfo): Use debug_macinfo_section_name.
-       (init_sections_and_labels): Split out section and label generation
-       from dwarf2out_init.  Set debug_macinfo_section_name.
-       (dwarf2out_init): Move text section label generation and emission
-       to ...
-       (dwarf2out_assembly_start): ... here.
-       (dwarf2out_finish): Call init_sections_and_labels before DWARF
-       output starts.
- 2016-09-26  Richard Biener  <rguenther@suse.de>
-       PR debug/77692
-       * cgraphunit.c (analyze_functions): Before early removing
-       global vars calls the late_global_decl debug handler mark
-       the variable as readonly.
- 2016-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/51244
-       * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
-       (sh_rtx_costs): Handle SET of movt and movrt patterns.
-       * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
-       declare new overloads.
-       * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
-       operand.
- 2016-09-24  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
-       Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
- 2016-09-24  David Edelsohn  <dje.gcc@gmail.com>
-       * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
-       * configure: Regenerate.
- 2016-09-24  Marek Polacek  <polacek@redhat.com>
-       PR c/77490
-       * doc/invoke.texi: Document -Wbool-operation.
- 2016-09-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
-       * config/rs6000/rs6000.c (expand_block_compare): New function used by
-       cmpmemsi pattern to do builtin expansion of memcmp ().
-       (compute_current_alignment): Add helper function for
-       expand_block_compare used to compute alignment as the compare proceeds.
-       (select_block_compare_mode): Used by expand_block_compare to select
-       the mode used for reading the next chunk of bytes in the compare.
-       (do_load_for_compare): Used by expand_block_compare to emit the load
-       insns for the compare.
-       (rs6000_emit_dot_insn): Moved this function to avoid a forward
-       reference from expand_block_compare ().
-       * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
-       prototype for this function.
-       * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
-       target option for controlling how much code inline expansion of
-       memcmp() will be allowed to generate.
- 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
-       * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
-       hook_bool_mode_false, hook_bool_mode_true,
-       hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
-       hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
-       hook_bool_const_rtx_insn_const_rtx_insn_true,
-       hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
-       hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
-       hook_bool_const_tree_hwi_hwi_const_tree_false,
-       hook_bool_const_tree_hwi_hwi_const_tree_true,
-       default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
-       hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
-       hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
-       hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
-       hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
-       hook_bool_const_tree_true, hook_bool_tree_tree_false,
-       hook_bool_tree_tree_true, hook_bool_tree_bool_false,
-       hook_bool_rtx_insn_true, hook_bool_rtx_false,
-       hook_bool_uintp_uintp_false,
-       hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
-       hook_rtx_tree_int_null, hook_uint_mode_0,
-       hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
-       hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
-       hook_constcharptr_const_rtx_insn_null,
-       hook_constcharptr_const_tree_const_tree_null,
-       hook_constcharptr_int_const_tree_null,
-       hook_constcharptr_int_const_tree_const_tree_null,
-       hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
-       hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
-       ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
-       * vec.h (vNULL): Extend comment to say = vNULL initialization
-       isn't needed for static vars.
-       * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
-       loop_nests, s_i_d, last_added_blocks): Remove unnecessary
-       = vNULL initialization of file scope vec.
-       * passes.c (pass_tab, enabled_pass_uid_range_tab,
-       disabled_pass_uid_range_tab): Likewise.
-       * haifa-sched.c (sched_luids, h_i_d): Likewise.
-       * tree-chkp-opt.c (check_infos): Likewise.
-       * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
-       * vec.h (vnull::operator vec): Add constexpr keyword for
-       C++11 and later.
- 2016-09-23  Doug Gilmore  <doug.gilmore@imgtec.com>
-       PR tree-optimization/77654
-       * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
-       to duplicate_ssa_name_ptr_info.
- 2016-09-23  David Malcolm  <dmalcolm@redhat.com>
-       PR preprocessor/77672
-       * input.c (selftest::test_lexer_string_locations_simple): Update
-       test to expect location information of the terminator character
-       at the location of the final closing quote.
-       (selftest::test_lexer_string_locations_hex): Likewise.
-       (selftest::test_lexer_string_locations_oct): Likewise.
-       (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
-       (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
-       (selftest::test_lexer_string_locations_ucn4): Likewise.
-       (selftest::test_lexer_string_locations_ucn8): Likewise.
-       (selftest::test_lexer_string_locations_u8): Likewise.
-       (selftest::test_lexer_string_locations_utf8_source): Likewise.
-       (selftest::test_lexer_string_locations_concatenation_1): Likewise.
-       (selftest::test_lexer_string_locations_concatenation_2): Likewise.
-       (selftest::test_lexer_string_locations_concatenation_3): Likewise.
-       (selftest::test_lexer_string_locations_macro): Likewise.
-       (selftest::test_lexer_string_locations_long_line): Likewise.
- 2016-09-23  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-sccvn.c (visit_reference_op_call): Value number
-       virtual definition to virtual use if the call devirtualizes
-       to a const or pure function.
-       (visit_use): Also visit calls we can devirtualize to a
-       const or pure function.
- 2016-09-23  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77697
-       * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
-       signal error if we have sth ternary or unhandled.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm_neon.h (vabd_f16): New.
-       (vabdq_f16): New.
-       (vabs_f16): New.
-       (vabsq_f16): New.
-       (vadd_f16): New.
-       (vaddq_f16): New.
-       (vcage_f16): New.
-       (vcageq_f16): New.
-       (vcagt_f16): New.
-       (vcagtq_f16): New.
-       (vcale_f16): New.
-       (vcaleq_f16): New.
-       (vcalt_f16): New.
-       (vcaltq_f16): New.
-       (vceq_f16): New.
-       (vceqq_f16): New.
-       (vceqz_f16): New.
-       (vceqzq_f16): New.
-       (vcge_f16): New.
-       (vcgeq_f16): New.
-       (vcgez_f16): New.
-       (vcgezq_f16): New.
-       (vcgt_f16): New.
-       (vcgtq_f16): New.
-       (vcgtz_f16): New.
-       (vcgtzq_f16): New.
-       (vcle_f16): New.
-       (vcleq_f16): New.
-       (vclez_f16): New.
-       (vclezq_f16): New.
-       (vclt_f16): New.
-       (vcltq_f16): New.
-       (vcltz_f16): New.
-       (vcltzq_f16): New.
-       (vcvt_f16_s16): New.
-       (vcvt_f16_u16): New.
-       (vcvt_s16_f16): New.
-       (vcvt_u16_f16): New.
-       (vcvtq_f16_s16): New.
-       (vcvtq_f16_u16): New.
-       (vcvtq_s16_f16): New.
-       (vcvtq_u16_f16): New.
-       (vcvta_s16_f16): New.
-       (vcvta_u16_f16): New.
-       (vcvtaq_s16_f16): New.
-       (vcvtaq_u16_f16): New.
-       (vcvtm_s16_f16): New.
-       (vcvtm_u16_f16): New.
-       (vcvtmq_s16_f16): New.
-       (vcvtmq_u16_f16): New.
-       (vcvtn_s16_f16): New.
-       (vcvtn_u16_f16): New.
-       (vcvtnq_s16_f16): New.
-       (vcvtnq_u16_f16): New.
-       (vcvtp_s16_f16): New.
-       (vcvtp_u16_f16): New.
-       (vcvtpq_s16_f16): New.
-       (vcvtpq_u16_f16): New.
-       (vcvt_n_f16_s16): New.
-       (vcvt_n_f16_u16): New.
-       (vcvtq_n_f16_s16): New.
-       (vcvtq_n_f16_u16): New.
-       (vcvt_n_s16_f16): New.
-       (vcvt_n_u16_f16): New.
-       (vcvtq_n_s16_f16): New.
-       (vcvtq_n_u16_f16): New.
-       (vfma_f16): New.
-       (vfmaq_f16): New.
-       (vfms_f16): New.
-       (vfmsq_f16): New.
-       (vmax_f16): New.
-       (vmaxq_f16): New.
-       (vmaxnm_f16): New.
-       (vmaxnmq_f16): New.
-       (vmin_f16): New.
-       (vminq_f16): New.
-       (vminnm_f16): New.
-       (vminnmq_f16): New.
-       (vmul_f16): New.
-       (vmul_lane_f16): New.
-       (vmul_n_f16): New.
-       (vmulq_f16): New.
-       (vmulq_lane_f16): New.
-       (vmulq_n_f16): New.
-       (vneg_f16): New.
-       (vnegq_f16): New.
-       (vpadd_f16): New.
-       (vpmax_f16): New.
-       (vpmin_f16): New.
-       (vrecpe_f16): New.
-       (vrecpeq_f16): New.
-       (vrnd_f16): New.
-       (vrndq_f16): New.
-       (vrnda_f16): New.
-       (vrndaq_f16): New.
-       (vrndm_f16): New.
-       (vrndmq_f16): New.
-       (vrndn_f16): New.
-       (vrndnq_f16): New.
-       (vrndp_f16): New.
-       (vrndpq_f16): New.
-       (vrndx_f16): New.
-       (vrndxq_f16): New.
-       (vrsqrte_f16): New.
-       (vrsqrteq_f16): New.
-       (vrecps_f16): New.
-       (vrecpsq_f16): New.
-       (vrsqrts_f16): New.
-       (vrsqrtsq_f16): New.
-       (vsub_f16): New.
-       (vsubq_f16): New.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config.gcc (extra_headers): Add arm_fp16.h
-       * config/arm/arm_fp16.h: New.
-       * config/arm/arm_neon.h: Include "arm_fp16.h".
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
-       variants).
-       (vmulf): New (v8hf, v4hf variants).
-       (vfma): New (v8hf, v4hf variants).
-       (vfms): New (v8hf, v4hf variants).
-       (vsub): New (v8hf, v4hf variants).
-       (vcage): New (v8hf, v4hf variants).
-       (vcagt): New (v8hf, v4hf variants).
-       (vcale): New (v8hf, v4hf variants).
-       (vcalt): New (v8hf, v4hf variants).
-       (vceq): New (v8hf, v4hf variants).
-       (vcgt): New (v8hf, v4hf variants).
-       (vcge): New (v8hf, v4hf variants).
-       (vcle): New (v8hf, v4hf variants).
-       (vclt): New (v8hf, v4hf variants).
-       (vceqz): New (v8hf, v4hf variants).
-       (vcgez): New (v8hf, v4hf variants).
-       (vcgtz): New (v8hf, v4hf variants).
-       (vcltz): New (v8hf, v4hf variants).
-       (vclez): New (v8hf, v4hf variants).
-       (vabd): New (v8hf, v4hf variants).
-       (vmaxf): New (v8hf, v4hf variants).
-       (vmaxnm): New (v8hf, v4hf variants).
-       (vminf): New (v8hf, v4hf variants).
-       (vminnm): New (v8hf, v4hf variants).
-       (vpmaxf): New (v4hf variant).
-       (vpminf): New (v4hf variant).
-       (vpadd): New (v4hf variant).
-       (vrecps): New (v8hf, v4hf variants).
-       (vrsqrts): New (v8hf, v4hf variants).
-       (vabs): New (v8hf, v4hf variants).
-       (vneg): New (v8hf, v4hf variants).
-       (vrecpe): New (v8hf, v4hf variants).
-       (vrnd): New (v8hf, v4hf variants).
-       (vrnda): New (v8hf, v4hf variants).
-       (vrndm): New (v8hf, v4hf variants).
-       (vrndn): New (v8hf, v4hf variants).
-       (vrndp): New (v8hf, v4hf variants).
-       (vrndx): New (v8hf, v4hf variants).
-       (vrsqrte): New (v8hf, v4hf variants).
-       (vmul_lane): Add v4hf and v8hf variants.
-       (vmul_n): Add v4hf and v8hf variants.
-       (vext): New (v8hf, v4hf variants).
-       (vcvts): New (v8hi, v4hi variants).
-       (vcvts): New (v8hf, v4hf variants).
-       (vcvtu): New (v8hi, v4hi variants).
-       (vcvtu): New (v8hf, v4hf variants).
-       (vcvts_n): New (v8hf, v4hf variants).
-       (vcvtu_n): New (v8hi, v4hi variants).
-       (vcvts_n): New (v8hi, v4hi variants).
-       (vcvtu_n): New (v8hf, v4hf variants).
-       (vbsl): New (v8hf, v4hf variants).
-       (vcvtas): New (v8hf, v4hf variants).
-       (vcvtau): New (v8hf, v4hf variants).
-       (vcvtms): New (v8hf, v4hf variants).
-       (vcvtmu): New (v8hf, v4hf variants).
-       (vcvtns): New (v8hf, v4hf variants).
-       (vcvtnu): New (v8hf, v4hf variants).
-       (vcvtps): New (v8hf, v4hf variants).
-       (vcvtpu): New (v8hf, v4hf variants).
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm-builtins.c (hf_UP): New.
-       (si_UP): New.
-       (vfp_builtin_data): New.  Update comment.
-       (enum arm_builtins): Include "arm_vfp_builtins.def".
-       (ARM_BUILTIN_VFP_PATTERN_START): New.
-       (arm_init_vfp_builtins): New.
-       (arm_init_builtins): Add arm_init_vfp_builtins.
-       (arm_expand_vfp_builtin): New.
-       (arm_expand_builtins): Update for arm_expand_vfp_builtin.  Fix
-       long line.
-       * config/arm/arm_vfp_builtins.def: New file.
-       * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
-       (arm-builtins.o): Likewise.
- 2016-09-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR ipa/77677
-       * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
-       from constant while creating value range.
- 2016-09-23  Renlin Li  <renlin.li@arm.com>
-       * ira.c (ira): Move ira_use_lra_p initialization code to ...
-       (ira_init_once): Here.
- 2016-09-23  Uros Bizjak  <ubizjak@gmail.com>
-           Jakub Jelinek  <jakub@redhat.com>
-       * hooks.h (hook_uint_uintp_false): Rename to...
-       (hook_bool_uint_uintp_false): ... this.
-       * hooks.c (hook_uint_uintp_false): Rename to...
-       (hook_bool_uint_uintp_false): ... this.
-       * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
-       instead of hook_uint_uintp_false.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
-       (arm_init_builtins): Move body of a loop to the standalone
-       function arm_init_neon_builtin.
-       (arm_expand_neon_builtin_1): New.  Update comment.  Function body
-       moved from arm_neon_builtin with some white-space fixes.
-       (arm_expand_neon_builtin): Move code into the standalone function
-       arm_expand_neon_builtin_1.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/iterators.md (VCVTHI): New.
-       (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE.  Fix a long line.
-       (NEON_VAGLTE): New.
-       (VFM_LANE_AS): New.
-       (VH_CVTTO): New.
-       (V_reg): Add HF, V4HF and V8HF.  Fix white-space.
-       (V_HALF): Add V4HF.  Fix white-space.
-       (V_if_elem): Add HF, V4HF and V8HF.  Fix white-space.
-       (V_s_elem): Likewise.
-       (V_sz_elem): Fix white-space.
-       (V_elem_ch): Likewise.
-       (VH_elem_ch): New.
-       (scalar_mul_constraint): Add V8HF and V4HF.
-       (Is_float_mode): Fix white-space.
-       (Is_d_reg): Add V4HF and V8HF.  Fix white-space.
-       (q): Add HF.  Fix white-space.
-       (float_sup): New.
-       (float_SUP): New.
-       (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
-       (neon_vfm_lane_as): New.
-       * config/arm/neon.md (add<mode>3_fp16): New.
-       (sub<mode>3_fp16): New.
-       (mul<mode>3add<mode>_neon): New.
-       (fma<VH:mode>4_intrinsic): New.
-       (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
-       (fmsub<VH:mode>4_intrinsic): New.
-       (<absneg_str><mode>2): New.
-       (neon_v<absneg_str><mode>): New.
-       (neon_v<fp16_rnd_str><mode>): New.
-       (neon_vrsqrte<mode>): New.
-       (neon_vpaddv4hf): New.
-       (neon_vadd<mode>): New.
-       (neon_vsub<mode>): New.
-       (neon_vmulf<mode>): New.
-       (neon_vfma<VH:mode>): New.
-       (neon_vfms<VH:mode>): New.
-       (neon_vc<cmp_op><mode>): New.
-       (neon_vc<cmp_op><mode>_fp16insn): New
-       (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
-       (neon_vca<cmp_op><mode>): New.
-       (neon_vca<cmp_op><mode>_fp16insn): New.
-       (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
-       (neon_vc<cmp_op>z<mode>): New.
-       (neon_vabd<mode>): New.
-       (neon_v<maxmin>f<mode>): New.
-       (neon_vp<maxmin>fv4hf: New.
-       (neon_<fmaxmin_op><mode>): New.
-       (neon_vrecps<mode>): New.
-       (neon_vrsqrts<mode>): New.
-       (neon_vrecpe<mode>): New (VH variant).
-       (neon_vdup_lane<mode>_internal): New.
-       (neon_vdup_lane<mode>): New.
-       (neon_vcvt<sup><mode>): New (VCVTHI variant).
-       (neon_vcvt<sup><mode>): New (VH variant).
-       (neon_vcvt<sup>_n<mode>): New (VH variant).
-       (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
-       (neon_vcvt<vcvth_op><sup><mode>): New.
-       (neon_vmul_lane<mode>): New.
-       (neon_vmul_n<mode>): New.
-       * config/arm/unspecs.md (UNSPEC_VCALE): New
-       (UNSPEC_VCALT): New.
-       (UNSPEC_VFMA_LANE): New.
-       (UNSPECS_VFMS_LANE): New.
- 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
-       ("*extzv<mode><clobbercc_or_nocc>"):
-       Correct a typo in a comment.
-       Merged patterns.
-       ("*insv<mode>_zEC12", "*insv<mode>_z10")
-       ("*insv<mode><clobbercc_or_nocc>"): Ditto.
-       ("*insv<mode>_zEC12_appendbitsleft")
-       ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
-       ("*insv<mode>_z10_appendbitsleft"): Ditto.
-       ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
-       ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
-       Provide pattern with operands switched.
-       ("*pre_z10_extv<mode>"):
-       Use new subst patterns.
-       ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
-       ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
-       ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
-       ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
-       ("*<risbg_n>_<mode>_ior_and_lshiftrt")
-       ("*<risbg_n>_sidi_ior_and_lshiftrt")
-       ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
-       New patterns.
-       ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
-       ("*extzv_<mode>_srl<clobbercc_or_nocc>")
-       ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
-       on zEC12.
-       ("SINT"): New mode_iterator with SI, HI, QI.
-       * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
-       ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
-       duplication.
- 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
-       new interface of s390_contiguous_bitmask_p.
-       ("contiguous_bitmask_nowrap_operand"): New predicate.
-       ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
-       * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
-       of s390_contiguous_bitmask_p.
-       ("NxxDw"): Rename NxxDq constraint to NxxDw.
-       ("NxxSw"): New constraint.
-       * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
-       * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
-       interface.
-       (s390_contiguous_bitmask_nowrap_p): Export.
-       * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
-       former s390_contiguous_bitmask_p.
-       (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
-       detect contiguous bit ranges with wraparound.  Change signature to
-       return START and END position instead of POS and LENGTH.
-       (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
-       ranges with wraparound.
-       (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
-       (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
-       Adapt to new signature of s390_contiguous_bitmask_p.
- 2016-09-23  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
-       (create_intersect_range_checks): New.
-       (vect_create_cond_for_alias_checks): Call above function.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/iterators.md (Code iterators): Fix some white-space
-       in the comments.
-       (GLTE): New.
-       (ABSNEG): New
-       (FCVT): Moved from vfp.md.
-       (VCVT_HF_US_N): New.
-       (VCVT_SI_US_N): New.
-       (VCVT_HF_US): New.
-       (VCVTH_US): New.
-       (FP16_RND): New.
-       (absneg_str): New.
-       (FCVTI32typename): Moved from vfp.md.
-       (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
-       UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
-       UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
-       UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N,  UNSPEC_VCVTH_S_N,
-       UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
-       (vcvth_op): New.
-       (fp16_rnd_str): New.
-       (fp16_rnd_insn): New.
-       * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
-       (UNSPEC_VCVT_HF_U_N): New.
-       (UNSPEC_VCVT_SI_S_N): New.
-       (UNSPEC_VCVT_SI_U_N): New.
-       (UNSPEC_VCVTH_S): New.
-       (UNSPEC_VCVTH_U): New.
-       (UNSPEC_VCVTA_S): New.
-       (UNSPEC_VCVTA_U): New.
-       (UNSPEC_VCVTM_S): New.
-       (UNSPEC_VCVTM_U): New.
-       (UNSPEC_VCVTN_S): New.
-       (UNSPEC_VCVTN_U): New.
-       (UNSPEC_VCVTP_S): New.
-       (UNSPEC_VCVTP_U): New.
-       (UNSPEC_VCVTP_S): New.
-       (UNSPEC_VCVTP_U): New.
-       (UNSPEC_VRND): New.
-       (UNSPEC_VRNDA): New.
-       (UNSPEC_VRNDI): New.
-       (UNSPEC_VRNDM): New.
-       (UNSPEC_VRNDN): New.
-       (UNSPEC_VRNDP): New.
-       (UNSPEC_VRNDX): New.
-       * config/arm/vfp.md (<absneg_str>hf2): New.
-       (neon_vabshf): New.
-       (neon_v<fp16_rnd_str>hf): New.
-       (neon_vrndihf): New.
-       (addhf3): New.
-       (subhf3): New.
-       (divhf3): New.
-       (mulhf3): New.
-       (*mulsf3neghf_vfp): New.
-       (*negmulhf3_vfp): New.
-       (*mulsf3addhf_vfp): New.
-       (*mulhf3subhf_vfp): New.
-       (*mulhf3neghfaddhf_vfp): New.
-       (*mulhf3neghfsubhf_vfp): New.
-       (fmahf4): New.
-       (neon_vfmahf): New.
-       (fmsubhf4_fp16): New.
-       (neon_vfmshf): New.
-       (*fnmsubhf4): New.
-       (*fnmaddhf4): New.
-       (neon_vsqrthf): New.
-       (neon_vrsqrtshf): New.
-       (FCVT): Move to iterators.md.
-       (FCVTI32typename): Likewise.
-       (neon_vcvth<sup>hf): New.
-       (neon_vcvth<sup>si): New.
-       (neon_vcvth<sup>_nhf_unspec): New.
-       (neon_vcvth<sup>_nhf): New.
-       (neon_vcvth<sup>_nsi_unspec): New.
-       (neon_vcvth<sup>_nsi): New.
-       (neon_vcvt<vcvth_op>h<sup>si): New.
-       (neon_<fmaxmin_op>hf): New.
- 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
-       ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
-       ("*insv<mode>_zEC12_appendbitsleft")
-       ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
-       ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
- 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
-       * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
-       * sreal.h (sreal::min, sreal::max): Avoid static local vars,
-       construct values without normalization.
-       * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
-       static local lhs_ops to vNULL.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-           Jiong Wang <jiong.wang@arm.com>
-       * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
-       available when FP16 instructions are available.
-       (output_move_vfp): Add support for 16-bit data moves.
-       (arm_validize_comparison): Fix some white-space.  Support HFmode
-       by conversion to SFmode.
-       * config/arm/arm.md (truncdfhf2): Fix a comment.
-       (extendhfdf2): Likewise.
-       (cstorehf4): New.
-       (movsicc): Fix some white-space.
-       (movhfcc): New.
-       (movsfcc): Fix some white-space.
-       (*cmovhf): New.
-       * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
-       instructions are available.
-       (*thumb2_movhi_vfp): Likewise.
-       (*arm_movhi_fp16): New.
-       (*thumb2_movhi_fp16): New.
-       (*movhf_vfp_fp16): New.
-       (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
-       (*movhf_vfp): Likewise.
-       (extendhfsf2): Enable when VFP FP16 instructions are available.
-       (truncsfhf2):  Enable when VFP FP16 instructions are available.
- 2016-09-23  Martin Liska  <mliska@suse.cz>
-       * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
-       V4HF modes.
-       (arm_evpc_neon_vtrn): Likewise.
-       (arm_evpc_neon_vrev): Likewise.
-       (arm_evpc_neon_vext): Likewise.
-       * config/arm/arm_neon.h (vbsl_f16): New.
-       (vbslq_f16): New.
-       (vdup_n_f16): New.
-       (vdupq_n_f16): New.
-       (vdup_lane_f16): New.
-       (vdupq_lane_f16): New.
-       (vext_f16): New.
-       (vextq_f16): New.
-       (vmov_n_f16): New.
-       (vmovq_n_f16): New.
-       (vrev64_f16): New.
-       (vrev64q_f16): New.
-       (vtrn_f16): New.
-       (vtrnq_f16): New.
-       (vuzp_f16): New.
-       (vuzpq_f16): New.
-       (vzip_f16): New.
-       (vzipq_f16): New.
-       * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
-       (vdup_lane): New (v8hf, v4hf variants).
-       (vext): New (v8hf, v4hf variants).
-       (vbsl): New (v8hf, v4hf variants).
-       * config/arm/iterators.md (VDQWH): New.
-       (VH): New.
-       (V_double_vector_mode): Add V8HF and V4HF.  Fix white-space.
-       (Scalar_mul_8_16): Fix white-space.
-       (Is_d_reg): Add V4HF and V8HF.
-       * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
-       (neon_vdup_lane<mode>): New.
-       (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
-       (*neon_vtrn<mode>_insn): Likewise.
-       (neon_vzip<mode>_internal): Likewise. Also fix white-space.
-       (*neon_vzip<mode>_insn): Likewise
-       (neon_vuzp<mode>_internal): Likewise.
-       (*neon_vuzp<mode>_insn): Likewise
-       * config/arm/vec-common.md (vec_perm_const<mode>): New.
- 2016-09-23  Jiong Wang  <jiong.wang@arm.com>
-           Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
-       (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
-       * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
-       available.  Also fix some white-space.
-       * config/arm/vfp.md (*arm_movhi_vfp): New.
-       (*thumb2_movhi_vfp): New.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm-c.c (arm_cpu_builtins): Define
-       "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
-       "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
-       arm_v8_1a_neon_ok.  Add entries for arm_v8_2a_fp16_scalar_ok,
-       arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
-       arm_v8_2a_fp16_neon_hw.
-       (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
-       arm_v8_2a_neon.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
-       arm_fp16_alternative_ok and arm_fp16_none_ok.
- 2016-09-23  Martin Liska  <mliska@suse.cz>
-       * ipa-icf.c (sem_variable::merge): Replace adress with address.
- 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
-       ("armv8.2-a"): New.
-       ("armv8.2-a+fp16"): New.
-       * config/arm/arm-protos.h (FL2_ARCH8_2): New.
-       (FL2_FP16INST): New.
-       (FL2_FOR_ARCH8_2A): New.
-       * config/arm/arm-tables.opt: Regenerate.
-       * config/arm/arm.c (arm_arch8_2): New.
-       (arm_fp16_inst): New.
-       (arm_option_override): Set arm_arch8_2 and arm_fp16_inst.  Check
-       for incompatible fp16-format settings.
-       * config/arm/arm.h (TARGET_VFP_FP16INST): New.
-       (TARGET_NEON_FP16INST): New.
-       (arm_arch8_2): Declare.
-       (arm_fp16_inst): Declare.
-       * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
-       march=armv8.2-a and march=armv8.2-a+fp16.
-       * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
-       and armv8.2-a+fp16.
-       * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
-       "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
- 2016-09-23  Martin Liska  <mliska@suse.cz>
-       * doc/extend.texi: Remove fused-madd from i386 target options.
- 2016-09-23  Martin Liska  <mliska@suse.cz>
-       * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
-       Handle movbe.
- 2016-09-23  Martin Liska  <mliska@suse.cz>
-       * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
-       Handle crc32.
- 2016-09-23  Martin Liska  <mliska@suse.cz>
-       PR target/71652
-       * config/i386/i386.c (ix86_option_override_internal): Change
-       signature and return false when there's an error related to
-       arch string.
-       (release_options_strings): New function.
-       (ix86_valid_target_attribute_tree): Call the function.
- 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
-       * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
-       instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
-       (gen_hsa_ctor_assignment): Likewise.
-       * print-tree.c (print_node): Likewise.
-       * tree-dump.c (dequeue_and_dump): Likewise.
-       * tree-sra.c (sra_modify_constructor_assign): Likewise.
-       * expr.c (store_constructor): Likewise.
-       * fold-const.c (operand_equal_p): Likewise.
+       (vect_analyze_scalar_cycles_1): Likewise.
+       (vect_get_loop_niters): Likewise.
+       (vect_analyze_loop_form_1): Likewise.
+       (vect_update_vf_for_slp): Likewise.
+       (vect_analyze_loop_operations): Likewise.
+       (vect_analyze_loop): Likewise.
+       (vectorizable_induction): Likewise.
+       (vect_transform_loop): Likewise.
+       * tree-vect-patterns.c (vect_pattern_recog): Likewise.
+       * tree-vect-slp.c (vect_analyze_slp): Likewise.
+       (vect_make_slp_decision): Likewise.
+       (vect_detect_hybrid_slp): Likewise.
+       (vect_slp_analyze_operations): Likewise.
+       (vect_slp_bb): Likewise.
+       * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
+       (vectorizable_bswap): Likewise.
+       (vectorizable_call): Likewise.
+       (vectorizable_simd_clone_call): Likewise.
+       (vectorizable_conversion): Likewise.
+       (vectorizable_assignment): Likewise.
+       (vectorizable_shift): Likewise.
+       (vectorizable_operation): Likewise.
+       * tree-vectorizer.h (DUMP_VECT_SCOPE): New macro.
+ 2018-06-18  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/81384
+       * builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New.
+       * builtins.c (expand_builtin_strnlen): New function.
+       (expand_builtin): Call it.
+       (fold_builtin_n): Avoid setting TREE_NO_WARNING.
+       * builtins.def (BUILT_IN_STRNLEN): New.
+       * calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN.
+       Warn for bounds in excess of maximum object size.
+       * tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing
+       single-value ranges.  Handle strnlen.
+       (handle_builtin_strlen): Handle strnlen.
+       (strlen_check_and_optimize_stmt): Same.
+       * doc/extend.texi (Other Builtins): Document strnlen.
+ 2018-06-18  Maya Rashish  <coypu@sdf.org>
+       * config/alpha/openbsd.h (TARGET_DEFAULT): Define.
+       (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
+       (INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise.
+       * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from
+       here to ...
+       * config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here.
+ 2018-06-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       * tree.c (escaped_string::escape): Replace cast to char * by
+       const_cast<char *> (unescaped).
+ 2018-06-18  Nick Clifton  <nickc@redhat.com>
+       PR 84195
+       * tree.c (escaped_string): New class.  Converts an unescaped
+       string into its escaped equivalent.
+       (warn_deprecated_use): Use the new class to convert the
+       deprecation message, if present.
+       (test_escaped_strings): New self test.
+       (test_c_tests): Add test_escaped_strings.
+       * doc/extend.texi (deprecated): Add a note that the
+       deprecation message is affected by the -fmessage-length
+       option, and that control characters will be escaped.
+       (#pragma GCC error): Document this pragma.
+       (#pragma GCC warning): Likewise.
+       * doc/invoke.texi (-fmessage-length): Document this option's
+       effect on the #warning and #error preprocessor directives and
+       the deprecated attribute.
+ 2018-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+       * tree.c (decl_value_expr_lookup): Revert latest change.
+       (decl_value_expr_insert): Likewise.
+ 2018-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+       * gimplify.c (nonlocal_vlas): Delete.
+       (nonlocal_vla_vars): Likewise.
+       (gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local
+       referenced VLAs.
+       (gimplify_body): Do not create and destroy nonlocal_vlas.
+       * tree-nested.c: Include diagnostic.h.
+       (use_pointer_in_frame): Tweak.
+       (lookup_field_for_decl): Add assertion and declare the transformation.
+       (convert_nonlocal_reference_op) <PARM_DECL>: Rework and issue an
+       internal error when the reference is in a wrong context.  Do not
+       create a debug decl by default.
+       (note_nonlocal_block_vlas): Delete.
+       (convert_nonlocal_reference_stmt) <GIMPLE_BIND>: Do not call it.
+       (convert_local_reference_op) <PARM_DECL>: Skip the frame decl.  Do not
+       create a debug decl by default.
+       (convert_gimple_call) <GIMPLE_CALL>: Issue an internal error when the
+       call is in a wrong context.
+       (fixup_vla_decls): New function.
+       (finalize_nesting_tree_1): Adjust comment.  Call fixup_vla_decls if no
+       debug variables were created.
+       * tree.c (decl_value_expr_lookup): Add checking assertion.
+       (decl_value_expr_insert): Likewise.
+ 2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       PR middle-end/82479
+       * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR.
+       * tree-scalar-evolution.c (interpret_expr): Likewise.
+       (expression_expensive_p): Likewise.
+       * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise.
+       * tree-ssa-loop-niter.c (number_of_iterations_popcount): New.
+       (number_of_iterations_exit_assumptions): Use number_of_iterations_popcount.
+       (ssa_defined_by_minus_one_stmt_p): New.
+ 2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       PR middle-end/64946
+       * cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR.
+       * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
+       * dojump.c (do_jump): Likewise.
+       * expr.c (expand_expr_real_2): Check operand type's sign.
+       * fold-const.c (const_unop): Handle ABSU_EXPR.
+       (fold_abs_const): Likewise.
+       * gimple-pretty-print.c (dump_unary_rhs): Likewise.
+       * gimple-ssa-backprop.c (backprop::process_assign_use): Likesie.
+       (strip_sign_op_1): Likesise.
+       * match.pd: Add new pattern to generate ABSU_EXPR.
+       * optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR.
+       * tree-cfg.c (verify_gimple_assign_unary): Likewise.
+       * tree-eh.c (operation_could_trap_helper_p): Likewise.
+       * tree-inline.c (estimate_operator_cost): Likewise.
        * tree-pretty-print.c (dump_generic_node): Likewise.
-       * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
-       * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
- 2016-09-23  Richard Biener  <rguenther@suse.de>
-       * hooks.h (hook_uint_uintp_false): Declare.
- 2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
-       (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
- 2016-09-22  Martin Sebor  <msebor@redhat.com>
-       PR target/77676
-       * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
-       HOST_BITS_PER_WIDE_INT, make a static local variable auto.
-       (target_int_min): Correct computation.
-       (format_integer): Use long long as the argument for the ll length
-       modifier.
-       (format_floating): Use target_int_max().
-       (get_string_length): Same.
-       (format_string): Avoid setting the bounded flag for strings
-       of unknown length.
-       (try_substitute_return_value): Avoid setting range info when
-       the result isn't bounded.
-       * varasm.c (assemble_name): Increase buffer size.
- 2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
-           Terry Guo  <terry.guo@arm.com>
-       * target.def (elf_flags_numeric): New target hook.
-       * targhooks.h (default_asm_elf_flags_numeric): New.
-       * varasm.c (default_asm_elf_flags_numeric): New.
-       (default_elf_asm_named_section): Use new target hook.
-       * config/arm/arm.opt (mpure-code): New.
-       * config/arm/arm.h (SECTION_ARM_PURECODE): New.
-       * config/arm/arm.c (arm_asm_init_sections): Add section
-       attribute to default text section if -mpure-code.
-       (arm_option_check_internal): Diagnose use of option with
-       non supported targets and/or options.
-       (arm_asm_elf_flags_numeric): New.
-       (arm_function_section): New.
-       (arm_elf_section_type_flags): New.
-       * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
-       for -mpure-code.
-       * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
-       * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
- 2016-09-22  Jan Hubicka  <hubicka@ucw.cz>
-       * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
-       * rtl.h: Adjust prototype.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
-       (prev_active_insn): Likewise.
-       (active_insn_p): Likewise.
-       * rtl.h: Adjust prototypes.
-       * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
-       * config/arc/arc.md: Likewise.
-       * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
-       (branch_needs_nop_p): Likewise.
-       (use_skip_p): Likewise.
-       * config/sh/sh.c (gen_block_redirect): Likewise.
-       (split_branches): Likewise.
-       * reorg.c (optimize_skip): Likewise.
-       (fill_simple_delay_slots): Likewise.
-       (fill_slots_from_thread): Likewise.
-       (relax_delay_slots): Likewise.
-       * resource.c (mark_target_live_regs): Likewise.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config/cris/cris.c (cris_asm_output_case_end): Change argument
-       type to rtx_insn *.
-       * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
-       (prev_nonnote_nondebug_insn): Likewise.
-       * config/cris/cris-protos.h: Adjust prototype.
-       * rtl.h: Likewise.
-       * jump.c (rtx_renumbered_equal_p): Adjust.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
-       * rtl.h: Adjust prototype.
-       * config/sh/sh.md: Adjust.
-       * dwarf2out.c (add_var_loc_to_decl): Likewise.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
-       (prev_nondebug_insn): Likewise.
-       * loop-doloop.c (doloop_condition_get): Likewise.
-       * rtl.h: Adjust prototype.
-       * cfgloop.h: Likewise.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
-       (prev_nonnote_insn): Likewise.
-       * jump.c (reversed_comparison_code_parts): Likewise.
-       (reversed_comparison): Likewise.
-       * rtl.h: Adjust prototypes.
-       * config/arc/arc.md: Adjust.
-       * cse.c (find_comparison_args): Likewise.
-       * reorg.c (redundant_insn): Change return type to rtx_insn *.
-       (fix_reg_dead_note): Change argument type to rtx_insn *.
-       (delete_prior_computation): Likewise.
-       (delete_computation): Likewise.
-       (fill_slots_from_thread): Adjust.
-       (relax_delay_slots): Likewise.
-       * simplify-rtx.c (simplify_unary_operation_1): Likewise.
-       (simplify_relational_operation_1): Likewise.
-       (simplify_ternary_operation): Likewise.
- 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config/arc/arc-protos.h (arc_label_align): Change type of
-       variables from rtx to rtx_insn *.
-       * config/arc/arc.c (arc_label_align): Likewise.
-       * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
-       * config/bfin/bfin.c (workaround_speculation): Likewise.
-       * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
-       (find_last_same_clock): Likewise.
-       (reorg_split_calls): Likewise.
-       * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
-       * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
-       * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
-       (same_cmp_following_p): Likewise.
-       * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
-       (same_cmp_following_p): Likwise.
-       * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
-       * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
-       * config/nds32/nds32.c (nds32_target_alignment): Likewise.
-       * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
-       (rl78_alloc_physical_registers_cmp): Likewise.
-       (rl78_alloc_physical_registers_umul): Likewise.
-       (rl78_calculate_death_notes): Likewise.
-       * config/s390/s390-protos.h (s390_label_align): Likewise.
-       * config/s390/s390.c (s390_label_align): Likewise.
-       * config/sh/sh.c (barrier_align): Likewise.
-       * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
-       * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
-       (emit_cbcond_nop): Likewise.
- 2016-09-22  Martin Liska  <mliska@suse.cz>
-       PR ipa/77653
-       * ipa-icf.c (sem_variable::merge): Yield merge operation if
-       alias address matters, not necessarily address of original.
- 2016-09-22  Richard Biener  <rguenther@suse.de>
-       PR middle-end/77697
-       * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
-       fold fails.
- 2016-09-22  Richard Biener  <rguenther@suse.de>
-       PR middle-end/77677
-       * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
-       from constant folding results.
-       (gimple_resimplify2): Likewise.
-       (gimple_resimplify3): Likewise.
- 2016-09-22  Richard Biener  <rguenther@suse.de>
-       PR middle-end/77678
-       * expr.c (expand_expr_real_1): Guard array access against negative
-       offset.
- 2016-09-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
-       of MPFR_RNDN.
-       (format_floating): Likewise.
- 2016-09-22  Jakub Jelinek  <jakub@redhat.com>
-       PR fortran/77665
-       * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
-       for all IFN_GOMP_SIMD_* internal fns, not just for
-       IFN_GOMP_SIMD_ORDERED_*.
- 2016-09-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/77670
-       * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
-       New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
-       instructions when you want to invert the test.
-       * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
-       correct order for XXSEL.
-       (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
-       for using XSCMP{EQ,GT,GE}DP.
- 2016-09-21  David Malcolm  <dmalcolm@redhat.com>
-       * genconstants.c (main): Introduce noop_reader and convert call
-       to read_md_files to a method call.
-       * genenums.c (main): Likewise.
-       * genmddeps.c (main): Likewise.
-       * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
-       rtx_reader_ptr->get_top_level_filename ().
-       (write_tm_preds_h): Likewise.
-       (write_insn_preds_c): Likewise.
-       * gensupport.c (class gen_reader): New subclass of rtx_reader.
-       (rtx_handle_directive): Convert to...
-       (gen_reader::handle_unknown_directive): ...this.
-       (init_rtx_reader_args_cb): Convert return type from bool to
-       rtx_reader *.  Create a gen_reader instance, using it for the
-       call to read_md_files.  Return it if no errors occur.
-       (init_rtx_reader_args): Convert return type from bool to
-       rtx_reader *.
-       * gensupport.h (init_rtx_reader_args_cb): Likewise.
-       (init_rtx_reader_args_cb): Likewise.
-       * read-md.c (struct file_name_list): Move to class rtx_reader.
-       (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
-       (read_md_filename): Delete in favor of
-       rtx_reader::m_read_md_filename.
-       (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
-       (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
-       (base_dir): Delete in favor of rtx_reader::m_base_dir.
-       (first_dir_md_include): Delete in favor of
-       rtx_reader::m_first_dir_md_include.
-       (last_dir_md_include_ptr): Delete in favor of
-       rtx_reader::m_last_dir_md_include_ptr.
-       (max_include_len): Delete.
-       (rtx_reader_ptr): New.
-       (fatal_with_file_and_line): Use get_filename and get_lineno
-       accessors of rtx_reader_ptr.
-       (require_char_ws): Likewise.
-       (rtx_reader::read_char): New method, based on ::read_char.
-       (rtx_reader::unread_char): New method, based on ::unread_char.
-       (read_escape): Use get_filename and get_lineno accessors of
-       rtx_reader_ptr.
-       (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
-       (read_string): Use get_filename and get_lineno accessors of
-       rtx_reader_ptr.
-       (rtx_reader::rtx_reader): New ctor.
-       (rtx_reader::~rtx_reader): New dtor.
-       (handle_include): Convert from a function to...
-       (rtx_reader::handle_include): ...this method, converting
-       handle_directive from a callback to a virtual function.
-       (handle_file): Likewise, converting to...
-       (rtx_reader::handle_file): ...this method.
-       (handle_toplevel_file): Likewise, converting to...
-       (rtx_reader::handle_toplevel_file): ...this method.
-       (rtx_reader::get_current_location): New method.
-       (parse_include): Convert from a function to...
-       (rtx_reader::add_include_path): ...this method, dropping redundant
-       update to unused max_include_len.
-       (read_md_files): Convert from a function to...
-       (rtx_reader::read_md_files): ...this method, converting
-       handle_directive from a callback to a virtual function.
-       (noop_reader::handle_unknown_directive): New method.
-       * read-md.h (directive_handler_t): Delete this typedef.
-       (in_fname): Delete.
-       (read_md_file): Delete.
-       (read_md_lineno): Delete.
-       (read_md_filename): Delete.
-       (class rtx_reader): New class.
-       (rtx_reader_ptr): New decl.
-       (class noop_reader): New subclass of rtx_reader.
-       (read_char): Reimplement in terms of rtx_reader::read_char.
-       (unread_char): Reimplement in terms of rtx_reader::unread_char.
-       (read_md_files): Delete.
-       * read-rtl.c (read_rtx_code): Update for deletion of globals
-       read_md_filename and read_md_lineno.
- 2016-09-21  Jason Merrill  <jason@redhat.com>
-       * input.h (from_macro_definition_at): New.
- 2016-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
-       * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
- 2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR tree-optimization/77550
-       * tree-vect-stmts.c (create_array_ref): Change parameters.
-       (get_group_alias_ptr_type): New function.
-       (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
- 2016-09-21  Marek Polacek  <polacek@redhat.com>
-       * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
-       Add falls through comment.
- 2016-09-21  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
-       (replace_child): Likewise.
-       (remove_child_TAG): Adjust.
-       (move_marked_base_types): Likewise.
-       (prune_unused_types_prune): Clear die_sib of removed children.
- 2016-09-21  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/77326
-       * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
-       touches some regs mentioned in cc_status, do CC_STATUS_INIT.
- 2016-09-21  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77648
-       * tree-ssa-structalias.c (process_constraint): Handle all DEREF
-       with complex RHS.
-       (make_transitive_closure_constraints): Adjust comment.
-       (make_any_offset_constraints): New function.
-       (handle_rhs_call): Make sure to first expand a pointer to all
-       subfields before transitively closing it.
-       (handle_const_call): Likewise.  Properly expand returned
-       pointers as well.
-       (handle_pure_call): Likewise.
- 2016-09-21  Richard Biener  <rguenther@suse.de>
-           Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/77621
-       * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
-       group at non-vectorizable stmts.
- 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR tree-optimization/72835
-       * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
-       (make_new_ssa_for_all_defs): Likewise.
-       (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
- 2016-09-20  Martin Sebor  <msebor@redhat.com>
-       PR middle-end/49905
-       * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
-       * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
-       * config/linux.c (gnu_libc_printf_pointer_format): New function.
-       * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
-       * config/sol2.c (solaris_printf_pointer_format): New function.
-       * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
-       options.
-       * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
-       * doc/tm.texi: Regenerate.
-       * gimple-fold.h (get_range_strlen): New function.
-       (get_maxval_strlen): Declare existing function.
-       * gimple-fold.c (get_range_strlen): Add arguments and compute both
-       maximum and minimum.
-        (get_range_strlen): Define overload.
-       (get_maxval_strlen): Adjust.
-       * gimple-ssa-sprintf.c: New file and pass.
-       * passes.def (pass_sprintf_length): Add new pass.
-       * targhooks.h (default_printf_pointer_format): Declare new function.
-       (gnu_libc_printf_pointer_format): Same.
-       (solaris_libc_printf_pointer_format): Same.
-       * targhooks.c (default_printf_pointer_format): Define new function.
-       * tree-pass.h (make_pass_sprintf_length): Declare new function.
-       * print-tree.c: Increase buffer size.
- 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
- 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * common.opt: New option -fipa-vrp.
-       * ipa-cp.c (ipa_get_vr_lat): New.
-       (ipcp_vr_lattice::print): Likewise.
-       (print_all_lattices): Call ipcp_vr_lattice::print.
-       (ipcp_vr_lattice::meet_with): New.
-       (ipcp_vr_lattice::meet_with_1): Likewise.
-       (ipcp_vr_lattice::top_p): Likewise.
-       (ipcp_vr_lattice::bottom_p): Likewsie.
-       (ipcp_vr_lattice::set_to_bottom): Likewise.
-       (set_all_contains_variable): Call VR set_to_bottom.
-       (initialize_node_lattices): Init VR lattices.
-       (propagate_vr_accross_jump_function): New.
-       (propagate_constants_accross_call): Call
-       propagate_vr_accross_jump_function.
-       (ipcp_store_vr_results): New.
-       (ipcp_driver): Handle VR.
-       * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
-       (ipa_set_jf_unknown): Likewise.
-       (ipa_compute_jump_functions_for_edge): Likewise.
-       (ipa_node_params_t::duplicate): Likewise.
-       (ipa_write_jump_function): Likewise.
-       (ipa_read_jump_function): Likewise.
-       (write_ipcp_transformation_info): Likewise.
-       (read_ipcp_transformation_info): Likewise.
-       (ipcp_update_vr): New.
-       (ipcp_transform_function): Handle VR.
-       * ipa-prop.h (struct ipa_vr): New.
-       * cgraph.c: Include tree-vrp.h.
-       * cgraphunit.c: Likewise.
-       * ipa-utils.c: Likewise.
-       * ipa.c: Likewise.
-       * opts.c: Likewise.
-       * toplev.c: Likewise.
-       * ipa-devirt.c: Likewise.
-       * ipa-inline-transform.c: Likewise.
-       * ipa-inline.c: Likewise.
-       * ipa-profile.c: Likewise.
- 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * doc/invoke.texi: Document -fdump-tree-evrp.
-       * passes.def: Define new pass_early_vrp.
-       * timevar.def: Define new TV_TREE_EARLY_VRP.
-       * tree-pass.h (make_pass_early_vrp): New.
-       * tree-ssa-propagate.c: Make replace_uses_in non static.
-       * tree-ssa-propagate.h: Export replace_uses_in.
-       * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
-       (extract_range_from_assert): Factor out
-       extract_range_for_var_from_comparison_expr.
-       (vrp_initialize_lattice): New.
-       (vrp_initialize): Factor out vrp_initialize_lattice.
-       (vrp_valueize): Fix it to reject complex value ranges.
-       (vrp_free_lattice): New.
-       (evrp_dom_walker::before_dom_children): Likewise.
-       (evrp_dom_walker::after_dom_children): Likewise.
-       (evrp_dom_walker::push_value_range): Likewise.
-       (evrp_dom_walker::pop_value_range): Likewise.
-       (execute_early_vrp): Likewise.
-       (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
-       (make_pass_early_vrp): New.
+       * tree-vect-patterns.c (vect_recog_sad_pattern): Likewise.
+       * tree.def (ABSU_EXPR): New.
  
- 2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-06-16  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
-       instead of exact_log2.
+       PR middle-end/86095
+       * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var,
+       documented as preserved for backward compatibility only.
+       * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation.
  
- 2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/77621
-       * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
-       Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
-       (ix86_add_stmt_cost): Penalize DFmode vector operations
-       for !TARGET_VECTORIZE_DOUBLE.
- 2016-09-20  Gerald Pfeifer  <gerald@pfeifer.com>
+       PR rtl-optimization/86108
+       * bb-reorder.c (create_forwarder_block): Renamed to ...
+       (create_eh_forwarder_block): ... this.  Split OLD_BB after labels and
+       jump from new landing pad to the second part.
+       (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad):
+       Adjust callers.
  
-       * doc/invoke.texi (Warning Options): Simplify language.
-       (Optimize Options): Complete sentence.
+ 2018-06-15  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/85878
+       * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P
+       check from first store_expr, use to_mode instead of GET_MODE (to_rtx).
+       Only call store_expr for halves if the mode is the same.
+       PR middle-end/86123
+       * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions.
+       Fix up comment formatting.
+ 2018-06-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+       * typed-splay-tree.h (typed_splay_tree::remove): New function.
+       (typed_splay_tree::closure,
+       typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted.
+       (typed_splay_tree::typed_splay_tree,
+       typed_splay_tree::operator =): Declared private.
+       (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value,
+       typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL,
+       typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper,
+       typed_splay_tree::rotate_left, typed_splay_tree::rotate_right,
+       typed_splay_tree::splay_tree_splay,
+       typed_splay_tree::splay_tree_foreach_helper,
+       typed_splay_tree::splay_tree_insert,
+       typed_splay_tree::splay_tree_remove,
+       typed_splay_tree::splay_tree_lookup,
+       typed_splay_tree::splay_tree_predecessor,
+       typed_splay_tree::splay_tree_successor,
+       typed_splay_tree::splay_tree_min,
+       typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h.
+       (typed_splay_tree::root, typed_splay_tree::comp,
+       typed_splay_tree::delete_key,
+       typed_splay_tree::delete_value): New data members.
+       * typed-splay-tree.c (selftest::test_str_to_int): Add a test for
+       typed_splay_tree::remove.
+ 2018-06-15  Matthew Fortune  <matthew.fortune@mips.com>
+       * config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc,
+       -mginv and -mno-ginv to the assembler.
+       * config/mips/mips.opt (-mcrc): New option.
+       (-mginv): Likewise.
+       * doc/invoke.text (-mcrc): Document.
+       (-mginv): Likewise.
+ 2018-06-15  Nick Clifton  <nickc@redhat.com>
+       PR 84195
+       * tree.c (escaped_string): New class.  Converts an unescaped
+       string into its escaped equivalent.
+       (warn_deprecated_use): Use the new class to convert the
+       deprecation message, if present.
+       (test_escaped_strings): New self test.
+       (test_c_tests): Add test_escaped_strings.
+       * doc/extend.texi (deprecated): Add a note that the
+       deprecation message is affected by the -fmessage-length
+       option, and that control characters will be escaped.
+       (#pragma GCC error): Document this pragma.
+       (#pragma GCC warning): Likewise.
+       * doc/invoke.texi (-fmessage-length): Document this option's
+       effect on the #warning and #error preprocessor directives and
+       the deprecated attribute.
+ 2018-06-15  Richard Biener  <rguenther@suse.de>
+       * tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS
+       here, also noting vector size used.
+       * tree-vectorizer.c (vectorize_loops): Adjust.  Note vector
+       size used in MSG_OPTIMIZED_LOCATIONS dump.
+       (pass_slp_vectorize::execute): Adjust.
+ 2018-06-15  Claudiu Zissulescu  <claziss@synopsys.com>
+       PR target/85968
+       * config/arc/arc.c (arc_return_address_register): Fix
+       if-condition.
+ 2018-06-15  Richard Biener  <rguenther@suse.de>
+       PR middle-end/86159
+       * tree-cfg.c (gimplify_build3): Do not strip sign conversions,
+       leave useless conversion stripping to force_gimple_operand_gsi.
+       (gimplify_build2): Likewise.
+       (gimplify_build1): Likewise.
+ 2018-06-15  Richard Biener  <rguenther@suse.de>
+       PR middle-end/86076
+       * tree-cfg.c (move_stmt_op): unshare invariant addresses
+       before adjusting their block.
+ 2018-06-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
+       multilibs for *-*-rtems*.
+       * config/riscv/t-rtems: New file.
+ 2018-06-14  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/86122
+       * match.pd ((A +- CST1) +- CST2): Punt if last resort
+       unsigned_type_for returns NULL.
+       PR target/85945
+       * lower-subreg.c (find_decomposable_subregs): Don't decompose float
+       subregs of multi-word pseudos unless the float mode has word size.
+ 2018-06-14  Richard Biener  <rguenther@suse.de>
+       PR middle-end/86139
+       * tree-vect-generic.c (build_word_mode_vector_type): Remove
+       duplicate and harmful type_hash_canon.
+       * tree.c (type_hash_canon): Assert we didn't find ourselves.
+ 2018-06-14  Richard Biener  <rguenther@suse.de>
+       PR ipa/86124
+       * tree-ssa-struct-alias.c (create_variable_info_for): Handle
+       NULL cgraph_node.
+ 2018-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       * config/rtems.h (STDINT_LONG32): Define.
+ 2018-06-13  Matthew Fortune  <matthew.fortune@mips.com>
+           Prachi Godbole  <prachi.godbole@imgtec.com>
  
- 2016-09-20  David Edelsohn  <dje.gcc@gmail.com>
+       * config/mips/mips-cpus.def: Define P6600.
+       * config/mips/mips-tables.opt: Regenerate.
+       * config/mips/mips.c (mips_ucbranch_type): New enum.
+       (mips_rtx_cost_data): Add support for P6600.
+       (mips_issue_rate): Likewise.
+       (mips_multipass_dfa_lookahead): Likewise.
+       (mips_avoid_hazard): Likewise.
+       (mips_reorg_process_insns): Likewise.
+       (mips_classify_branch_p6600): New function.
+       * config/mips/mips.h (TUNE_P6600): New define.
+       (MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600.
+       (ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600.
+       * config/mips/mips.md: Include p6600.md.
+       (processor): Add p6600.
+       * config/mips/p6600.md: New file.
+       * doc/invoke.texi: Add p6600 to supported architectures.
+ 2018-06-13  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/86114
+       * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS
+       of integer types.
+       * tree-ssa-strlen.c (maybe_set_strlen_range): Same.
+ 2018-06-13  Richard Biener  <rguenther@suse.de>
+       * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern):
+       Properly set vector type of the intermediate stmt.
+       * tree-vect-stmts.c (vectorizable_operation): The destination
+       var always has vectype_out type.
+ 2018-06-13  Jeff Law  <law@redhat.com>
+       * config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than
+       integer 0 for argument to print_rtl_with_bb.
+       (rl78_reorg): Likewise.
+ 2018-06-13  David Malcolm  <dmalcolm@redhat.com>
+       * config/arc/arc.c (hwloop_optimize): Strengthen local "end_label"
+       from rtx to rtx_insn *.
+       * config/bfin/bfin.c (hwloop_optimize): Likewise for local
+       "label".
+       (add_sched_insns_for_speculation): Likewise for local "target",
+       converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
+       * config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels"
+       from rtx_insn ** to rtx_code_label **.
+       (reorg_emit_nops): Likewise.
+       (c6x_reorg): Likewise for local "call_labels".
+       * config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from
+       rtx to rtx_insn *.
+       * config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to
+       rtx_code_label *, adding safe_as_a <rtx_code_label *> casts to
+       the loops over LABEL_REFS.
+       (fixup_addr_diff_vecs): Add as_a <rtx_insn *> to usage of
+       braf_label.
+       (barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
+       (get_dest_uid): Strengthen param "label" from rtx to rtx_insn *.
+       (split_branches): Strengthen local "olabel" from rtx to
+       rtx_insn *, adding a safe_as_a cast.
+       * emit-rtl.c (next_real_insn): Strengthen param from "rtx"
+       to "rtx_insn *".
+       (add_insn_after): Likewise for first two params.
+       (add_insn_before): Likewise.
+       (remove_insn): Likewise for param.
+       (emit_pattern_before_noloc): Likewise for second and third params.
+       (emit_jump_insn_before_noloc): Convert NULL_RTX to NULL.
+       (emit_call_insn_before_noloc): Likewise.
+       (emit_debug_insn_before_noloc): Strengthen "before" param from "rtx"
+       to "rtx_insn *".
+       (emit_barrier_before): Likewise.
+       (emit_label_before): Strengthen "label" param from "rtx" to
+       "rtx_code_label *".  Strengthen "before" param from "rtx" to
+       "rtx_insn *".
+       (emit_insn_after_1): Strengthen "after" param from "rtx" to
+       "rtx_insn *".
+       (emit_pattern_after_noloc): Likewise.
+       (emit_insn_after_noloc): Likewise.
+       (emit_jump_insn_after_noloc): Likewise.
+       (emit_call_insn_after_noloc): Likewise.
+       (emit_debug_insn_after_noloc): Likewise.
+       (emit_barrier_after): Likewise.
+       (emit_label_after): Likewise for both params.
+       (emit_pattern_after_setloc): Likewise for "after" param.  Convert
+       "loc" param from "int" to "location_t".
+       (emit_insn_after_setloc): Likewise.
+       (emit_jump_insn_after_setloc): Likewise.
+       (emit_call_insn_after_setloc): Likewise.
+       (emit_debug_insn_after_setloc): Likewise.
+       (emit_pattern_before_setloc): Likewise for "before" param.  Convert
+       "loc" param from "int" to "location_t".
+       (emit_pattern_before): Convert NULL_RTX to NULL.
+       (emit_insn_before_setloc): Convert "loc" param from "int" to
+       "location_t".
+       (emit_jump_insn_before_setloc): Likewise.
+       (emit_call_insn_before_setloc): Likewise.
+       (emit_debug_insn_before_setloc): Strengthen "before" param from rtx to
+       rtx_insn *.  Convert "loc" param from "int" to "location_t".
+       * rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc,
+       emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
+       Convert 3rd param from "int" to "location_t".
+       (emit_barrier_before, emit_barrier_after, next_real_insn):
+       Strengthen param from rtx to rtx_insn *.
+       (emit_label_before): Strengthen 1st param from "rtx" to
+       "rtx_code_label *".  Strengthen 2nd param from "rtx" to
+       "rtx_insn *".
+       (emit_insn_after_noloc, emit_jump_insn_after_noloc,
+       emit_call_insn_after_noloc, emit_debug_insn_after_noloc):
+       Strengthen 2nd param from "rtx" to "rtx_insn *".
+       (emit_insn_after_setloc, emit_jump_insn_after_setloc)
+       emit_call_insn_after_setloc, emit_debug_insn_after_setloc):
+       Likewise. Convert 3rd param from "int" to "location_t".
+       (emit_label_after): Strengthen 1st param from "rtx" to
+       "rtx_code_label *".
+       (next_real_insn, remove_insn): Strengthen param from "rtx" to
+       "rtx_insn *".
+       (add_insn_before, add_insn_after): Strengthen 1st and 2nd params
+       from "rtx" to "rtx_insn *".
+ 2018-06-13  Jan Hubicka  <hubicka@gcc.gnu.org>
+       * cgraph.c (cgraph_node::get_untransformed_body): Dump function
+       bodies streamed in with -Q.
+       * dumpfile.c (dump_files): Add lto-stream-out dump file.
+       * dumpfile.h (tree_dump_index): Add lto_stream_out.
+       * gimple-streamer-out.c: Include gimple-pretty-print.h
+       (output_bb): Dump stmts streamed.
+       * lto-section-out.c: Include print-tree.h
+       (lto_begin_section): Dump sections created.
+       (lto_output_decl_index): Dump decl encoded.
+       * lto-streamer-out.c: Include print-tree.h
+       (create_output_block): Dump output block created.
+       (DFS::DFS_write_tree_body): Dump DFS SCCs streamed.
+       (output_function): Dump function output.
+       (output_constructor): Dump constructor streamed.
+       (write_global_stream): Output indexes encoded.
+       (produce_asm_for_decls): Dump streams encoded.
+       * lto-streamer.c (streamer_dump_file): New global var.
+       * lto-streamer.h (streamer_dump_file): Declare.
+       * passes.c (ipa_write_summaries): Initialize streamer dump.
+       * varpool.c (varpool_node::get_constructor): Dump constructors streamed
+       in.
+ 2018-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+       PR target/86048
+       * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative
+       offsets for register save directives.  Emit a second batch of save
+       directives, if need be, when the function accesses prior frames.
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/fpu.md (fmasf4): Force operand to register.
+       (fnmasf4): Likewise.
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc-protos.h (arc_pad_return): Remove.
+       * config/arc/arc.c (machine_function): Remove force_short_suffix
+       and size_reason.
+       (arc_print_operand): Adjust printing of '&'.
+       (arc_verify_short): Remove conditional printing of short suffix.
+       (arc_final_prescan_insn): Remove reference to size_reason.
+       (pad_return): New function.
+       (arc_reorg): Call pad_return.
+       (arc_pad_return): Remove.
+       (arc_init_machine_status): Remove reference to force_short_suffix.
+       * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE.
+       (attr length): When attribute iscompact is true force to 2
+       regardless; in the case of maybe check if we want to force the
+       instruction to have 4 bytes length.
+       (nopv): Change it to generate 4 byte long nop as well.
+       (blockage): New pattern.
+       (simple_return): Remove call to arc_pad_return.
+       (p_return_i): Likewise.
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/builtins.def (SYNC): SYNC instruction is valid on all
+       ARC cores.
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.c (atomic_exchangesi): EX instruction is default
+       for ARC700 and ARCv2.
+ 2018-06-13  Chenghua Xu <paul.hua.gm@gmail.com>
+       PR target/86076
+       * config/mips/loongson.md (vec_setv4hi): Gen_lowpart for
+       operands[2] instead of operands[1].
+ 2018-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * lra-constraints.c (simplify_operand_subreg): In the paradoxical
+       case, check whether the outer register overlaps an unallocatable
+       register, not just whether it fits the required class.
+ 2018-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * poly-int.h (can_div_trunc_p): Add new overload in which all values
+       are poly_ints.
+       * alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p.
+       (memrefs_conflict_p): Likewise.
+       (init_alias_analysis): Likewise.
+       * cfgexpand.c (expand_debug_expr): Likewise.
+       * combine.c (combine_simplify_rtx, force_int_to_mode): Likewise.
+       * cse.c (fold_rtx): Likewise.
+       * explow.c (adjust_stack, anti_adjust_stack): Likewise.
+       * expr.c (emit_block_move_hints): Likewise.
+       (clear_storage_hints, push_block, emit_push_insn): Likewise.
+       (store_expr_with_bounds, reduce_to_bit_field_precision): Likewise.
+       (emit_group_load_1): Use rtx_to_poly_int64 for group offsets.
+       (emit_group_store): Likewise.
+       (find_args_size_adjust): Use strip_offset.  Use rtx_to_poly_int64
+       to read the PRE/POST_MODIFY increment.
+       * calls.c (store_one_arg): Use strip_offset.
+       * rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to
+       poly_int_rtx_p.
+       (set_noop_p): Use rtx_to_poly_int64 for the elements selected
+       by a VEC_SELECT.
+       * simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset.
+       (simplify_binary_operation_1): Extend CONST_INT handling to
+       poly_int_rtx_p.
+       * var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather
+       than a HOST_WIDE_INT.
+       (hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to
+       poly_int64.
+       (adjust_mems, add_stores): Update accodingly.
+       (vt_canonicalize_addr): Track polynomial offsets.
+       (emit_note_insn_var_location): Likewise.
+       (vt_add_function_parameter): Likewise.
+       (vt_initialize): Likewise.
+ 2018-06-12  Jeff Law  <law@redhat.com>
+       * config.gcc (alpha*-*-freebsd*): Remove.
+       * config/alpha/freebsd.h: Remove.
+ 2018-06-12  David Malcolm  <dmalcolm@redhat.com>
+       PR other/69968
+       * spellcheck-tree.c (levenshtein_distance): Rename to...
+       (get_edit_distance): ...this, and update for underlying renaming.
+       * spellcheck-tree.h (levenshtein_distance): Rename to...
+       (get_edit_distance): ...this.
+       * spellcheck.c (levenshtein_distance): Rename to...
+       (get_edit_distance): ...this.  Convert from Levenshtein distance
+       to Damerau-Levenshtein distance by supporting transpositions of
+       adjacent characters.  Rename "v1" to "v_next" and "v0" to
+       "v_one_ago".
+       (selftest::levenshtein_distance_unit_test_oneway): Rename to...
+       (selftest::test_edit_distance_unit_test_oneway): ...this, and
+       update for underlying renaming.
+       (selftest::levenshtein_distance_unit_test): Rename to...
+       (selftest::test_get_edit_distance_unit): ...this, and update for
+       underlying renaming.
+       (selftest::test_find_closest_string): Add example from PR 69968
+       where transposition helps
+       (selftest::test_metric_conditions): Update for renaming.
+       (selftest::test_metric_conditions): Likewise.
+       (selftest::spellcheck_c_tests): Likewise.
+       * spellcheck.h (levenshtein_distance): Rename both overloads to...
+       (get_edit_distance): ...this.
+       (best_match::consider): Update for renaming.
  
-       * dbxout.c (xcoff_debug_hooks):  Add filename parameter to
-       early_finish hook.
+ 2018-06-12  Martin Sebor  <msebor@redhat.com>
  
- 2016-09-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       PR tree-optimization/85259
+       * builtins.c (compute_objsize): Handle constant offsets.
+       * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return
+       true iff a warning has been issued.
+       * gimple.h (gimple_nonartificial_location): New function.
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call
+       gimple_nonartificial_location and handle -Wno-system-headers.
+       (handle_builtin_stxncpy): Same.
  
-       PR target/71395
-       * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
-       inits on power8 and above, use the VMRGEW instruction instead of a
-       permute.
+ 2018-06-12  Martin Sebor  <msebor@redhat.com>
  
-       * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
-       (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
-       initialization.
+       PR c/85931
+       * fold-const.c (operand_equal_p): Handle SAVE_EXPR.
  
- 2016-09-20  Tamar Christina  <tamar.christina@arm.com>
+ 2018-06-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
  
-       * config/aarch64/arm_neon.h
-       (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
-       (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
-       (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
+       BUILTIN_VEC_XST entries for pointer to double and long long.
  
- 2016-09-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 2018-06-12  H.J. Lu  <hongjiu.lu@intel.com>
  
-       * config/var/vax.h (ELIMINABLE_REGS): Define.
-       (INITIAL_ELIMINATION_OFFSET): Define.
+       PR target/85990
+       * config/i386/gnu-user.h (TARGET_THREAD_SPLIT_STACK_OFFSET):
+       Update comments.
+       * config/i386/gnu-user64.h (TARGET_THREAD_SPLIT_STACK_OFFSET):
+       Likewise.
  
- 2016-09-20  Jakub Jelinek  <jakub@redhat.com>
+ 2018-06-12  Martin Liska  <mliska@suse.cz>
  
-       PR middle-end/77624
-       * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
-       cast to void * if the cast is from some other pointer type.
+       * doc/options.texi: Document IntegerRange.
  
- 2016-09-20  Richard Biener  <rguenther@suse.de>
+ 2018-06-12  Martin Liska  <mliska@suse.cz>
  
-       PR tree-optimization/77646
-       * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
-       a VDEF.
+       * config/i386/i386.opt: Make MPX-related options as Deprecated.
+       * opt-functions.awk: Handle Deprecated flag.
+       * opts-common.c (decode_cmdline_option): Handle cl_deprecated
+         and report error.
+       (read_cmdline_option): Report warning for a deprecated option.
+       * opts.h (struct cl_option): Add new field cl_deprecated.
+       (CL_ERR_DEPRECATED): New.
  
- 2016-09-20  Tamar Christina  <tamar.christina@arm.com>
+ 2018-06-12  Martin Liska  <mliska@suse.cz>
  
-       * config/aarch64/arm_neon.h: Add gnu_inline and artificial
-       attributes to all inlined functions and make them extern.
+       * doc/options.texi: Document Deprecated option flag.
  
- 2016-09-20  Richard Biener  <rguenther@suse.de>
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
-       hook.
-       * debug.c (do_nothing_debug_hooks): Adjust.
-       * dbxout.c (dbx_debug_hooks): Likewise.
-       * sdbout.c (sdb_debug_hooks): Likewise.
-       * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
-       (dwarf2out_finish): Move producer, filename and
-       path annotation ...
-       (dwarf2out_early_finish): ... here.  Remove in_lto_p special-casing.
-       * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
+       * config/arc/arc-arch.h (arc_extras): New enum.
+       (arc_cpu_t):Add field extra.
+       (arc_cpu_types): Consider the extras.
+       * config/arc/arc-cpus.def: Add extras info.
+       * config/arc/arc-opts.h (processor_type): Consider extra field.
+       * config/arc/arc.c (arc_override_options): Handle extra field.
  
- 2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       PR c++/77434
-       * doc/invoke.texi: Document -Wint-in-bool-context.
+       * config/arc/arc-arch.h: Update ARC_OPTX macro.
+       * config/arc/arc-options.def (ARC_OPTX): Introduce a new doc
+       field.
+       * config/arc/arc.c (arc_init): Update pic warning.
+       (irq_range): Update irq range parsing warnings.
+       (arc_override_options): Update various warning messages.
+       (arc_handle_aux_attribute): Likewise.
+ 2018-06-12  Robert Suchanek  <robert.suchanek@mips.com>
+       * config/mips/i6400.md (i6400_fpu_fadd): Remove frint.
+ 2018-06-12  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+       * doc/sourcebuild.texi: Document usage of line number 0 in verify
+       compiler messages directives.
+ 2018-06-12  Matthew Fortune  <mfortune@gmail.com>
+       * config/mips/mips-cpus.def: New MIPS_CPU for i6500.
+       * config/mips/mips-tables.opt: Regenerate.
+       * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as
+       mips64r6.
+       * doc/invoke.texi: Document -march=i6500.
+ 2018-06-12  Prachi Godbole  <prachi.godbole@imgtec.com>
+       * config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit.
+       (i6400_gpmul): Add cpu_unit.
+       (i6400_gpdiv): Likewise.
+       (i6400_msa_add_d): Update reservations.
+       (i6400_msa_int_add) Likewise.
+       (i6400_msa_short_logic3) Likewise.
+       (i6400_msa_short_logic2) Likewise.
+       (i6400_msa_short_logic) Likewise.
+       (i6400_msa_move) Likewise.
+       (i6400_msa_cmp) Likewise.
+       (i6400_msa_short_float2) Likewise.
+       (i6400_msa_div_d) Likewise.
+       (i6400_msa_long_logic1) Likewise.
+       (i6400_msa_long_logic2) Likewise.
+       (i6400_msa_mult) Likewise.
+       (i6400_msa_long_float2) Likewise.
+       (i6400_msa_long_float4) Likewise.
+       (i6400_msa_long_float5) Likewise.
+       (i6400_msa_long_float8) Likewise.
+       (i6400_fpu_fadd): Include frint type.
+       (i6400_fpu_store): New define_insn_reservation.
+       (i6400_fpu_load): Likewise.
+       (i6400_fpu_move): Likewise.
+       (i6400_fpu_fcmp): Likewise.
+       (i6400_fpu_fmadd): Likewise.
+       (i6400_int_mult): Include imul3nc type and update reservation.
+       (i6400_int_div): Include idiv3 type and update reservation.
+       (i6400_int_load): Update to check type not move_type.
+       (i6400_int_store): Likewise.
+       (i6400_int_prefetch): Set zero latency.
+ 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+       * gcc.c: Document new %@{...} sequence.
+       (LINK_COMMAND_SPEC): Use it for the -L switches.
+       (cpp_unique_options): Use it for the -I switches.
+       (at_file_argbuf): New global variable.
+       (in_at_file): Likewise.
+       (alloc_args): Create at_file_argbuf.
+       (clear_args): Truncate at_file_argbuf.
+       (store_arg): If in_at_file, push the argument onto at_file_argbuf.
+       (open_at_file): New function.
+       (close_at_file): Likewise.
+       (create_at_file): Delete.
+       (do_spec_1) <'i'>: Use open_at_file/close_at_file.
+       <'o'>: Likewise.
+       <'@'>: New case.
+       (validate_switches_from_spec): Deal with %@{...} sequence.
+       (validate_switches): Likewise.
+       (driver::finalize): Call clear_args.
+ 2018-06-11  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
+       * config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0.
+ 2018-06-11  Martin Sebor  <msebor@redhat.com>
+       * doc/invoke.texi (-Wall): List -Wc++17-compat.
+       (Wno-class-memaccess): Add @opindex.
+       (Wno-templates, Wno-multiple-inheritance): Same.
+       (Wno-virtual-inheritance, Wno-namespaces): Same.
+       (Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same.
+       (Wno-format-overflow, Wno-format-truncation): Same.
+       (Wno-unused-local-typedefs, Walloc-size-larger-than): Same.
+       (Wno-alloc-size-larger-than, Wframe-larger-than): Same
+       (Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same.
+       (Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same.
+       (Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same.
+       (Wno-misspelled-isr): Same.
+ 2018-06-11  Martin Sebor  <msebor@redhat.com>
+       * PR tree-optimization/86083
+       * tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p.
+ 2018-06-11 Zhouyi Zhou <zhouzhouyi@gmail.com>
+       * tree-eh.c (lower_eh_constructs_2): Add a comma to comment.
+ 2018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR target/85755
+       * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
+       on the correct operand.
+       (*movdi_internal64): Ditto.
+ 2018-06-11  Martin Liska  <mliska@suse.cz>
+         PR tree-optimization/86089
+       * tree-ssa-strlen.c (get_string_length): Move back removed hunk.
+ 2018-06-11  Julia Koval  <julia.koval@intel.com>
+       * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128)
+       _mm_aesenc_epi128, _mm_aesenclast_epi128: Remove.
+       * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
+ 2018-06-11  Olivier Hainque  <hainque@adacore.com>
+       * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83
+       for Ada with strict dwarf2.
+ 2018-06-08  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/85755
+       * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC
+       addresses.
  
-       PR middle-end/77421
-       * dwarf2out.c (output_loc_operands): Fix an assertion.
+ 2018-06-08  Jan Hubicka  <hubicka@ucw.cz>
+       * dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4.
+ 2018-06-08  David Edelsohn  <dje.gcc@gmail.com>
+       * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if
+       TARGET_ELF.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * tree-cfg.h (debug_function): Fix argument type to match
+         implementation.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility):
+         Remove usage of MPX-related (and removed) fields.
+       * config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise.
+ 2018-06-08  David Malcolm  <dmalcolm@redhat.com>
+       * cfg.c (debug): Use TDF_NONE rather than 0.
+       * cfghooks.c (debug): Likewise.
+       * dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP.
+       (struct dump_option_value_info): Convert to...
+       (struct kv_pair): ...this template type.
+       (dump_options): Convert to kv_pair<dump_flags_t>; use TDF_NONE
+       rather than 0.
+       (optinfo_verbosity_options): Likewise.
+       (optgroup_options): Convert to kv_pair<optgroup_flags_t>; use
+       OPTGROUP_NONE.
+       (gcc::dump_manager::dump_register): Use optgroup_flags_t rather
+       than int for "optgroup_flags" param.
+       (dump_generic_expr_loc): Use dump_flags_t rather than int for
+       "dump_kind" param.
+       (dump_dec): Likewise.
+       (dump_finish): Use TDF_NONE rather than 0.
+       (gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t
+       rather than int for "optgroup_flags" param.  Use TDF_NONE rather
+       than 0.  Update for change to option_ptr.
+       (opt_info_switch_p_1): Convert "optgroup_flags" param from int *
+       to optgroup_flags_t *.  Use TDF_NONE and OPTGROUP_NONE rather than
+       0.  Update for changes to optinfo_verbosity_options and
+       optgroup_options.
+       (opt_info_switch_p): Convert optgroup_flags from int to
+       optgroup_flags_t.
+       (dump_basic_block): Use dump_flags_t rather than int
+       for "dump_kind" param.
+       * dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS,
+       TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID)
+       TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME,
+       TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB,
+       TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS,
+       MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG,
+       TDF_NONE): Convert from macros to...
+       (enum dump_flag): ...this new enum.
+       (dump_flags_t): Update to use enum.
+       (operator|, operator&, operator~, operator|=, operator&=):
+       Implement for dump_flags_t.
+       (OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE,
+       OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL):
+       Convert from macros to...
+       (enum optgroup_flag): ...this new enum.
+       (optgroup_flags_t): New typedef.
+       (operator|, operator|=): Implement for optgroup_flags_t.
+       (struct dump_file_info): Convert field "alt_flags" to
+       dump_flags_t.  Convert field "optgroup_flags" to
+       optgroup_flags_t.
+       (dump_basic_block): Use dump_flags_t rather than int for param.
+       (dump_generic_expr_loc): Likewise.
+       (dump_dec): Likewise.
+       (dump_register): Convert param "optgroup_flags" to
+       optgroup_flags_t.
+       (opt_info_enable_passes): Likewise.
+       * early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather
+       than 0.
+       * gimple-pretty-print.c (debug): Likewise.
+       * gimple-ssa-store-merging.c (bswap_replace): Likewise.
+       (merged_store_group::apply_stores): Likewise.
+       * gimple-ssa-strength-reduction.c (insert_initializers): Likewise.
+       * gimple.c (verify_gimple_pp): Likewise.
+       * graphite-poly.c (print_pbb_body): Likewise.
+       * passes.c (pass_manager::register_one_dump_file): Convert
+       local "optgroup_flags" to optgroup_flags_t.
+       * print-tree.c (print_node): Use TDF_NONE rather than 0.
+       (debug): Likewise.
+       (debug_body): Likewise.
+       * tree-pass.h (struct pass_data): Convert field "optgroup_flags"
+       to optgroup_flags_t.
+       * tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather
+       than 0.
+       * tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise.
+       (convert_mult_to_fma): Likewise.
+       * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
+       * tree-ssa-sccvn.c (vn_eliminate): Likewise.
+       * tree-vect-data-refs.c (dump_lower_bound): Convert param
+       "dump_kind" to dump_flags_t.
  
- 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
+ 2018-06-08  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
-       (CR_DECIMAL_DIG): New macro.
+       * config/rs6000/rs6000.c (min, max): Delete.
  
- 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
+ 2018-06-08  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
-       element.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of
+       -mabi=spe and -mabi=no-spe.
  
- 2016-09-19  Vladimir Makarov  <vmakarov@redhat.com>
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
  
-       PR rtl-optimization/77416
-       * lra-remat.c (operand_to_remat): Process hard coded insn
-       registers.
+       * ipa-pure-const.c (propagate_pure_const): Use ::get at places
+         where we expect an existing summary.
  
- 2016-09-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
  
-       * simplify-rtx.c (simplify_relational_operation_1): Add transformation
-       (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
+       * ipa-inline-analysis.c (simple_edge_hints): Use ::get method.
+       * ipa-inline.h (estimate_edge_growth): Likewise.
  
- 2016-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
  
-       * target.def (lra_p): Wordsmithing.
-       * doc/tm.texi: Regenerate.
+       * cgraph.c (function_version_hasher::hash): Use
+       cgraph_node::get_uid ().
+       (function_version_hasher::equal):
+       * cgraph.h (cgraph_node::get_uid): New method.
+       * ipa-inline.c (update_caller_keys): Use
+       cgraph_node::get_uid ().
+       (update_callee_keys): Likewise.
+       * ipa-utils.c (searchc): Likewise.
+       (ipa_reduced_postorder): Likewise.
+       * lto-cgraph.c (input_node): Likewise.
+       * passes.c (is_pass_explicitly_enabled_or_disabled): Likewise.
+       * symbol-summary.h (symtab_insertion): Likewise.
+       (symtab_removal): Likewise.
+       (symtab_duplication): Likewise.
+       * tree-pretty-print.c (dump_function_header): Likewise.
+       * tree-sra.c (convert_callers_for_node): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * cgraph.c (symbol_table::create_edge): Always assign a new
+       unique number.
+       (symbol_table::free_edge): Do not recycle numbers.
+       * cgraph.h (cgraph_edge::get): New method.
+       * symbol-summary.h (symtab_removal): Use it.
+       (symtab_duplication): Likewise.
+       (call_summary::hashable_uid): Remove.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * ipa-inline-analysis.c (inline_edge_removal_hook): Remove.
+       (initialize_growth_caches): Remove.
+       (free_growth_caches): Likewise.
+       (do_estimate_edge_time): Use edge_growth_cache.
+       (do_estimate_edge_size): Likewise.
+       (do_estimate_edge_hints): Likewise.
+       * ipa-inline.c (reset_edge_caches): Likewise.
+       (recursive_inlining): Likewise.
+       (inline_small_functions): Likewise.
+       * ipa-inline.h (initialize_growth_caches): Remove.
+       (estimate_edge_size): Likewise.
+       (estimate_edge_time): Likewise.
+       (estimate_edge_hints): Likewise.
+       (reset_edge_growth_cache): Likewise.
+       * symbol-summary.h (call_summary::remove): New method.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * ipa-cp.c (class edge_clone_summary): New summary.
+       (grow_edge_clone_vectors): Remove.
+       (ipcp_edge_duplication_hook): Remove.
+       (class edge_clone_summary_t): New call_summary class.
+       (ipcp_edge_removal_hook): Remove.
+       (edge_clone_summary_t::duplicate): New function.
+       (get_next_cgraph_edge_clone): Use edge_clone_summaries.
+       (create_specialized_node): Likewise.
+       (ipcp_driver): Initialize edge_clone_summaries and do not
+       register hooks.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * symbol-summary.h (get): New function.
+       (call_summary::m_initialize_when_cloning): New class member.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * cgraph.c (cgraph_node::remove): Do not recycle uid.
+       * cgraph.h (symbol_table::release_symbol): Do not pass uid.
+       (symbol_table::allocate_cgraph_symbol): Do not set uid.
+       * passes.c (uid_hash_t): Record removed_nodes by their uids.
+       (remove_cgraph_node_from_order): Use the removed_nodes set.
+       (do_per_function_toporder): Likwise.
+       * symbol-summary.h (symtab_insertion): Use cgraph_node::uid
+       instead of summary_uid.
+       (symtab_removal): Likewise.
+       (symtab_duplication): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * ipa-cp.c (ipcp_store_bits_results): Use
+       ipcp_transformation_sum.
+       (ipcp_store_vr_results): Likewise.
+       * ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed
+       to ...
+       (ipcp_transformation_initialize): ... this.
+       (ipa_set_node_agg_value_chain):
+       (ipa_node_params_t::duplicate): Use ipcp_transformation_sum.
+       (write_ipcp_transformation_info): Likewise.
+       (read_ipcp_transformation_info): Likewise.
+       (ipcp_update_bits): Likewise.
+       (ipcp_update_vr): Likewise.
+       (ipcp_transform_function): Likewise.
+       * ipa-prop.h: Rename ipcp_transformation_summary to
+       ipcp_transformation.
+       (class ipcp_transformation_t): New function summary.
+       (ipcp_get_transformation_summary): Use ipcp_transformation_sum.
+       (ipa_get_agg_replacements_for_node): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * ipa-pure-const.c (struct funct_state_d): Do it class instead
+       of struct.
+       (class funct_state_summary_t): New function_summary class.
+       (has_function_state): Remove.
+       (get_function_state): Likewise.
+       (set_function_state): Likewise.
+       (add_new_function): Likewise.
+       (funct_state_summary_t::insert): New function.
+       (duplicate_node_data): Remove.
+       (remove_node_data): Remove.
+       (funct_state_summary_t::duplicate): New function.
+       (register_hooks): Create new funct_state_summaries.
+       (pure_const_generate_summary): Use it.
+       (pure_const_write_summary): Likewise.
+       (pure_const_read_summary): Likewise.
+       (propagate_pure_const): Likewise.
+       (propagate_nothrow): Likewise.
+       (dump_malloc_lattice): Likewise.
+       (propagate_malloc): Likewise.
+       (execute): Do not register hooks, just remove summary
+       instead.
+       (pass_ipa_pure_const::pass_ipa_pure_const): Simplify
+       constructor.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * ipa-reference.c (remove_node_data): Remove.
+       (duplicate_node_data): Likewise.
+       (class ipa_ref_var_info_summary_t): New class.
+       (class ipa_ref_opt_summary_t): Likewise.
+       (get_reference_vars_info): Use ipa_ref_var_info_summaries.
+       (get_reference_optimization_summary): Use
+       ipa_ref_opt_sum_summaries.
+       (set_reference_vars_info): Remove.
+       (set_reference_optimization_summary): Likewise.
+       (ipa_init): Create summaries.
+       (init_function_info): Use function summary.
+       (ipa_ref_opt_summary_t::duplicate): New function.
+       (ipa_ref_opt_summary_t::remove): New function.
+       (get_read_write_all_from_node): Fix GNU coding style.
+       (propagate): Use function summary.
+       (write_node_summary_p): Fix GNU coding style.
+       (stream_out_bitmap): Likewise.
+       (ipa_reference_read_optimization_summary): Use function summary.
+       (ipa_reference_c_finalize): Do not release hooks.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method.
+       (analyze_function_body): Extract multiple calls of get_create.
+       * ipa-inline-analysis.c (simple_edge_hints): Likewise.
+       * ipa-inline.c (recursive_inlining): Use ::get method.
+       * ipa-inline.h (estimate_edge_growth): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to
+       HSA_INVALID.
+       (hsa_function_summary::hsa_function_summary): Use the new enum
+       value.
+       (hsa_gpu_implementation_p): Use hsa_summaries::get.
+       * hsa-gen.c (hsa_get_host_function): Likewise.
+       (get_brig_function_name): Likewise.
+       * ipa-hsa.c (process_hsa_functions): Likewise.
+       (ipa_hsa_write_summary): Likewise.
+       * symbol-summary.h (symtab_duplication): Use ::get function/
+       (get): New function.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * config/i386/i386.c (ix86_can_inline_p): Use get_create instead
+       of get.
+       * hsa-common.c (hsa_summary_t::link_functions): Likewise.
+       (hsa_register_kernel): Likewise.
+       * hsa-common.h (hsa_gpu_implementation_p): Likewise.
+       * hsa-gen.c (hsa_get_host_function): Likewise.
+       (get_brig_function_name): Likewise.
+       (generate_hsa): Likewise.
+       (pass_gen_hsail::execute): Likewise.
+       * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
+       (devirtualization_time_bonus): Likewise.
+       (ipcp_propagate_stage): Likewise.
+       * ipa-fnsummary.c (redirect_to_unreachable): Likewise.
+       (edge_set_predicate): Likewise.
+       (evaluate_conditions_for_known_args): Likewise.
+       (evaluate_properties_for_edge): Likewise.
+       (ipa_fn_summary::reset): Likewise.
+       (ipa_fn_summary_t::duplicate): Likewise.
+       (dump_ipa_call_summary): Likewise.
+       (ipa_dump_fn_summary): Likewise.
+       (analyze_function_body): Likewise.
+       (compute_fn_summary): Likewise.
+       (estimate_edge_devirt_benefit): Likewise.
+       (estimate_edge_size_and_time): Likewise.
+       (estimate_calls_size_and_time): Likewise.
+       (estimate_node_size_and_time): Likewise.
+       (inline_update_callee_summaries): Likewise.
+       (remap_edge_change_prob): Likewise.
+       (remap_edge_summaries): Likewise.
+       (ipa_merge_fn_summary_after_inlining): Likewise.
+       (ipa_update_overall_fn_summary): Likewise.
+       (read_ipa_call_summary): Likewise.
+       (inline_read_section): Likewise.
+       (write_ipa_call_summary): Likewise.
+       (ipa_fn_summary_write): Likewise.
+       (ipa_free_fn_summary): Likewise.
+       * ipa-hsa.c (process_hsa_functions): Likewise.
+       (ipa_hsa_write_summary): Likewise.
+       (ipa_hsa_read_section): Likewise.
+       * ipa-icf.c (sem_function::merge): Likewise.
+       * ipa-inline-analysis.c (simple_edge_hints): Likewise.
+       (do_estimate_edge_time): Likewise.
+       (estimate_size_after_inlining): Likewise.
+       (estimate_growth): Likewise.
+       (growth_likely_positive): Likewise.
+       * ipa-inline-transform.c (clone_inlined_nodes): Likewise.
+       (inline_call): Likewise.
+       * ipa-inline.c (caller_growth_limits): Likewise.
+       (can_inline_edge_p): Likewise.
+       (can_inline_edge_by_limits_p): Likewise.
+       (compute_uninlined_call_time): Likewise.
+       (compute_inlined_call_time): Likewise.
+       (want_inline_small_function_p): Likewise.
+       (edge_badness): Likewise.
+       (update_caller_keys): Likewise.
+       (update_callee_keys): Likewise.
+       (recursive_inlining): Likewise.
+       (inline_small_functions): Likewise.
+       (inline_to_all_callers_1): Likewise.
+       (dump_overall_stats): Likewise.
+       (early_inline_small_functions): Likewise.
+       (early_inliner): Likewise.
+       * ipa-inline.h (estimate_edge_growth): Likewise.
+       * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
+       * ipa-prop.h (IPA_NODE_REF): Likewise.
+       (IPA_EDGE_REF): Likewise.
+       * ipa-pure-const.c (malloc_candidate_p): Likewise.
+       (propagate_malloc): Likewise.
+       * ipa-split.c (execute_split_functions): Likewise.
+       * symbol-summary.h: Rename get to get_create.
+       (get): Likewise.
+       (get_create): Likewise.
+       * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * symbol-summary.h (release): Move definition out of class
+       declaration.
+       (symtab_removal): Likewise.
+       (symtab_duplication): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * symbol-summary.h (function_summary): Move constructor
+       implementation out of class declaration.
+       (release): Likewise.
+       (symtab_insertion): Likewise.
+       (symtab_removal): Likewise.
+       (symtab_duplication): Likewise.
+       (get): Likewise.
+ 2018-06-08  Martin Liska  <mliska@suse.cz>
+       * Makefile.in: Remove support for MPX (macros, related functions,
+       fields in cgraph_node, ...).
+       * builtin-types.def (BT_BND): Likewise.
+       (BT_FN_BND_CONST_PTR): Likewise.
+       (BT_FN_CONST_PTR_BND): Likewise.
+       (BT_FN_VOID_PTR_BND): Likewise.
+       (BT_FN_BND_CONST_PTR_SIZE): Likewise.
+       (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise.
+       * builtins.c (expand_builtin_memcpy_with_bounds): Likewise.
+       (expand_builtin_mempcpy_with_bounds): Likewise.
+       (expand_builtin_memset_with_bounds): Likewise.
+       (expand_builtin_memset_args): Likewise.
+       (std_expand_builtin_va_start): Likewise.
+       (expand_builtin): Likewise.
+       (expand_builtin_with_bounds): Likewise.
+       * builtins.def (DEF_BUILTIN_CHKP): Likewise.
+       (DEF_LIB_BUILTIN_CHKP): Likewise.
+       (DEF_EXT_LIB_BUILTIN_CHKP): Likewise.
+       (DEF_CHKP_BUILTIN): Likewise.
+       (BUILT_IN_MEMCPY): Likewise.
+       (BUILT_IN_MEMMOVE): Likewise.
+       (BUILT_IN_MEMPCPY): Likewise.
+       (BUILT_IN_MEMSET): Likewise.
+       (BUILT_IN_STPCPY): Likewise.
+       (BUILT_IN_STRCAT): Likewise.
+       (BUILT_IN_STRCHR): Likewise.
+       (BUILT_IN_STRCPY): Likewise.
+       (BUILT_IN_STRLEN): Likewise.
+       (BUILT_IN_MEMCPY_CHK): Likewise.
+       (BUILT_IN_MEMMOVE_CHK): Likewise.
+       (BUILT_IN_MEMPCPY_CHK): Likewise.
+       (BUILT_IN_MEMSET_CHK): Likewise.
+       (BUILT_IN_STPCPY_CHK): Likewise.
+       (BUILT_IN_STRCAT_CHK): Likewise.
+       (BUILT_IN_STRCPY_CHK): Likewise.
+       * calls.c (store_bounds): Likewise.
+       (emit_call_1): Likewise.
+       (special_function_p): Likewise.
+       (maybe_warn_nonstring_arg): Likewise.
+       (initialize_argument_information): Likewise.
+       (finalize_must_preallocate): Likewise.
+       (compute_argument_addresses): Likewise.
+       (expand_call): Likewise.
+       * cfgexpand.c (expand_call_stmt): Likewise.
+       (expand_return): Likewise.
+       (expand_gimple_stmt_1): Likewise.
+       (pass_expand::execute): Likewise.
+       * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
+       (cgraph_node::remove): Likewise.
+       (cgraph_node::dump): Likewise.
+       (cgraph_node::verify_node): Likewise.
+       * cgraph.h (chkp_function_instrumented_p): Likewise.
+       (symtab_node::get_alias_target): Likewise.
+       (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise.
+       (cgraph_local_p): Likewise.
+       * cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise.
+       (cgraph_edge::rebuild_references): Likewise.
+       * cgraphunit.c (varpool_node::finalize_decl): Likewise.
+       (walk_polymorphic_call_targets): Likewise.
+       (cgraph_node::expand_thunk): Likewise.
+       (symbol_table::output_weakrefs): Likewise.
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise.
+       (ix86_handle_option): Likewise.
+       * config/i386/constraints.md: Likewise.
+       * config/i386/i386-builtin-types.def (BND): Likewise.
+       (VOID): Likewise.
+       (PVOID): Likewise.
+       (ULONG): Likewise.
+       * config/i386/i386-builtin.def (BDESC_END): Likewise.
+       (BDESC_FIRST): Likewise.
+       (BDESC): Likewise.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Likewise.
+       * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise.
+       * config/i386/i386.c (enum reg_class): Likewise.
+       (ix86_target_string): Likewise.
+       (ix86_option_override_internal): Likewise.
+       (ix86_conditional_register_usage): Likewise.
+       (ix86_valid_target_attribute_inner_p): Likewise.
+       (ix86_set_indirect_branch_type): Likewise.
+       (ix86_set_current_function): Likewise.
+       (ix86_function_arg_regno_p): Likewise.
+       (init_cumulative_args): Likewise.
+       (ix86_function_arg_advance): Likewise.
+       (ix86_function_arg): Likewise.
+       (ix86_pass_by_reference): Likewise.
+       (ix86_function_value_regno_p): Likewise.
+       (ix86_function_value_1): Likewise.
+       (ix86_function_value_bounds): Likewise.
+       (ix86_return_in_memory): Likewise.
+       (ix86_setup_incoming_vararg_bounds): Likewise.
+       (ix86_va_start): Likewise.
+       (indirect_thunk_need_prefix): Likewise.
+       (print_reg): Likewise.
+       (ix86_print_operand): Likewise.
+       (ix86_expand_call): Likewise.
+       (ix86_output_function_return): Likewise.
+       (reg_encoded_number): Likewise.
+       (BDESC_VERIFYS): Likewise.
+       (ix86_init_mpx_builtins): Likewise.
+       (ix86_init_builtins): Likewise.
+       (ix86_emit_cmove): Likewise.
+       (ix86_emit_move_max): Likewise.
+       (ix86_expand_builtin): Likewise.
+       (ix86_builtin_mpx_function): Likewise.
+       (ix86_get_arg_address_for_bt): Likewise.
+       (ix86_load_bounds): Likewise.
+       (ix86_store_bounds): Likewise.
+       (ix86_load_returned_bounds): Likewise.
+       (ix86_store_returned_bounds): Likewise.
+       (ix86_class_likely_spilled_p): Likewise.
+       (ix86_hard_regno_mode_ok): Likewise.
+       (x86_order_regs_for_local_alloc): Likewise.
+       (ix86_mitigate_rop): Likewise.
+       (ix86_bnd_prefixed_insn_p): Likewise.
+       (ix86_mpx_bound_mode): Likewise.
+       (ix86_make_bounds_constant): Likewise.
+       (ix86_initialize_bounds): Likewise.
+       (TARGET_LOAD_BOUNDS_FOR_ARG): Likewise.
+       (TARGET_STORE_BOUNDS_FOR_ARG): Likewise.
+       (TARGET_LOAD_RETURNED_BOUNDS): Likewise.
+       (TARGET_STORE_RETURNED_BOUNDS): Likewise.
+       (TARGET_CHKP_BOUND_MODE): Likewise.
+       (TARGET_BUILTIN_CHKP_FUNCTION): Likewise.
+       (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise.
+       (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise.
+       (TARGET_CHKP_INITIALIZE_BOUNDS): Likewise.
+       * config/i386/i386.h (TARGET_MPX): Likewise.
+       (TARGET_MPX_P): Likewise.
+       (VALID_BND_REG_MODE): Likewise.
+       (FIRST_BND_REG): Likewise.
+       (LAST_BND_REG): Likewise.
+       (enum reg_class): Likewise.
+       (BND_REG_P): Likewise.
+       (BND_REGNO_P): Likewise.
+       (BNDmode): Likewise.
+       (ADJUST_INSN_LENGTH): Likewise.
+       * config/i386/i386.md: Likewise.
+       * config/i386/i386.opt: Likewise.
+       * config/i386/linux-common.h (LIBMPX_LIBS): Likewise.
+       (defined): Likewise.
+       (LINK_MPX): Likewise.
+       (MPX_SPEC): Likewise.
+       (LIBMPX_SPEC): Likewise.
+       (LIBMPXWRAPPERS_SPEC): Likewise.
+       (CHKP_SPEC): Likewise.
+       * config/i386/predicates.md: Likewise.
+       * dbxout.c (dbxout_type): Likewise.
+       * doc/extend.texi: Likewise.
+       * doc/invoke.texi: Likewise.
+       * doc/md.texi: Likewise.
+       * doc/tm.texi: Likewise.
+       * doc/tm.texi.in: Likewise.
+       * dwarf2out.c (is_base_type): Likewise.
+       (gen_formal_types_die): Likewise.
+       (gen_subprogram_die): Likewise.
+       (gen_type_die_with_usage): Likewise.
+       (gen_decl_die): Likewise.
+       (dwarf2out_late_global_decl): Likewise.
+       * expr.c (expand_assignment): Likewise.
+       (emit_storent_insn): Likewise.
+       (store_expr_with_bounds): Likewise.
+       (store_expr): Likewise.
+       (expand_expr_real_1): Likewise.
+       * expr.h (store_expr_with_bounds): Likewise.
+       * function.c (use_register_for_decl): Likewise.
+       (struct bounds_parm_data): Likewise.
+       (assign_parms_augmented_arg_list): Likewise.
+       (assign_parm_find_entry_rtl): Likewise.
+       (assign_parm_is_stack_parm): Likewise.
+       (assign_parm_load_bounds): Likewise.
+       (assign_bounds): Likewise.
+       (assign_parms): Likewise.
+       (expand_function_start): Likewise.
+       * gcc.c (CHKP_SPEC): Likewise.
+       * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
+       * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise.
+       (wrestrict_dom_walker::check_call): Likewise.
+       * gimple.c (gimple_build_call_from_tree): Likewise.
+       * gimple.h (enum gf_mask): Likewise.
+       (gimple_call_with_bounds_p): Likewise.
+       (gimple_call_set_with_bounds): Likewise.
+       * gimplify.c (gimplify_init_constructor): Likewise.
+       * ipa-cp.c (initialize_node_lattices): Likewise.
+       (propagate_constants_across_call): Likewise.
+       (find_more_scalar_values_for_callers_subset): Likewise.
+       * ipa-hsa.c (process_hsa_functions): Likewise.
+       * ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise.
+       * ipa-icf.c (sem_function::merge): Likewise.
+       * ipa-inline.c (early_inliner): Likewise.
+       * ipa-pure-const.c (warn_function_noreturn): Likewise.
+       (warn_function_cold): Likewise.
+       (propagate_pure_const): Likewise.
+       * ipa-ref.h (enum GTY): Likewise.
+       * ipa-split.c (find_retbnd): Likewise.
+       (consider_split): Likewise.
+       (split_function): Likewise.
+       * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
+       * ipa.c (walk_polymorphic_call_targets): Likewise.
+       (symbol_table::remove_unreachable_nodes): Likewise.
+       (process_references): Likewise.
+       (cgraph_build_static_cdtor_1): Likewise.
+       * lto-cgraph.c (lto_output_node): Likewise.
+       (output_refs): Likewise.
+       (compute_ltrans_boundary): Likewise.
+       (input_overwrite_node): Likewise.
+       (input_node): Likewise.
+       (input_cgraph_1): Likewise.
+       * params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise.
+       * passes.c (pass_manager::execute_early_local_passes): Likewise.
+       (class pass_chkp_instrumentation_passes): Likewise.
+       (make_pass_chkp_instrumentation_passes): Likewise.
+       * passes.def: Likewise.
+       * rtl.h (struct GTY): Likewise.
+       (CALL_EXPR_WITH_BOUNDS_P): Likewise.
+       * stor-layout.c (layout_type): Likewise.
+       * symtab.c: Likewise.
+       * target.def: Likewise.
+       * targhooks.c (default_chkp_bound_type): Likewise.
+       (default_chkp_bound_mode): Likewise.
+       (default_builtin_chkp_function): Likewise.
+       (default_chkp_function_value_bounds): Likewise.
+       (default_chkp_make_bounds_constant): Likewise.
+       (default_chkp_initialize_bounds): Likewise.
+       * targhooks.h (default_chkp_bound_type): Likewise.
+       (default_chkp_bound_mode): Likewise.
+       (default_builtin_chkp_function): Likewise.
+       (default_chkp_function_value_bounds): Likewise.
+       (default_chkp_make_bounds_constant): Likewise.
+       (default_chkp_initialize_bounds): Likewise.
+       * toplev.c (compile_file): Likewise.
+       (process_options): Likewise.
+       * tree-core.h (DEF_BUILTIN): Likewise.
+       (DEF_BUILTIN_CHKP): Likewise.
+       * tree-inline.c (declare_return_variable): Likewise.
+       (remap_gimple_stmt): Likewise.
+       (copy_bb): Likewise.
+       (initialize_inlined_parameters): Likewise.
+       (expand_call_inline): Likewise.
+       * tree-pass.h (make_pass_ipa_chkp_versioning): Likewise.
+       (make_pass_ipa_chkp_early_produce_thunks): Likewise.
+       (make_pass_ipa_chkp_produce_thunks): Likewise.
+       (make_pass_chkp): Likewise.
+       (make_pass_chkp_opt): Likewise.
+       (make_pass_chkp_instrumentation_passes): Likewise.
+       * tree-pretty-print.c (dump_generic_node): Likewise.
+       * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
+       * tree-ssa-dce.c (propagate_necessity): Likewise.
+       (eliminate_unnecessary_stmts): Likewise.
+       * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise.
+       * tree-ssa-sccvn.h: Likewise.
+       * tree-ssa-strlen.c (get_string_length): Likewise.
+       (valid_builtin_call): Likewise.
+       (adjust_last_stmt): Likewise.
+       (handle_builtin_strchr): Likewise.
+       (handle_builtin_strcpy): Likewise.
+       (handle_builtin_stxncpy): Likewise.
+       (handle_builtin_memcpy): Likewise.
+       (handle_builtin_strcat): Likewise.
+       (strlen_check_and_optimize_stmt): Likewise.
+       * tree-stdarg.c (expand_ifn_va_arg_1): Likewise.
+       * tree-streamer-in.c: Likewise.
+       * tree-streamer.c (record_common_node): Likewise.
+       * tree.c (tree_code_size): Likewise.
+       (wide_int_to_tree_1): Likewise.
+       (type_contains_placeholder_1): Likewise.
+       (build_common_tree_nodes): Likewise.
+       * tree.def (POINTER_BOUNDS_TYPE): Likewise.
+       * tree.h (POINTER_BOUNDS_TYPE_P): Likewise.
+       (POINTER_BOUNDS_P): Likewise.
+       (BOUNDED_TYPE_P): Likewise.
+       (BOUNDED_P): Likewise.
+       (CALL_WITH_BOUNDS_P): Likewise.
+       (pointer_bounds_type_node): Likewise.
+       * value-prof.c (gimple_ic): Likewise.
+       * var-tracking.c (vt_add_function_parameters): Likewise.
+       * varasm.c (make_decl_rtl): Likewise.
+       (assemble_start_function): Likewise.
+       (output_constant): Likewise.
+       (maybe_assemble_visibility): Likewise.
+       * varpool.c (ctor_for_folding): Likewise.
+       * chkp-builtins.def: Remove.
+       * ipa-chkp.c: Remove.
+       * ipa-chkp.h: Remove.
+       * rtl-chkp.c: Remove.
+       * rtl-chkp.h: Remove.
+       * tree-chkp-opt.c: Remove.
+       * tree-chkp.c: Remove.
+       * tree-chkp.h: Remove.
+ 2018-06-07  Carl Love  <cel@us.ibm.com>
+       * gcc/config/rs6000/vsx.md (vextract_fp_from_shorth,
+       vextract_fp_from_shortl): Add BE support.
+ 2018-06-07  Paul Koning  <ni1d@arrl.net>
+       * compare-elim.c (try_merge_compare): Don't merge compare if
+       address contains a side effect.
+       (try_eliminate_compare): Likewise.
+ 2018-06-07  Olga Makhotina  <olga.makhotina@intel.com>
+       * config.gcc: Support "tremont".
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont".
+       * config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       PROCESSOR_TREMONT.
+       * config/i386/i386.c (m_TREMONT): Define.
+       (processor_target_table): Add "tremont".
+       (PTA_TREMONT): Define.
+       (ix86_lea_outperforms): Add TARGET_TREMONT.
+       (get_builtin_code_for_version): Handle PROCESSOR_TREMONT.
+       (fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT
+       and M_INTEL_GOLDMONT_PLUS.
+       (fold_builtin_cpu): Add "tremont".
+       (ix86_add_stmt_cost): Add TARGET_TREMONT.
+       (ix86_option_override_internal): Add "tremont".
+       * config/i386/i386.h (processor_costs): Define TARGET_TREMONT.
+       (processor_type): Add PROCESSOR_TREMONT.
+       * config/i386/x86-tune.def: Add m_TREMONT.
+       * doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type.
+ 2018-06-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+       * gcc/config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the
+       symbol defined for msp430i* devices to be lower case.
+       gcc/testsuite/gcc.target/msp430/
+       * msp430i-device-symbol.c: New test.
+       * msp430f-device-symbol.c: New test.
+       * msp430.h: New test header file.
+ 2018-06-07  Richard Biener  <rguenther@suse.de>
+       * graphite-sese-to-poly.c (extract_affine): Avoid unneded
+       wrapping.  Properly wrap the result of a BIT_NOT_EXPR.
+       Properly wrap signed arithmetic if overflow wraps.
+ 2018-06-07  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/69615
+       * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs
+       of a cast from a same precision integral SSA_NAME in a bb dominated
+       by first_bb, retry with rhs2 set to the rhs1 of the cast.  Don't emit
+       cast to utype if rhs2 has already a compatible type.
+ 2018-06-07  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/85935
+       * graphite-scop-detection.c (find_params_in_bb): Analyze
+       condition operands with respect to the correct loop.  Assert
+       the analysis doesn't fail.
+ 2018-06-04  Carl Love  <cel@us.ibm.com>
+       * gcc/config/rs6000/vsx.md (first_match_index_<mode>): Calculate index
+       using natural element order.  Use gen_lshrsi3 instead of gen_ashrsi3
+       as it is slightly cheaper.
+       (first_match_or_eos_index_<mode>):
+       Calculate index using natural element order.
+       (first_match_index_<mode>):
+       Calculate index using natural element order.
+       (first_match_or_eos_index_<mode>):
+       Calculate index using natural order.
+       (define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>.
+       for BE and LE modes.
+       * gcc/config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB,
+       P9V_BUILTIN_VCLZLSBB_V16QI.
+       * gcc/config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode
+       specific.
+ 2018-06-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
+       indentation and line wrap for many prototypes.  Add missing
+       @smallexample directives around block of prototypes for vec_xl and
+       vec_xst.
  
- 2016-09-19  Jakub Jelinek  <jakub@redhat.com>
-           Jan Hubicka  <jh@suse.cz>
+ 2018-06-05  Michael Meissner  <meissner@linux.ibm.com>
+       * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to
+       track if we pass or return IEEE 128-bit floating point.
+       (ieee128_mangling_gcc_8_1): New boolean to say whether to generate
+       C++ mangling that is compatible with GCC 8.1.
+       (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook.
+       (init_cumulative_args): Note if we pass or return IEEE 128-bit
+       floating point types.
+       (rs6000_function_arg_advance_1): Likewise.
+       (rs6000_mangle_type): Optionally generate mangled names that match
+       what GCC 8.1 generated for IEEE 128-bit floating point types.
+       (rs6000_globalize_decl_name): If we have an external function that
+       passes or returns IEEE 128-bit types, generate a weak reference
+       from the mangled name used in GCC 8.1 to the current mangled
+       name.
+       (rs6000_init_builtins): Make __ibm128 use the long double type if
+       long double is IBM extended double.  Make __float128 use the long
+       double type if long double is IEEE 128-bit.
+       PR target/85657
+       * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper
+       macro for __ibm128 built-in functions.
+       (PACK_IF): Add __ibm128 pack/unpack functions.
+       (UNPACK_IF): Likewise.
+       * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not
+       enable long double built-in functions if long double is IEEE
+       128-bit floating point.
+       (rs6000_invalid_builtin): Update long double built-in function
+       error message.
+       (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in
+       functions, adjust the built-in function to use the long double
+       built-in function if __ibm128 and long double are the same type.
+       * doc/extend.texi (PowerPC builtins): Update documention for
+       __builtin_{,un}pack_longdouble.  Add documentation for
+       __builtin_{,un}pack_ibm128.
+ 2018-06-06  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv.c (enum riscv_privilege_levels): New.
+       (struct machine_function): New field interrupt_mode.
+       (riscv_handle_type_attribute): New function.  Add forward declaration.
+       (riscv_attribute_table) <interrupt>: Use riscv_handle_type_attribute.
+       (riscv_expand_epilogue): Check interrupt_mode field.
+       (riscv_set_current_function): Check interrupt attribute args and
+       set interrupt_mode field.
+       * config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New.
+       (riscv_sret, riscv_uret): New.
+       * doc/extend.texi (RISC-V Function Attributes) <interrupt>: Document
+       new arguments to interrupt attribute.
+ 2018-06-06  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/63177
+       * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9.
+       Don't handle -mcpu=power8 if -mpower9-vector is also used.
+ 2018-06-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD,
+       VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses.
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
+       several redundant entries.
  
-       PR target/77587
-       * cgraph.c (cgraph_node::rtl_info): Pass &avail to
-       ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
-       Call ultimate_alias_target just once, not up to 4 times.
+ 2018-06-06  David Malcolm  <dmalcolm@redhat.com>
  
- 2016-09-19  Richard Biener  <rguenther@suse.de>
+       * config/i386/i386-protos.h (ix86_expand_call): Strengthen return
+       type from "rtx" to "rtx_insn *".
+       * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise
+       for local "call_insn", removing cast.
+       (ix86_expand_call): Likewise, introducing a "call_insn" local.
  
-       * dwarf2out.c (early_dwarf_finished): New global.
-       (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
-       is false.
-       (dwarf2out_early_finish): Set early_dwarf_finished at the end,
-       if called from LTO exit early.
-       (dwarf2out_late_global_decl): When being during the early
-       debug phase do not add locations but only const value attributes.
-       Adjust the way we generate early DIEs for LTO.
+ 2018-06-06  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-09-19  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/86066
+       * gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR
+       for BIT_INSERT_EXPR stores.
  
-       PR middle-end/77605
-       * tree-data-ref.c (analyze_subscript_affine_affine): Use the
-       proper niter to bound the loops.
+ 2018-06-06  Richard Biener  <rguenther@suse.de>
  
- 2016-09-19  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/86062
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary
+       component refs ontop
+       of to be offsetted base.
  
-       PR tree-optimization/77514
-       * tree-ssa-pre.c (create_expression_by_pieces): Optimize
-       search for folded stmt.
+ 2018-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
  
- 2016-09-17  Jan Hubicka  <hubicka@ucw.cz>
+       * gcc/config/msp430/msp430.c (msp430_attr): Allow interrupt handlers
+       to be static and remove check on interrupt attribute name.
+       gcc/testsuite/gcc.target/msp430/
+       * function-attributes-4.c: New test.
+       * static-interrupts.c: New test.
+ 2018-06-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove
+       volatile qualifier from vec_lvsl and vec_lvsr argument prototypes.
+ 2018-06-05  Steve Ellcey  <sellcey@cavium.com>
+       PR target/79924
+       * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove
+       second argument.
+       * config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd):
+       Remove second argument, change how error is called.
+       (aarch64_layout_arg): Remove second argument from
+       aarch64_err_no_fpadvsimd call.
+       (aarch64_init_cumulative_args): Ditto.
+       (aarch64_gimplify_va_arg_expr): Ditto.
+       * config/aarch64/aarch64.md (mov<mode>): Ditto.
+ 2018-06-05  Uros Bizjak  <ubizjak@gmail.com>
+       * config/i386/i386.md (simple_return_indirect_internal): New expander.
+       (*simple_return_indirect_internal<mode>): Rename from
+       simple_return_indirect_internal.  Use W mode iterator.
+       (rstorssp): New expander.
+       (*rstorssp<mode>): Rename from rstorssp.  Use P mode iterator.
+       (clrssbsy): New expander.
+       (*clrssbsy<mode>): Rename from clrssbsy.  Use P mode iterator.
+ 2018-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+       * config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to
+       __typeof__.
+       (cmse_check_pointed_object): Likewise.
+ 2018-06-05  Martin Liska  <mliska@suse.cz>
+       PR gcov-profile/47618
+       * doc/invoke.texi: Document how -fprofile-dir format
+       is extended.
+ 2018-06-05  Richard Biener  <rguenther@suse.de>
+       * tree-cfgcleanup.c (cleanup_control_flow_pre): For edge
+       removal pretend DOM info isn't available so we do not update
+       it and only remove edges, not dominated blocks.  Actually free
+       DOM info in case we removed something.  Remove unreachable blocks.
+       (mfb_keep_latches): Work with either DOM info or marked backedges.
+       (cleanup_tree_cfg_noloop): Do not remove unreachable blocks
+       first.  Mark backedges if DOM info isn't available.
+       (Re-)compute DOM info after cleanup_control_flow_pre.
+ 2018-06-05  Richard Biener  <rguenther@suse.de>
+       * tree-cfg.c (struct locus_discrim_map): Store line, not location.
+       (locus_discrim_hasher::hash): Adjust.
+       (locus_discrim_hasher::equal): Likewise.
+       (next_discriminator_for_locus): Work on line directly.
+       (same_line_p): Pass in expanded locus1 as well.
+       (assign_discriminators): Avoid redundant location expansions.
+ 2018-06-05  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/86046
+       * tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P
+       if required after clearing TREE_ADDRESSABLE.
+ 2018-06-05  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/86047
+       * tree-ssa-loop.c (for_each_index): Glob handling of all
+       decls and constants and really handle all of them.
+ 2018-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR target/81497
+       * config/arm/arm-builtins.c (arm_type_qualifiers): Add
+       qualifier_void_pointer and qualifier_const_void_pointer.
+       (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above.
+       (arm_init_builtins): Handle the above.
+       * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc,
+       __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2,
+       __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for
+       void intrinsics.
+ 2018-06-05  Martin Liska  <mliska@suse.cz>
+       * auto-profile.c (read_autofdo_file): Do not use
+       gcov_ctr_summary struct.
+       (afdo_callsite_hot_enough_for_early_inline): Likewise.
+       * coverage.c (struct counts_entry): Likewise.
+       (read_counts_file): Read just single summary entry.
+       (get_coverage_counts): Use gcov_summary struct.
+       * coverage.h (get_coverage_counts): Likewise.
+       * gcov-dump.c (dump_working_sets): Likewise.
+       (tag_summary): Dump just single summary.
+       * gcov-io.c (gcov_write_summary): Write just histogram
+       summary.
+       (gcov_read_summary): Read just single summary.
+       (compute_working_sets): Use gcov_summary struct.
+       * gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage
+       of GCOV_COUNTERS_SUMMABLE.
+       (GCOV_COUNTERS_SUMMABLE): Remove.
+       (GCOV_FIRST_VALUE_COUNTER): Replace with
+       GCOV_COUNTER_V_INTERVAL.
+       (struct gcov_ctr_summary): Remove.
+       (struct gcov_summary): Directly use fields of former
+       gcov_ctr_summary.
+       (compute_working_sets): Use gcov_summary struct.
+       * gcov.c (read_count_file): Do not use ctrs fields.
+       * lto-cgraph.c (merge_profile_summaries): Use gcov_summary
+       struct.
+       * lto-streamer.h (struct GTY): Make profile_info gcov_summary
+       struct.
+       * profile.c: Likewise.
+       * profile.h: Likewise.
  
-       * passes.def (pass_early_thread_jumps): Schedule after forwprop.
-       * tree-pass.h (make_pass_early_thread_jumps): Declare.
-       * tree-ssa-threadbackward.c (fsm_find_thread_path,
-       fsm_find_thread_path, profitable_jump_thread_path,
-       fsm_find_control_statement_thread_paths,
-       find_jump_threads_backwards): Add speed_p parameter.
-       (pass_data_early_thread_jumps): New pass.
-       (make_pass_early_thread_jumps): New function.
+ 2018-06-05  Martin Liska  <mliska@suse.cz>
  
- 2016-09-17  Andreas Schwab  <schwab@suse.de>
+       PR gcov-profile/84846
+       * gcov.c (output_lines): Print working directory only
+       in intermediate format.
  
-       * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
-       * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
+ 2018-06-05  Andreas Krebbel  <krebbel@linux.ibm.com>
  
- 2016-09-16  Eric Botcazou  <ebotcazou@adacore.com>
+       * config/s390/s390-builtin-types.def: Add void function type.
+       * config/s390/s390-builtins.def: Use the function type for the
+       tbeginc builtin.
  
-       * recog.c (rest_of_handle_split_after_reload): Delete.
-       (pass_split_after_reload::gate): New method.
-       (pass_split_after_reload::execute): Call split_all_insns directly.
+ 2018-06-04  Jim Wilson  <jimw@sifive.com>
  
- 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
+       * config/riscv/riscv-protos.h (riscv_expand_epilogue): Change bool arg
+       to int.
+       * config/riscv/riscv.c (riscv_for_each_saved_reg): New args epilogue
+       and maybe_eh_return.  Change regno to unsigned int.  Use new args to
+       handle EH_RETURN_DATA_REGNO registers properly.
+       (riscv_expand_prologue): Pass new args to riscv_for_each_saved_reg.
+       (riscv_expand_epilogue): Update comment.  Change argument name and
+       type.  Update code to use new name and type.  Pass new args to
+       riscv_for_each_saved_reg.  Only use EH_RETURN_STACKADJ_RTX when
+       EXCEPTION_RETURN.
+       * config/riscv/riscv.md (NORMAL_RETURN): New.
+       (SIBCALL_RETURN, EXCEPTION_RETURN): New.
+       (epilogue, sibcall_epilogue): Update riscv_expand_epilogue arg.
+       (eh_return): Call gen_eh_return_internal and emit barrier.
+       (eh_return_internal): Call riscv_expand_epilogue.
  
-       * doc/extend.texi (Integer Overflow Builtins): Fix type of out
-       parameters for functions taking long long arguments.
+ 2018-06-04  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-09-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       * gimple-ssa-store-merging.c (struct merged_store_group): Move up
+       bit_insertion field and declare can_be_merged_into method.
+       (merged_store_group::can_be_merged_into): New method.
+       (imm_store_chain_info::coalesce_immediate): Call it to decide whether
+       consecutive non-overlapping stores can be merged.  Turn MEM_REF stores
+       into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store.
  
-       PR target/77613
-       * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
-       splat with truncate.
+ 2018-06-04  Richard Biener  <rguenther@suse.de>
  
- 2016-09-16  Jason Merrill  <jason@redhat.com>
+       PR tree-optimization/85955
+       * builtins.c (fold_builtin_sincos): Convert pointers to
+       destination to appropriate type before dereferencing.
  
-       * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
-       New.
-       * hwint.c (exact_log2): Use pow2p_hwi.
-       (ctz_hwi, ffs_hwi): Use least_bit_hwi.
-       * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
-       * builtins.c (get_object_alignment_2, get_object_alignment)
-       (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
-       least_bit_hwi.
-       * calls.c (compute_argument_addresses, store_one_arg): Use
-       least_bit_hwi.
-       * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
-       * combine.c (force_to_mode): Use least_bit_hwi.
-       (contains_muldiv, find_split_point, combine_simplify_rtx)
-       (simplify_if_then_else, simplify_set, force_to_mode)
-       (if_then_else_cond, simplify_and_const_int_1)
-       (simplify_compare_const): Use pow2p_hwi.
-       * cse.c (fold_rtx): Use pow2p_hwi.
-       * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
-       Use least_bit_hwi.
-       * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
-       (init_expmed_one_conv): Use pow2p_hwi.
-       * expr.c (is_aligning_offset): Use pow2p_hwi.
-       * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
-       (fold_binary_loc): Use pow2p_hwi.
-       * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
-       * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
-       * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
-       * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
-       Use least_bit_hwi.
-       * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
-       * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
-       * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
-       * omp-low.c (oacc_loop_fixed_partitions)
-       (oacc_loop_auto_partitions): Use least_bit_hwi.
-       * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
-       * stor-layout.c (place_field): Use least_bit_hwi.
-       * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
-       * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
-       * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
-       * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
-       * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
-       * tree-vect-data-refs.c (vect_analyze_group_access_1)
-       (vect_grouped_store_supported, vect_grouped_load_supported)
-       (vect_permute_load_chain, vect_shift_permute_load_chain)
-       (vect_transform_grouped_load): Use pow2p_hwi.
-       * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
-       * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
-       * tree-vect-stmts.c (vectorizable_mask_load_store): Use
-       least_bit_hwi.
-       * tsan.c (instrument_expr): Use least_bit_hwi.
-       * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
- 2016-09-16  Andreas Schwab  <schwab@suse.de>
-       * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
-       OFFSET, not offset.
-       * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
- 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
-       PR target/77526
-       * combine.c (rest_of_handle_combine): If any edges have been purged,
-       free dominators if available.
- 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
-           Eric Botcazou  <ebotcazou@adacore.com>
-       PR middle-end/77594
-       * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
-       through into expand_addsub_overflow after expand_neg_overflow.
- 2016-09-15  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c
-       (selftest::test_fixit_insert_containing_newline): New function.
-       (selftest::test_fixit_replace_containing_newline): New function.
-       (selftest::diagnostic_show_locus_c_tests): Call the above.
- 2016-09-15  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/77503
-       * tree-vect-loop.c (vectorizable_reduction): Record reduction
-       code for CONST_COND_REDUCTION at analysis stage and use it at
-       transform stage.
-       * tree-vectorizer.h (struct _stmt_vec_info): New field.
-       (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
-       * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
-       field.
+ 2018-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-09-15  Richard Biener  <rguenther@suse.de>
+       * config/rs6000/rs6000.md (abs<mode>2 for FLOAT128): Handle IFmode.
  
-       PR middle-end/77544
-       * fold-const.c (split_tree): Do not split constant ~X.
+ 2018-06-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-09-15  Jakub Jelinek  <jakub@redhat.com>
+       * expr.c (expand_expr_real_1): Force the operand into memory if
+       its TYPE_MODE is BLKmode and if there is no integer mode for
+       the number of bits being extracted.
  
-       PR rtl-optimization/77425
-       * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
-       is NULL.
+ 2018-06-04  Jakub Jelinek  <jakub@redhat.com>
  
-       PR middle-end/77475
-       * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
-       use %qs instead of %s where desirable, use argument instead of arg in
-       the diagnostic wording, add list of supported strategies and
-       spellcheck hint.
-       (ix86_option_override_internal): Emit target("m...") instead of
-       option("m...") in the diagnostic.  Use %qs instead of %s in invalid
-       -march/-mtune option diagnostic.  Add list of supported arches/tunings
-       and spellcheck hint.  Remove prefix, suffix and sw variables, use
-       main_args_p ? "..." : "..." in diagnostics to make translation
-       possible.
- 2016-09-15  Richard Biener  <rguenther@suse.de>
-       * dwarf2asm.h (dw2_asm_output_offset): Add overload with
-       extra offset argument.
-       * dwarf2asm.c (dw2_asm_output_offset): Implement that.
-       * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
-       to reflect new offset parameter.
-       * doc/tm.texi: Regenerate.
-       * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
-       * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
-       offset argument.
-       (darwin_asm_output_dwarf_offset): Likewise.
-       * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
-       argument.
-       (darwin_asm_output_dwarf_offset): Pass offset argument through.
-       * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
-       * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
+       PR target/85832
+       PR target/86036
+       * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
+       Use vptestnm rather than vptestm in (=Yc,v,C) variant.
  
- 2016-09-15  Chung-Lin Tang  <cltang@codesourcery.com>
+ 2018-06-04  Richard Biener  <rguenther@suse.de>
  
-       PR fortran/72743
-       * ipa-icf.c (set_alias_uids): New function.
-       (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
-       all the merged variable's referring aliases.
+       * tree-cfgcleanup.c (cleanup_tree_cfg_1): Fold into...
+       (cleanup_tree_cfg_noloop): ... single caller.  Do
+       start_recording_case_labels later.
  
- 2016-09-15  Richard Biener  <rguenther@suse.de>
+ 2018-06-04  Sebastian Peryt  <sebastian.peryt@intel.com>
  
-       PR tree-optimization/77514
-       * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
-       only forced_stmts sequence.
+       * config/i386/cldemoteintrin.h: Change define from _X86INTRIN_H_INCLUDED
+       to _IMMINTRIN_H_INCLUDED.
+       * config/i386/pconfigintrin.h: Ditto.
+       * config/i386/waitpkgintrin.h: Ditto.
+       * config/i386/immintrin.h: Add includes for sgxintrin.h,
+       pconfigintrin.h, waitpkgintrin.h and cldemoteintrin.h.
+       * config/i386/x86intrin.h: Remove includes for mintrin.h, xmmintrin.h,
+       emmintrin.h, pmmintrin.h, tmmintrin.h, smmintrin.h, wmmintrin.h,
+       bmiintrin.h, bmi2intrin.h, lzcntintrin.h, sgxintrin.h, pconfigintrin.h,
+       waitpkgintrin.h and cldemoteintrin.h.
  
- 2016-09-15  Kugan Vivekanandarajah  <kuganv@linaro.org>
+ 2018-06-04  Richard Biener  <rguenther@suse.de>
  
-       * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
-       * cfgexpand.c (update_alias_info_with_stack_vars): Use
-       FOR_EACH_SSA_NAME to iterate over SSA variables.
-       (pass_expand::execute): Likewise.
-       * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
-       * tree-cfg.c (dump_function_to_file): Likewise.
-       * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
-       (update_ssa): Likewise.
-       * tree-ssa-alias.c (dump_alias_info): Likewise.
-       * tree-ssa-ccp.c (ccp_finalize): Likewise.
-       * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
-       (create_outofssa_var_map): Likewise.
-       (coalesce_ssa_name): Likewise.
-       * tree-ssa-operands.c (dump_immediate_uses): Likewise.
-       * tree-ssa-pre.c (compute_avail): Likewise.
-       * tree-ssa-sccvn.c (init_scc_vn): Likewise.
-       (scc_vn_restore_ssa_info): Likewise.
-       (free_scc_vn): Likwise.
-       (run_scc_vn): Likewise.
-       * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
-       * tree-ssa-ter.c (new_temp_expr_table): Likewise.
-       * tree-ssa-copy.c (fini_copy_prop): Likewise.
-       * tree-ssa.c (verify_ssa): Likewise.
- 2016-09-14  Matthew Fortune  <matthew.fortune@imgtec.com>
-       * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
-       and mips64r2 as default 32-bit and 64-bit architectures.
-       (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
-       as default 32-bit and 64-bit architectures.
- 2016-09-14  Pat Haugen  <pthaugen@us.ibm.com>
-       * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
-       of succ edge.
- 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
-       * target.def (lra_p): Change commentary (for the manual) for the
-       new default.
-       * doc/tm.texi: Regenerate.
+       PR tree-optimization/86038
+       * tracer.c (find_best_successor): Check probability for
+       being initialized, bail out if not.
  
- 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
-       * config/arm/arm.c (TARGET_LRA_P): Delete macro.
-       * config/i386/i386.c (TARGET_LRA_P): Delete macro.
-       * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
- 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
-       * targhooks.c (default_lra_p): Return true instead of false.
- 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
-       hook_bool_void_false.
-       * config/avr/avr.c: Ditto.
-       * config/bfin/bfin.c: Ditto.
-       * config/c6x/c6x.c: Ditto.
-       * config/cr16/cr16.c: Ditto.
-       * config/cris/cris.c: Ditto.
-       * config/epiphany/epiphany.c: Ditto.
-       * config/fr30/fr30.c: Ditto.
-       * config/frv/frv.c: Ditto.
-       * config/h8300/h8300.c: Ditto.
-       * config/ia64/ia64.c: Ditto.
-       * config/iq2000/iq2000.c: Ditto.
-       * config/lm32/lm32.c: Ditto.
-       * config/m32c/m32c.c: Ditto.
-       * config/m32r/m32r.c: Ditto.
-       * config/m68k/m68k.c: Ditto.
-       * config/mcore/mcore.c: Ditto.
-       * config/microblaze/microblaze.c: Ditto.
-       * config/mmix/mmix.c: Ditto.
-       * config/mn10300/mn10300.c: Ditto.
-       * config/moxie/moxie.c: Ditto.
-       * config/msp430/msp430.c: Ditto.
-       * config/nios2/nios2.c: Ditto.
-       * config/nvptx/nvptx.c: Ditto.
-       * config/pa/pa.c: Ditto.
-       * config/pdp11/pdp11.c: Ditto.
-       * config/rl78/rl78.c: Ditto.
-       * config/sparc/sparc.c: Ditto.
-       * config/spu/spu.c: Ditto.
-       * config/stormy16/stormy16.c: Ditto.
-       * config/tilegx/tilegx.c: Ditto.
-       * config/tilepro/tilepro.c: Ditto.
-       * config/v850/v850.c: Ditto.
-       * config/vax/vax.c: Ditto.
-       * config/visium/visium.c: Ditto.
-       * config/xtensa/xtensa.c: Ditto.
- 2016-09-14  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/68260
-       * tsan.c: Include target.h.
-       (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
-       (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
-       (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
-       BUILT_IN_ATOMIC_TEST_AND_SET entries.
-       (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
- 2016-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-           Martin Liska  <mliska@suse.cz>
+ 2018-06-04  Richard Earnshaw  <rearnsha@arm.com>
  
-       PR middle-end/77574
-       * predict.c (force_edge_cold): Add braces to a condition.
+       PR target/86003
+       * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list
+       of bits to ignore when comparing architectures.
  
- 2016-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+ 2018-06-04  Jakub Jelinek  <jakub@redhat.com>
  
-       PR rtl-optimization/77289
-       * lra-constraints.c (get_final_hard_regno): Removed.
-       (get_hard_regno): Add new parameter final_p.
-       (get_reg_class): Directly call lra_get_elimination_hard_regno.
-       (operands_match_p): Adjust call to get_hard_regno.
-       (uses_hard_regs_p): Likewise.
-       (process_alt_operands): Likewise.
+       PR tree-optimization/69615
+       * fold-const.c (merge_ranges): If range1 is - [x, x] and x is the
+       maximum or minimum of the type, try to merge it also as if
+       range1 is + [-, x - 1] or + [x + 1, -].
  
- 2016-09-13  Joe Seymour  <joe.s@somniumtech.com>
+       PR c++/86025
+       * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE.
+ 2018-06-03  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR target/70713
-       * config/msp430/msp430.c (msp430_start_function): Emit an error
-       if a function is both weak and specifies an interrupt number.
+       PR tree-optimization/86034
+       * gimple-ssa-store-merging.c (output_merged_store): Convert the RHS to
+       the unsigned bitfield type in a bit insertion sequence if it does not
+       have a larger precision than the bitfield size.
+       (process_store): Also bypass widening conversions for BIT_INSERT_EXPR.
+ 2018-06-03  Kito Cheng  <kito.cheng@gmail.com>
+       * config/nds32/nds32-peephole2.md: Add new patterns for code size.
+ 2018-06-03  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J.
+       * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J.
+       * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking.
+       * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J).
  
- 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
+ 2018-06-03  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR tree-optimization/77454
-       * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
-       changing GIMPLE_COND.  Move update_stmt_if_modified call after this.
-       Formatting fix.
+       * common/config/nds32/nds32-common.c (nds32_option_optimization_table):
+       Disable -fdelete-null-pointer-checks for ELF toolchain.
  
- 2016-09-13  Tamar Christina  <tamar.christina@arm.com>
+ 2018-06-02  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       * config/aarch64/aarch64-builtins.c
-       (aarch64_init_simd_builtins): Fix builtin type signature printing.
- 2016-09-13  Uros Bizjak  <ubizjak@gmail.com>
-       * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
-       SFmode and SCmode arguments by reference.
- 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
-       Rename to...
-       (selftest::test_one_liner_fixit_insert_before): ...this, and update
-       for renaming of add_fixit_insert to add_fixit_insert_before.
-       (selftest::test_one_liner_fixit_insert_after): New function.
-       (selftest::test_one_liner_fixit_validation_adhoc_locations):
-       Update for renaming of add_fixit_insert to add_fixit_insert_before.
-       (selftest::test_one_liner_many_fixits): Likewise.
-       (selftest::test_diagnostic_show_locus_one_liner): Update for
-       renaming, call new test function.
-       (selftest::test_diagnostic_show_locus_fixit_lines): Update for
-       renaming of add_fixit_insert to add_fixit_insert_before.
-       (selftest::test_fixit_consolidation): Likewise.
-       * diagnostic.c (selftest::test_print_parseable_fixits_insert):
-       Likewise.
-       * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
-       (selftest::test_applying_fixits_insert_before): ...this.
-       (selftest::test_applying_fixits_insert): Update for renaming of
-       add_fixit_insert to add_fixit_insert_before.
-       (selftest::test_applying_fixits_insert_after): New function.
-       (selftest::test_applying_fixits_insert_after_at_line_end): New
-       function.
-       (selftest::test_applying_fixits_insert_after_failure): New function.
-       (selftest::test_applying_fixits_multiple): Update for renaming of
-       add_fixit_insert to add_fixit_insert_before.
-       (selftest::change_line): Likewise.
-       (selftest::test_applying_fixits_unreadable_file): Likewise.
-       (selftest::test_applying_fixits_line_out_of_range): Likewise.
-       (selftest::test_applying_fixits_column_validation): Likewise.
-       (selftest::test_applying_fixits_column_validation): Likewise.
-       (selftest::edit_context_c_tests): Update for renamed test function;
-       call new test functions.
- 2016-09-13  Pat Haugen  <pthaugen@us.ibm.com>
-       PR tree-optimization/77536
-       PR rtl-optimization/68212
-       * config/rs6000/rs6000.md (div->recip splitter): Remove
-       optimize_insn_for_speed_p condition.
- 2016-09-13  Maciej W. Rozycki  <macro@imgtec.com>
-       * optabs.c (prepare_cmp_insn): Update documentation comment.
- 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
-           Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
-       PR middle-end/77475
-       * opts.h (candidates_list_and_hint): Declare.
-       * opts-common.c (candidates_list_and_hint): New function.
-       (cmdline_handle_error): Use it.
- 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
-       * edit-context.c (edited_line::get_len): New accessor.
-       (edited_file::print_diff): Split out hunk-printing into...
-       (edited_file::print_diff_hunk): New method.
-       (edited_file::print_diff_line): New method.
- 2016-09-12  Andrew Pinski  <apinski@cavium.com>
-       * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
-       New tuning option.
-       * config/aarch64/aarch64.c (thunderx_tunings): Enable
-       AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
-       (aarch64_operands_ok_for_ldpstp): Return false if
-       AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
-       was SImode and the alignment is less than 8 byte.
-       (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
- 2016-09-12  Orlando Arias  <oarias@knights.ucf.edu>
-       PR target/77570
-       * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
- 2016-09-12  Marek Polacek  <polacek@redhat.com>
-       * doc/extend.texi: Use lowercase "boolean".
-       * doc/invoke.texi: Likewise.
-       * doc/md.texi: Likewise.
-       * target.def: Likewise.
-       * doc/tm.texi: Regenerated.
- 2016-09-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR middle-end/77426
-       * expmed.c (synth_mult): Delete duplicate mode check.
- 2016-09-10  Tom de Vries  <tom@codesourcery.com>
-       PR C/71602
-       * builtins.c (std_canonical_va_list_type): Strictly return non-null for
-       va_list type only.
-       * config/i386/i386.c (ix86_canonical_va_list_type): Same.
-       * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
- 2016-09-09  Peter Bergner  <bergner@vnet.ibm.com>
-       PR rtl-optimization/77289
-       * lra-constraints.c (get_final_hard_regno): Add support for non hard
-       register numbers.  Remove support for subregs.
-       (get_hard_regno): Use SUBREG_P.  Don't call get_final_hard_regno().
-       (get_reg_class): Delete removed get_final_hard_regno() argument.
-       (uses_hard_regs_p): Call get_final_hard_regno().
- 2016-09-09  Martin Sebor  <msebor@redhat.com>
-       PR c/77520
-       PR c/77521
-       * pretty-print.c (pp_quoted_string): New function.
-       (pp_format): Call it for %c and %s directives.
- 2016-09-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
-       (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
-       INITIAL_ELIMINATION_OFFSET) : Update documentation.
-       * target.def (frame_pointer_required, can_eliminate): Likewise.
-       * doc/tm.texi: Regenerated.
-       * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
-       ELIMINABLE_REGS.
-       * df-scan.c (df_hard_reg_init): Likewise.
-       * ira.c (ira_setup_eliminable_regset): Likewise.
-       * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
-       init_elim_table): Likewise.
-       * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
-       set_initial_elim_offsets, update_eliminables,
-       init_elim_table): Likewise.
-       * rtlanal.c (get_initial_register_offset): Likewise.
-       * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
-       * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
-       * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
-       * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
-       * config/fr30/fr30.h: Fix comment.
-       * config/frv/frv.c: Likewise.
-       * config/frv/frv.h: Likewise.
-       * config/ft32/ft32.h: Likewise.
-       * config/visium/visium.h: Likewise.
-       * config/pa/pa64-linux.h: Likewise.
-       * config/v850/v850.h: Likewise.
-       * config/cris/cris.c: Likewise.
-       * config/ia64/ia64.h: Likewise.
-       * config/moxie/moxie.h: Likewise.
-       * config/m32r/m32r.h: Likewise.
- 2016-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
-       PR target/77267
-       * config.in: Regenerate.
-       * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
-       New macro.
-       (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
-       (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
-       static-libmpxwrappers case.
-       (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
-       MPX_LD_AS_NEEDED_GUARD_POP.
-       * configure: Regenerate.
-       * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
-       defined if linker support "--push-state"/"--pop-state".
- 2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
- 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
-       * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
-       (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
-       (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
-       (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
-       (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
-       (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
-       (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
-       Document.
-       * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
-       width macros from TS 18661-1.
-       * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
- 2016-09-08  Jakub Jelinek  <jakub@redhat.com>
-       PR fortran/77516
-       * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
-       OMP_CLAUSE_SAFELEN_EXPR.
- 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
-       * Makefile.in (OBJS): Add substring-locations.o.
-       * langhooks-def.h (class substring_loc): New forward decl.
-       (lhd_get_substring_location): New decl.
-       (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
-       (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
-       * langhooks.c (lhd_get_substring_location): New function.
-       * langhooks.h (class substring_loc): New forward decl.
-       (struct lang_hooks): Add field get_substring_location.
-       * substring-locations.c: New file, taking definition of
-       format_warning_va and format_warning_at_substring from
-       c-family/c-format.c, making them non-static.
-       * substring-locations.h (class substring_loc): Move class here
-       from c-family/c-common.h.  Add and rewrite comments.
-       (format_warning_va): New decl.
-       (format_warning_at_substring): New decl.
-       (get_source_location_for_substring): Add comment.
- 2016-09-07  Eric Gallager  <egall@gwmail.gwu.edu>
-       * config/i386/i386.c: Add 'U' suffix to processor feature bits
-       to avoid -Wnarrowing warning.
-       * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
-       * opts.c: Likewise for SANITIZER_OPT bitmasks.
- 2016-09-07  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_legitimize_address):
-       Avoid use of base_offset if offset already in range.
- 2016-09-07  Kaz Kojima  <kkojima@gcc.gnu.org>
-       * config/sh/sh-protos.h (struct sh_atomic_model,
-       selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
-       TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
-       TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
-       * config/sh/sh.h (struct sh_atomic_model,
-       selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
-       TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
-       TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
-       Guard with __cplusplus.
- 2016-09-06  Jakub Jelinek  <jakub@redhat.com>
-       PR target/69255
-       * config/i386/i386.c (ix86_expand_builtin): For builtin with
-       unsupported or unknown ISA, use expand_call.
- 2016-09-06  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/77378
-       PR gcov-profile/77466
-       * tree-profile.c (tree_profiling): Detect whether target can use
-       -fprofile-update=atomic.
- 2016-09-06  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77479
-       * tree-vrp.c (update_value_range): Extend overflow handling to
-       VARYING.
- 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
-       PR target/77476
-       * config/i386/i386.md (isa): Add x64_avx512bw.
-       (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
-       (kmov_isa): New mode attr.
-       (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
-       (*zero_extend<mode>si2): Likewise.
-       (*zero_extendqihi2): Use avx512dq isa for the last alternative.
- 2016-09-05  Gerald Pfeifer  <gerald@pfeifer.com>
-       * doc/invoke.texi (SPU Options): nops -> NOPs.
-       (x86 Options): Ditto.
- 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/77475
-       * toplev.c (process_options): Temporarily set input_location
-       to UNKNOWN_LOCATION around targetm.target_option.override () call.
- 2016-09-05  Uros Bizjak  <ubizjak@gmail.com>
-       PR rtl-optimization/77452
-       * explow.c (plus_constant) <case MEM>: Extract scalar constant from
-       inner-mode reference to a CONST_VECTOR constant in the constant pool.
- 2016-09-05  Marek Polacek  <polacek@redhat.com>
-       PR c/77423
-       * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
- 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
-       PR other/77421
-       * gensupport.c (alter_output_for_subst_insn): Remove redundant
-       *insn_out == '*' test.  Don't copy unnecessary to yet another
-       memory buffer, and don't leak it.
-       PR rtl-optimization/77425
-       * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
- 2016-09-03  Kirill Yukhin  <kirill.yukhin@intel.com>
-       * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
- 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
-       * common.opt (fdiagnostics-generate-patch): New option.
-       * diagnostic.c: Include "edit-context.h".
-       (diagnostic_initialize): Initialize context->edit_context_ptr.
-       (diagnostic_finish): Delete context->edit_context_ptr.
-       (diagnostic_report_diagnostic): Add fix-it hints from the
-       diagnostic to context->edit_context_ptr, if any.
-       * diagnostic.h (class edit_context): Add forward decl.
-       (struct diagnostic_context): Add field "edit_context_ptr".
-       * doc/invoke.texi (Diagnostic Message Formatting Options): Add
-       -fdiagnostics-generate-patch.
-       (-fdiagnostics-generate-patch): New item.
-       * toplev.c: Include "edit-context.h".
-       (process_options): Set global_dc->edit_context_ptr to a new
-       edit_context if the options need one.
-       (toplev::main): Handle -fdiagnostics-generate-patch by using
-       global_dc->edit_context_ptr.
- 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
-       PR c/65467
-       * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
-       map and firstprivate clauses on target construct for _Atomic
-       qualified decls.
-       (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
-       on target construct for _Atomic qualified decls.
-       * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
-       decls.
-       * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
-       _Atomic qualified arguments not mentioned in uniform clause.
- 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
-       * Makefile.in (OBJS-libcommon): Add edit-context.o.
-       * diagnostic-color.c (color_dict): Add "diff-filename",
-       "diff-hunk", "diff-delete", and "diff-insert".
-       (parse_gcc_colors): Update default value of GCC_COLORS in comment
-       to reflect above changes.
-       * doc/invoke.texi (-fdiagnostics-color): Update description of
-       default GCC_COLORS, and of the supported capabilities.
-       * edit-context.c: New file.
-       * edit-context.h: New file.
-       * input.c (struct fcache): Add field "missing_trailing_newline".
-       (diagnostics_file_cache_forcibly_evict_file): Initialize it to
-       true.
-       (add_file_to_cache_tab): Likewise.
-       (fcache::fcache): Likewise.
-       (get_next_line): Update c->missing_trailing_newline.
-       (location_missing_trailing_newline): New function.
-       * input.h (location_missing_trailing_newline): New decl.
-       * selftest-run-tests.c (selftest::run_tests): Call
-       edit_context_c_tests.
-       * selftest.h (edit_context_c_tests): New decl.
- 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
-           Richard Biener  <rguenth@suse.de>
-       PR tree-optimization/77444
-       * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
-       as steptype, remove redundant initialization.
- 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/77396
-       * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
-       (sanopt_optimize_walker): Optimize away
-       __asan_before_dynamic_init (...) followed by
-       __asan_after_dynamic_init () without intervening memory loads/stores.
-       * ipa-pure-const.c (special_builtin_state): Handle
-       BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
-       BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
- 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * cfg.c (free_original_copy_tables): Replace second assignment of
-       bb_copy = NULL by bb_original = NULL.
- 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
-       PR other/77421
-       * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
-       assignment added in r216794.
- 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
-       * Makefile.in (OBJS): Add typed-splay-tree.o.
-       * selftest-run-tests.c (selftest::run_tests): Call
-       typed_splay_tree_c_tests.
-       * selftest.h (typed_splay_tree_c_tests): New decl.
-       * typed-splay-tree.c: New file.
-       * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
-       (typed_splay_tree::max): New method.
-       (typed_splay_tree::min): New method.
-       (typed_splay_tree::foreach): New method.
-       (typed_splay_tree::closure): New struct.
-       (typed_splay_tree::inner_foreach_fn): New function.
- 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * ipa-cp.c (ipcp_store_bits_results): Change option name from
-       -fipa-cp-bit to -fipa-bit-cp.
- 2016-09-01  Martin Sebor  <msebor@redhat.com>
-       PR tree-optimization/71831
-       * tree-object-size.h: Return bool instead of the size and add
-       argument for the size.
-       * tree-object-size.c (compute_object_offset): Update signature.
-       (addr_object_size): Same.
-       (compute_builtin_object_size): Return bool instead of the size
-       and add argument for the size.  Handle POINTER_PLUS_EXPR when
-       optimization is disabled.
-       (expr_object_size): Adjust.
-       (plus_stmt_object_size): Adjust.
-       (pass_object_sizes::execute): Adjust.
-       * builtins.c (fold_builtin_object_size): Adjust.
-       * doc/extend.texi (Object Size Checking): Update.
-       * ubsan.c (instrument_object_size): Adjust.
- 2016-09-01  Martin Sebor  <msebor@redhat.com>
-       * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
-       it fits the output of the formatted function regardless of its
-       arguments.
-       * gcc/genmodes.c (parser::parse_expr): Same.
-       * gimplify.c (gimplify_asm_expr): Same.
-       * passes.c (pass_manager::register_one_dump_file): Same.
-       * print-tree.c (print_node): Same.
- 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
- 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
- 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
-       * config/rs6000/vector.md: Ditto.
-       * config/rs6000/vsx.md: Ditto.
- 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * ipa-inline-analysis.c (param_change_prob): Get to the base object
-       first in all cases.
- 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
-       *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
-       *return_and_restore_gpregs_<mode>_r11,
-       *return_and_restore_gpregs_<mode>_r12,
-       *return_and_restore_gpregs_<mode>_r1,
-       *return_and_restore_fpregs_<mode>_r11,
-       *return_and_restore_fpregs_<mode>_r12,
-       *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
-       directly instead of via the "l" constraint.  Renumber operands.
-       Fix whitespace.
- 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
-       save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
-       *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
-       * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
-       load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
-       *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
-       *call_value_nonlocal_darwin64, reload_macho_picbase,
-       reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
-       * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
-       * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
-       *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
-       *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
-       *save_fpregs_<mode>_r1): Ditto.
-       * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
-       *return_and_restore_gpregs_spe): Ditto.
- 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.md
-       (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
-       the use of the link register.
-       (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
- 2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-           Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/72827
-       * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
-       reg+reg addressing for TImode.
-       (rs6000_legitimate_address_p): Only allow register indirect
-       addressing for TImode, even without TARGET_QUAD_MEMORY.
- 2016-09-01  Richard Biener  <rguenther@suse.de>
-       PR middle-end/77436
-       * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
-       check whether the result fits the desired result type.
- 2016-09-01  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
- 2016-09-01  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
-       New function.
-       (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
- 2016-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
-       * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
-       for comparisons of integer ZERO_EXTEND against zero.
- 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/i386/i386.c (ix86_option_override_internal): Also disable the
-       STV pass if -mstackrealign is enabled.
- 2016-08-31  Ilya Verbin  <iverbin@gmail.com>
-       * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
-       AVX512IFMA.
- 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
-       (layout_range::intersects_line_p): New method.
-       (test_range_contains_point_for_single_point): Rename to...
-       (test_layout_range_for_single_point): ...this, and add testing
-       for layout_range::intersects_line_p.
-       (test_range_contains_point_for_single_line): Rename to...
-       (test_layout_range_for_single_line): ...this,  and add testing
-       for layout_range::intersects_line_p.
-       (test_range_contains_point_for_multiple_lines): Rename to...
-       (test_layout_range_for_multiple_lines): ...this,  and add testing
-       for layout_range::intersects_line_p.
-       (layout::layout): Populate m_fixit_hints.
-       (layout::get_expanded_location): Handle the case of a line-span
-       for a fix-it hint.
-       (layout::validate_fixit_hint_p): New method.
-       (get_line_span_for_fixit_hint): New function.
-       (layout::calculate_line_spans): Add spans for fixit-hints.
-       (layout::should_print_annotation_line_p): New method.
-       (layout::print_any_fixits): Drop param "richloc", instead using
-       validated fixits in m_fixit_hints.  Add "const" to hint pointers.
-       (diagnostic_show_locus): Avoid printing blank annotation lines.
-       (selftest::test_diagnostic_context::test_diagnostic_context):
-       Initialize show_column and start_span.
-       (selftest::test_diagnostic_context::start_span_cb): New static
-       function.
-       (selftest::test_diagnostic_show_locus_fixit_lines): New function.
-       (selftest::diagnostic_show_locus_c_tests): Update for function
-       renamings.  Call test_diagnostic_show_locus_fixit_lines.
- 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
-       PR tree-optimization/73714
-       * match.pd (a * (1 << b)): Revert change from 2016-05-23.
- 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.c: Move "namespace selftest {" to top of file,
-       removing explicit "selftest::" qualifiers throughout.
- 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
-       * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
-       New types.
-       (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
-       _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
-       Replace builtin with vector extension.
-       * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
-       New types.
-       (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
-       _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
-       Replace builtin with vector extension.
-       * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
-       (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
-       Replace builtin with vector extension.
-       * config/i386/xmmintrin.h (__m128_u): New type.
-       (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
-       (_mm_load_ps, _mm_store_ps): Simplify.
- 2016-08-31  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
- 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (colorizer::begin_state): Support more
-       than 3 ranges per diagnostic by alternating between color 1 and
-       color 2.
-       (layout::layout): Replace use of rich_location::MAX_RANGES
-       with richloc->get_num_locations ().
-       (layout::calculate_line_spans): Replace use of
-       rich_location::MAX_RANGES with m_layout_ranges.length ().
-       (layout::print_annotation_line): Handle arbitrary numbers of
-       ranges in caret-printing by defaulting to '^'.
-       (selftest::test_one_liner_many_fixits): New function.
-       (test_diagnostic_show_locus_one_liner): Call it.
-       * diagnostic.c (diagnostic_initialize): Update for renaming
-       of rich_location::MAX_RANGES to
-       rich_location::STATICALLY_ALLOCATED_RANGES.
-       * diagnostic.h (struct diagnostic_context): Likewise.
- 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.c (selftest::named_temp_file::named_temp_file): New
-       ctor.
-       (selftest::temp_source_file::~temp_source_file): Move to...
-       (selftest::named_temp_file::~named_temp_file): ...here.
-       (selftest::test_named_temp_file): New function.
-       (selftest::selftest_c_tests): Call test_named_temp_file.
-       * selftest.h (class named_temp_file): New class.
-       (class temp_source_file): Convert to a subclass of named_temp_file.
- 2016-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
-       USEs of LR_REGNO in returns and sibcalls.
-       (rs6000_output_mi_thunk): Similar.
-       (rs6000_sibcall_aix): Similar.
-       * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
-       sibcall_local64, sibcall_value_local32, sibcall_value_local64,
-       sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
-       Remove the USE of LR_REGNO from the patterns as well.  Delete an
-       obsolete comment.
-       (return_internal_<mode>): Delete.
- 2016-08-30  Tamar Christina  <tamar.christina@arm.com>
-       * gcc/config/aarch64/aarch64-simd.md
-       (aarch64_ld2<mode>_dreg_le): New.
-       (aarch64_ld2<mode>_dreg_be): New.
-       (aarch64_ld2<mode>_dreg): Removed.
-       (aarch64_ld3<mode>_dreg_le): New.
-       (aarch64_ld3<mode>_dreg_be): New.
-       (aarch64_ld3<mode>_dreg): Removed.
-       (aarch64_ld4<mode>_dreg_le): New.
-       (aarch64_ld4<mode>_dreg_be): New.
-       (aarch64_ld4<mode>_dreg): Removed.
-       (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
- 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
-       redundant location param.
-       (test_one_liner_fixit_remove): Likewise.
-       (test_one_liner_fixit_replace): Likewise.
-       (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
-       * gcc-rich-location.c
-       (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
-       get_range_from_loc.  Drop overload taking a const char *.
-       * gcc-rich-location.h
-       (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
-       a const char *.
- 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-       * config/linux.c (linux_libc_has_function): Return true on musl.
- 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-       * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
- 2016-08-30  Eric Botcazou  <ebotcazou@adacore.com>
-       * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
-       used for abnormal egdes.
- 2016-08-30  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/72866
-       * tree-vect-patterns.c (search_type_for_mask): Turn into
-       a small wrapper, move all code to ...
-       (search_type_for_mask_1): ... this new function.  Add caching
-       and adjust recursive calls.
-       PR debug/77363
-       * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
-       instead of lookup_type_die (type_main_variant (type)) even for array
-       types.
-       PR middle-end/77377
-       * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
-       constant pool reference return x instead of c.
- 2016-08-29  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
-       include MQ.
- 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
-       * input.c
-       (selftest::test_make_location_nonpure_range_endpoints): Fix
-       header comment.
- 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c
-       (selftest::test_one_liner_fixit_validation_adhoc_locations): New
-       function.
-       (selftest::test_diagnostic_show_locus_one_liner): Call it.
-       * input.c (get_pure_location): Move to libcpp/line-map.c.
-       * input.h (get_pure_location): Convert decl to an inline function
-       calling implementation in libcpp.
- 2016-08-29  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/77403
-       * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
-       template for intel asm dialect.
-       (vec_set_hi_<mode><mask_name>): Ditto.
- 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
-       (selftest::fail_formatted): Likewise.
- 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (make_location): Call get_start and get_finish
-       on the endpoints to avoid storing packed ranges or ad-hoc
-       ranges in them.
-       (selftest::test_make_location_nonpure_range_endpoints): New function.
-       (selftest::input_c_tests): Call it.
-       * input.h (get_start): New inline function.
- 2016-08-29  Tom de Vries  <tom@codesourcery.com>
-       PR c/77398
-       * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
-       with assert.
- 2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>
-       * Makefile.in (gcov-iov.h): Add dummy recipe.
- 2016-08-29  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nvptx.c: #include tree-vrp.h.
- 2016-08-28  Eric Botcazou  <ebotcazou@adacore.com>
-       PR target/77324
-       * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
-       HIGH+LO construct during reload.
- 2016-08-28  Tom de Vries  <tom@codesourcery.com>
-       PR lto/70955
-       * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
-       'sysv_abi va_list' attribute.
-       (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
-       (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
-       attributes.
- 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
-       * emit-rtl.c (unshare_all_rtl_1): Adjust.
-       (unshare_all_rtl_again): Likewise.
-       * function.c (assign_stack_local_1): Likewise.
-       (assign_stack_temp_for_type): Likewise.
- 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * cfgbuild.c (make_edges): Adjust.
-       * cfgrtl.c (can_delete_label_p): Likewise.
-       * dwarf2cfi.c (create_trace_edges): Likewise.
-       * except.c (sjlj_emit_dispatch_table): Likewise.
-       * function.h (struct expr_status): make x_forced_labels a vector.
-       * jump.c (rebuild_jump_labels_1): Adjust.
-       * reload1.c (set_initial_label_offsets): Likewise.
-       * stmt.c (force_label_rtx): Likewise.
-       (expand_label): Likewise.
- 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
- 2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
-       PR tree-optimization/71077
-       PR tree-optimization/68542
-       * fold-const.c (fold_relational_const): Fix folding of
-       VECTOR_CST comparisons that have a scalar boolean result type.
-       (selftest::test_vector_folding): New static function.
-       (selftest::fold_const_c_tests): Call it.
- 2016-08-27  Gerald Pfeifer  <gerald@pfeifer.com>
-       * doc/extend.texi (SPU Built-in Functions): Remove stale
-       references to material formerly at IBM and Sony.
- 2016-08-26  David Edelsohn  <dje.gcc@gmail.com>
-       PR target/77349
-       * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
- 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c
-       (selftest::test_fixit_consolidation): New function.
-       (selftest::diagnostic_show_locus_c_tests): Call it.
-       * gcc-rich-location.h (gcc_rich_location): Eliminate unused
-       constructor based on source_range.
- 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-color.c (color_dict): Add "fixit-insert" and
-       "fixit-delete".
-       (parse_gcc_colors): Update description of default GCC_COLORS.
-       * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
-       (colorizer::set_fixit_insert): New method.
-       (colorizer::set_fixit_delete): New method.
-       (colorizer::get_color_by_name): New method.
-       (colorizer::STATE_FIXIT_INSERT): New constant.
-       (colorizer::STATE_FIXIT_DELETE): New constant.
-       (class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
-       fields in favor of new field "m_stop_color".  Add fields
-       "m_fixit_insert" and "m_fixit_delete".
-       (colorizer::colorizer): Update for above changes.  Replace
-       colorize_start calls with calls to get_color_by_name.
-       (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
-       STATE_FIXIT_DELETE.  Update for field renamings.
-       (colorizer::finish_state): Simplify by using m_stop_color,
-       rather than multiple identical "*_ce" fields.
-       (colorizer::get_color_by_name): New method.
-       (layout::print_any_fixits): Print insertions and replacements
-       using the "fixit-insert" color, and deletions using the
-       "fixit-delete" color.
-       * doc/invoke.texi (-fdiagnostics-color): Update description of
-       default GCC_COLORS, and of the supported capabilities.
- 2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
-       * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
-       current_function_static_stack_size variable with the static
-       stack frame size of the current function when
-       flag_stack_usage_info is enabled.
- 2016-08-26  Nathan Sidwell  <nathan@acm.org>
-       * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
-       assignment inside if condition.
- 2016-08-26  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69047
-       * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
-       extracts similar to what FRE does.
-       (non_rewritable_mem_ref_base): Likewise.
- 2016-08-26  Joseph Myers  <joseph@codesourcery.com>
-       * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
-       (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
-       * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
-       * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
-       * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
-       Likewise.
-       * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
-       * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
-       * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
-       * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
-       * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
- 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/70473
-       * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
-       reservation duration to 15 cycles.
-       (cortex_a8_vfp_macs): Likewise.
-       (cortex_a8_vfp_macd): Likewise.
-       (cortex_a8_vfp_divs): Likewise.
-       (cortex_a8_vfp_divd): Likewise.
- 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
-       (aarch_macro_fusion_pair_p): Use above to avoid early return.
- 2016-08-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-           Martin Jambhor  <mjambor@suse.cz>
-       * common.opt: New option -fipa-bit-cp.
-       * doc/invoke.texi: Document -fipa-bit-cp.
-       * opts.c (default_options_table): Add entry for -fipa-bit-cp.
-       (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
-       * tree-ssa-ccp.h: New header file.
-       * tree-ssa-ccp.c: Include tree-ssa-ccp.h
-       (bit_value_binop_1): Change to bit_value_binop_1 and export it.
-       Replace all occurences of tree parameter by two new params: signop, int.
-       (bit_value_unop_1): Change to bit_value_unop and export it.
-       Replace all occurences of tree parameter by two new params: signop,
-       int.
-       (bit_value_binop): Change call from bit_value_binop_1 to
-       bit_value_binop.
-       (bit_value_assume_aligned): Likewise.
-       (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
-       (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
-       to ccp_finalize.
-       (ccp_finalize): Skip processing if val->mask == 0.
-       * ipa-cp.c: Include tree-ssa-ccp.h
-       (ipcp_bits_lattice): New class.
-       (ipcp_param_lattice (bits_lattice): New member.
-       (print_all_lattices): Call ipcp_bits_lattice::print.
-       (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
-       (initialize_node_lattices): Likewise.
-       (propagate_bits_accross_jump_function): New function.
-       (propagate_constants_accross_call): Call
-       propagate_bits_accross_jump_function.
-       (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
-       (ipcp_store_bits_results): New function.
-       (ipcp_driver): Call ipcp_store_bits_results.
-       * ipa-prop.h (ipa_bits): New struct.
-       (ipa_jump_func): Add new member bits of type ipa_bits.
-       (ipa_param_descriptor): Change decl to decl_or_type.
-       (ipa_get_param): Change decl to decl_or_type and assert on
-       PARM_DECL.
-       (ipa_get_type): New function.
-       (ipcp_transformation_summary): New member bits.
-       * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
-       (ipa_populate_param_decls): Likewise.
-       (ipa_dump_param): Likewise.
-       (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
-       function.
-       (ipa_set_jf_unknown): Set ipa_bits::known to false.
-       (ipa_compute_jump_functions_for_edge): Compute jump function for bits
-       propagation.
-       (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
-       (ipa_write_jump_function): Add streaming for ipa_bits.
-       (ipa_read_jump_function): Add support for reading streamed ipa_bits.
-       (write_ipcp_transformation_info): Add streaming for ipa_bits
-       summary for ltrans.
-       (read_ipcp_transfomration_info): Add support for reading streamed
-       ipa_bits.
-       (ipcp_update_bits): New function.
-       (ipcp_transform_function): Call ipcp_update_bits.
- 2016-08-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-       * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
-       (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
- 2016-08-25  David Edelsohn  <dje.gcc@gmail.com>
-       * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
- 2016-08-25  Richard Biener  <rguenther@suse.de>
-       * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
-       Only add locations in late dwarf.
-       (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
-       (dwarf2out_early_finish): But do it here.
- 2016-08-24  Michael Collison  <michael.collison@linaro.org>
-           Michael Collison  <michael.collison@arm.com>
-       * config/arm/arm-modes.def: Add new condition code mode CC_V
-       to represent the overflow bit.
-       * config/arm/arm.c (maybe_get_arm_condition_code):
-       Add support for CC_Vmode.
-       (arm_gen_unlikely_cbranch): New function to generate common
-       rtl conditional branches for overflow patterns.
-       * config/arm/arm-protos.h: Add prototype for
-       arm_gen_unlikely_cbranch.
-       * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
-       addsi3_compareV_upper): New patterns to support signed
-       builtin overflow add operations.
-       (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
-       New patterns to support unsigned builtin add overflow operations.
-       (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
-       builtin overflow subtract operations,
-       (usubv<mode>4): New patterns to support unsigned builtin subtract
-       overflow operations.
-       (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
-       to support builtin overflow negate operations.
- 2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       Revert
-       2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * explow.c (get_dynamic_stack_size): Take known alignment of stack
-       pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
-       needed.
- 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
-       MULTILIB_OPTIONS should be used.  Small wording fixes.
-       * genmultilib: Memorize set of all option combinations in
-       combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
-       found in MULTILIB_OPTIONS by checking if option set is listed in
-       combination_space.  Output new and existing error message to stderr.
- 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
-       -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
-       Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
-       (MULTILIB_REUSE): Remove reuse rules for option set including
-       -mfpu=fp-armv8 and -mfpu=vfpv4
- 2016-08-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
-       * config/arm/t-rtems: Add vfp multilib.
- 2016-08-23  Ian Lance Taylor  <iant@golang.org>
-       * config/s390/s390.c (s390_asm_file_start): Call
-       default_file_start.
- 2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
-       initialization of all 0's to the 0 constant, instead of directly
-       generating XOR.  Add support for V4SImode vector initialization on
-       64-bit systems with direct move, and rework the ISA 3.0 V4SImode
-       initialization.  Change variables used in V4SFmode vector
-       intialization.  For V4SFmode vector splat on ISA 3.0, make sure
-       any memory addresses are in index form.  Add support for using
-       VSPLTH/VSPLTB to initialize vector short and vector char vectors
-       with all of the same element.
-       (regno_or_subregno): New helper function to return a register
-       number for either REG or SUBREG.
-       (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
-       Use regno_or_subregno where possible.
-       (rs6000_split_v4si_init_di_reg): New helper function to build up a
-       DImode value from two SImode values in order to generate V4SImode
-       vector initialization on 64-bit systems with direct move.
-       (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
-       initialization.
-       (rtx_is_swappable_p): V4SImode vector initialization insn is not
-       swappable.
-       * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
-       declaration.
-       * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
-       attributes to initialize V8HImode and V16QImode vectors with the
-       same element.
-       (VSX_SPLAT_COUNT): Likewise.
-       (VSX_SPLAT_SUFFIX): Likewise.
-       (UNSPEC_VSX_VEC_INIT): New unspec.
-       (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
-       Allow SFmode values to come from Altivec registers.
-       (vsx_init_v4si): New insn/split for V4SImode vector initialization
-       on 64-bit systems with direct move.
-       (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
-       vector initializations, to allow V4SImode vector initializations
-       on 64-bit systems with direct move.
-       (vsx_splat_v4si): Likewise.
-       (vsx_splat_v4si_di): Likewise.
-       (vsx_splat_v4sf): Likewise.
-       (vsx_splat_v4sf_internal): Likewise.
-       (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
-       register classes.
-       (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
-       (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
-       initializing V8HImode and V16QImode vectors with the same
-       element.
-       * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
-       optimization if -maltivec=be.
- 2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>
-       * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
-       attribute for alternatives 3 and 4.
- 2016-08-23  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.c (selftest::assert_str_contains): New function.
-       (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
-       * selftest.h (selftest::assert_str_contains): New decl.
-       (ASSERT_STR_CONTAINS): New macro.
- 2016-08-23  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77286
-       * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
-       the CFG here.
-       (vect_transform_loop): Split exit edges of loop and scalar
-       loop if required and at the appropriate time.
- 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * explow.c (get_dynamic_stack_size): Take known alignment of stack
-       pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
-       needed.
-       Correct a typo in a comment.
- 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390.md ("*andc_split"): New splitter for and with
-       complement.
- 2016-08-23  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/27336
-       * tree-vrp.c (infer_value_range): Handle stmts that can throw
-       by looking for a non-EH edge.
-       (process_assert_insertions_for): Likewise.
- 2016-08-23  Richard Biener  <rguenther@suse.de>
-       PR middle-end/77305
-       * statistics.c (statistics_counter_event): Robustify against
-       NULL current_pass.
- 2016-08-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
-       * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
-       for targets amdfam10 and barcelona.
- 2016-08-22  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
-       (zero_extend<mode>di2): Ditto.
-       (*zero_extend<mode>si2): Ditto.
-       (*zero_extendqihi2): Ditto.
- 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
-       PR middle-end/77269
-       * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
-       (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
- 2016-08-22  Patrick Palka  <ppalka@gcc.gnu.org>
-       * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
-       identical consecutive elements.
-       [SSA_NAME]: Print the name's def stmt on its own line.  When printing
-       the node's def stmt, avoid printing an unwanted trailing newline by
-       replacing the call to print_gimple_stmt() with its inlined body and
-       adjusting it to not set pp_needs_newline and to call pp_flush()
-       instead of pp_newline_and_flush().
- 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
-       * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
-       (float32_type_node, float64_type_node, float32x_type_node)
-       (float128x_type_node): New macros.
-       * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
-       (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
-       (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
-       (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
-       (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
-       (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
-       (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
-       (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
-       (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
-       (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
-       (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
-       (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
-       (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
-       (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
-       (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
-       (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
-       * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
-       (copysign, fabs, huge_val, inf, nan, nans): Use it.
-       * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
-       and copysign.
-       (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
-       (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
-       * doc/extend.texi (Other Builtins): Document these built-in
-       functions.
-       * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
-       for nan and nans.
- 2016-08-22  Gerald Pfeifer  <gerald@pfeifer.com>
-       * doc/install.texi (Binaries): www.opencsw.org now uses https.
- 2016-08-22  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
- 2016-08-21  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/77270
-       * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
-       TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
-       non-SSE2 athlons only, otherwise prefer SSE prefetches.
- 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
-       (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
-       (vrp_visit_switch_stmt): Likewise.
-       (extract_range_from_stmt): Factored out from vrp_visit_stmt.
-       (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
-       (vrp_visit_stmt): Use extract_range_from_stmt.
-       (vrp_visit_phi_node): Use extract_range_from_phi_node.
- 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * Makefile.in: Add tree-vrp.h to GTFILES.
-       * gengtype.c (open_base_files): Add tree-vrp.h.
-       * asan.c: Add tree-vrp.h which now has the definition value_range_type.
-       * builtins.c: Likewise.
-       * fold-const.c: Likewise.
-       * gimple-builder.c: Likewise.
-       * gimple-laddress.c: Likewise.
-       * hsa-gen.c: Likewise.
-       * internal-fn.c: Likewise.
-       * ssa.h: Likewise.
-       * targhooks.c: Liewise,
-       * tree-ssa-address.c: Likewise.
-       * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
-       * tree-vrp.c (struct value_range): Move to tree-vrp.h
-       * tree-vrp.h: New file.
- 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR tree-optimization/61839
-       * tree-vrp.c (two_valued_val_range_p): New.
-       (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
-       two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
-       Also Convert VAR BINOP CST where VAR is two-valued to
-       VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
- 2016-08-19  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c
-       (layout::annotation_line_showed_range_p): New method.
-       (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
-       Reimplement case fixit_hint::REPLACE to cover removals, and
-       replacements where the range of the replacement isn't one
-       of the ranges in the rich_location.
-       (test_one_liner_fixit_replace): Likewise.
-       (selftest::test_one_liner_fixit_replace_non_equal_range): New
-       function.
-       (selftest::test_one_liner_fixit_replace_equal_secondary_range):
-       New function.
-       (selftest::test_diagnostic_show_locus_one_liner): Call the new
-       functions.
-       * diagnostic.c (print_parseable_fixits): Remove case
-       fixit_hint::REMOVE.
- 2016-08-19  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/77270
-       * config/i386/i386.c (ix86_option_override_internal): Remove
-       PTA_PRFCHW from entries that also have PTA_3DNOW flag.
-       Enable SSE prefetch also for TARGET_PREFETCHWT1.
-       Do not try to enable TARGET_PRFCHW ISA flag here.
-       * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
-       Rewrite expander function body.
-       (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
- 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
-       PR c/32187
-       * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
-       (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
-       (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
-       (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
-       (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
-       (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
-       (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
-       (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
-       (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
-       tree_index values.
-       (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
-       macros.
-       (struct floatn_type_info): New structure type.
-       (floatn_nx_types): New variable declaration.
-       * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
-       (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
-       (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
-       * tree.c (floatn_nx_types): New variable.
-       (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
-       corresponding complex types.
-       * target.def (floatn_mode): New hook.
-       * targhooks.c: Include "real.h".
-       (default_floatn_mode): New function.
-       * targhooks.h (default_floatn_mode): New prototype.
-       * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
-       types.
-       * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
-       effective-target and dg-add-options keywords.
-       (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
-       Document new effective-target keywords.
-       * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
-       * doc/tm.texi: Regenerate.
-       * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
-       __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
-       [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
-       18661-3.
-       * real.h (struct real_format): Add field ieee_bits.
-       * real.c (ieee_single_format, mips_single_format)
-       (motorola_single_format, spu_single_format, ieee_double_format)
-       (mips_double_format, motorola_double_format)
-       (ieee_extended_motorola_format, ieee_extended_intel_96_format)
-       (ieee_extended_intel_128_format)
-       (ieee_extended_intel_96_round_53_format, ibm_extended_format)
-       (mips_extended_format, ieee_quad_format, mips_quad_format)
-       (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
-       (decimal_double_format, decimal_quad_format, ieee_half_format)
-       (arm_half_format, real_internal_format: Initialize ieee_bits
-       field.
-       * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
-       float128_type_node.  Set float80_type_node to float64x_type_node
-       if appropriate and long_double_type_node not appropriate.
-       * config/ia64/ia64.c (ia64_init_builtins): Likewise.
-       * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
-       Initialize ieee_bits field.
-       * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
-       (rs6000_init_builtins): Set ieee128_float_type_node to
-       float128_type_node.
-       (rs6000_floatn_mode): New function.
- 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
-       _rdseed64_step): Uglify argument names and/or local variable names
-       in inline functions.
-       * config/i386/rtmintrin.h (_xabort): Likewise.
-       * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
-       _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
-       _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
-       _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
-       _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
-       _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
-       _mm_maskz_ternarylogic_epi32): Likewise.
-       * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
-       __lwpins32, __lwpins64): Likewise.
-       * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
-       _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
-       _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
-       _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
-       _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
-       _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
-       _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
-       _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
-       _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
-       _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
-       _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
-       _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
-       _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
-       _mm256_mask_i64gather_epi32): Likewise.
-       * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
-       * config/i386/ia32intrin.h (__writeeflags): Likewise.
-       * config/i386/pkuintrin.h (_wrpkru): Likewise.
-       * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
-       _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
-       _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
-       _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
-       _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
-       _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
-       _mm512_mask_prefetch_i64scatter_ps): Likewise.
-       * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
-       * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
-       _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
-       _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
-       _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
-       _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
-       _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
-       _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
-       * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
-       returning void.
-       (_fxrstor, _fxsave64, _fxrstor64): Likewise.
-       * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
-       Likewise.
-       * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
-       * config/i386/pkuintrin.h (_wrpkru): Likewise.  Add space after
-       function name.
-       (_rdpkru_u32): Add space after function name.
-       * config/i386/t-i386 (i386-c.o): Don't depend on
-       i386-builtin-types.inc.
-       (i386.o): Depend on i386-builtin-types.inc.
- 2016-08-19  Matthew Wahab  <matthew.wahab@arm.com>
-       PR target/77281
-       * config/arm/arm.c (neon_valid_immediate): Delete declaration.
-       Use const_vec_duplicate to check for duplicated elements.
- 2016-08-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77290
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
-       Fix flag_tree_parallelize_loops check.
- 2016-08-19  Richard Biener  <rguenther@suse.de>
-       * match.pd (x | 0 -> x): Add.
- 2016-08-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77286
-       * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
-       Deal with virtual PHIs being out-of-order.
- 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
-       * doc/invoke.texi (fverbose-asm): Note that source code lines
-       are emitted, and provide an example.
-       * final.c (asm_show_source): New function.
-       (final_scan_insn): Call asm_show_source.
- 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
-       param with diagnostic_kind.
-       (class colorizer): Similarly replace field m_diagnostic with
-       m_diagnostic_kind.
-       (colorizer::colorizer): Replace diagnostic
-       param with diagnostic_kind.
-       (colorizer::begin_state): Update for above field change.
-       (layout::layout): Replace diagnostic param with rich_location *
-       and diagnostic_kind.
-       (diagnostic_show_locus): Replace diagnostic param with richloc
-       and diagnostic_kind.
-       (class selftest::test_diagnostic_context): New class.
-       (selftest::test_diagnostic_show_locus_unknown_location): New
-       function.
-       (selftest::test_one_liner_simple_caret): New function.
-       (selftest::test_one_liner_caret_and_range): New function.
-       (selftest::test_one_liner_multiple_carets_and_ranges): New
-       function.
-       (selftest::test_one_liner_fixit_remove): New function.
-       (selftest::test_one_liner_fixit_replace): New function.
-       (selftest::test_diagnostic_show_locus_one_liner): New function.
-       (selftest::diagnostic_show_locus_c_tests): Call the new test
-       functions.
-       * diagnostic.c (diagnostic_initialize): Initialize
-       colorize_source_p, show_ruler_p and parseable_fixits_p.
-       (default_diagnostic_finalizer): Update for change to
-       diagnostic_show_locus.
-       (diagnostic_append_note): Likewise.
-       * diagnostic.h (diagnostic_show_locus): Replace
-       const diagnostic_info * param with location * and diagnostic_t.
- 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (saved_line_table): New global.
-       (class selftest::temp_line_table): Rename to line_table_test and
-       move declaration to selftest.h, and drop field m_old_line_table.
-       (selftest::temp_line_table::temp_line_table): Rename ctor to...
-       (selftest::line_table_test::line_table_test): ...this.  Add a
-       default ctor.  Store current value of line_table within
-       saved_line_table.
-       (selftest::temp_line_table::~temp_line_table): Rename dtor to...
-       (selftest::line_table_test::~line_table_test): ...this, and
-       restore line_table from the saved_line_table, rather than
-       m_old_line_table.
-       (selftest::test_accessing_ordinary_linemaps): Update for above
-       renaming.
-       (selftest::test_lexer): Likewise.
-       (struct selftest::lexer_test): Likewise.
-       (selftest::lexer_test::lexer_test): Likewise.
-       (selftest::input_c_tests): Move the looping over test cases from
-       here into...
-       (selftest::for_each_line_table_case): New function.
-       * input.h (saved_line_table): New decl.
-       * selftest.h (struct selftest::line_table_case): New forward decl.
-       (class selftest::line_table_test): New class, moved here from
-       selftest::temp_line_table in input.c, and renamed.
-       (selftest::for_each_line_table_case): New decl.
- 2015-08-18  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/72839
-       * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
- 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
-       PR middle-end/70895
-       * gimplify.c (omp_add_variable): Adjust/add variable mapping on
-       enclosing parallel construct for reduction variables on OpenACC loop
-       directives.
- 2016-08-18  Pierre-Marie de Rodat  <derodat@adacore.com>
-       * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
-       (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
-       -gdwarf-3.
-       (function_to_dwarf_procedure): Update comment.
- 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (diagnostics_file_cache_forcibly_evict_file): New
-       function.
-       * input.h (diagnostics_file_cache_forcibly_evict_file): New
-       declaration.
-       * selftest.c (selftest::temp_source_file::~temp_source_file):
-       Evict m_filename from the diagnostic file cache.
- 2016-08-18  Richard Biener  <rguenther@suse.de>
-       * tree-pass.h (make_pass_materialize_all_clones): Declare.
-       * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
-       make_pass_materialize_all_clones): New simple IPA pass encapsulating
-       clone materialization.
-       * passes.def (all_late_ipa_passes): Start with
-       pass_materialize_all_clones.
-       * cgraphunit.c (symbol_table::compile): Remove call to
-       materialize_all_clones.
-       * tree-into-ssa.c: Include statistics.h.
-       (update_ssa): Count number of times we do incremental/rewrite
-       SSA update.
- 2016-08-18  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/77282
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
-       When doing auto-parallelizing also prevent use of PHIs that
-       carry dependences across loop backedges.
- 2016-08-18  Tamar Christina  <tamar.christina@arm.com>
-           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
- 2016-08-18  Richard Biener  <rguenther@suse.de>
-       * ssa-iterators.h (ssa_vuse_operand): New inline.
-       * tree-if-conv.c (ifc_temp_var): Update virtual operand.
-       (predicate_all_scalar_phis): Use remove_phi_node to remove
-       phi nodes predicated.  Delay removing virtual PHIs.
-       (predicate_mem_writes): Update virtual operands.
-       (combine_blocks): Likewise.  Propagate out remaining virtual PHIs.
-       (tree_if_conversion): Do not rewrite virtual SSA form.
-       * tree-phinodes.c (release_phi_node): Make static.
-       * tree-phinodes.h (release_phi_node): Remove.
- 2016-08-18  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
-       codes that appear in bdesc_* arrays, instead include i386-builtin.def
-       twice to define those.
-       (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
-       bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
-       bdesc_multi_arg): Define by including i386-builtin.def the third time.
-       * config/i386/i386-builtin.def: New file.
- 2016-08-17  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (get_source_range_for_char): Rename to...
-       (selftest::get_source_range_for_char): ...this, and move within
-       the #if CHECKING_P guard.
-       (get_num_source_ranges_for_substring): Rename to...
-       (selftest::get_num_source_ranges_for_substring): ...this, move
-       within the #if CHECKING_P guard, and make static.
-       (selftest::assert_num_substring_ranges): Initialize
-       actual_num_ranges.
- 2016-08-18  Alan Modra  <amodra@gmail.com>
-       PR rtl-optimization/72771
-       * reload.c (find_reloads): Don't assume that a subreg mem is OK
-       when find_reloads_toplev returns address_reloaded==-1.
-       (alternative_allows_const_pool_ref): Update comment.
- 2015-08-17  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71752
-       * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
-       * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
- 2016-08-17  Jakub Jelinek  <jakub@redhat.com>
-       * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
-       instead of testing ECF_NORETURN bit in gimple_call_flags.
-       * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
-       * predict.c (tree_bb_level_predictions): Likewise.
-       * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
-       PR middle-end/77259
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
-       turning a call into __builtin_unreachable-like noreturn call, adjust
-       gimple_call_set_fntype.
-       * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
-       gimple_call_fntype has void return type.
- 2016-08-17  Chung-Lin Tang  <cltang@codesourcery.com>
-       * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
-       maybe_lookup_decl, to handle nested acc loop directives.
- 2016-08-17  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/76490
-       * tree-vrp.c (update_value_range): Preserve overflow infinities
-       when intersecting with ranges from get_range_info.
-       (operand_less_p): Handle overflow infinities correctly.
-       (value_range_constant_singleton): Use vrp_operand_equal_p
-       to handle overflow max/min correctly.
-       (vrp_valueize): Likewise.
-       (union_ranges): Likewise.
-       (intersect_ranges): Likewise.
-       (vrp_visit_phi_node): Improve iteration limitation to only
-       apply when we'll possibly re-visit the PHI via a changed argument
-       on the backedge.
- 2016-08-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
-       (MULTILIB_REQUIRED): This by specifying multilib needing to be built
-       rather than those that should not be built.
- 2016-08-17  Stanislaw Halik  <sthalik@misaki.pl>
-       PR target/66488
-       * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
- 2016-08-17  Richard Biener  <rguenther@suse.de>
-       * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
-       (verify_vssa): New function verifying virtual SSA form.
-       (verify_ssa): Call it.
-       * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
-       Do not apply loop-closed SSA handling to virtuals.
-       * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
-       * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
-       when rewriting their symbol.
-       (prepare_def_site_for): Likewise.
-       * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
-       operands of moved stmts.
- 2016-08-17  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/23855
-       * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
-       (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
-       find guards to hoist.  Do not update SSA form but rewrite virtuals
-       into loop closed SSA.
-       (find_loop_guard): Adjust to skip already hoisted guards.  Do
-       not mark virtuals for renaming or update SSA form.
- 2016-08-17  Martin Liska  <mliska@suse.cz>
-       * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
-       a LONG_LONG_TYPE_SIZE comparison.
-       * gcov-io.h: Remove macro definitions.
-       * tree-profile.c (gimple_gen_edge_profiler): Replace usage
-       of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
-       comparison.
- 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
-       that builtins not mentioned in bdesc_* arrays come first, then
-       the ones mentioned in bdesc_* arrays in the order they appear in
-       the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
-       IX86_BUILTIN__BDESC_*_LAST enumerator.
-       (bdesc_mpx): Fix up a comment typo.
-       (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
-       __builtin_ia32_vpcomneu[bwdq] builtins.
-       (BDESC_VERIFY, BDESC_VERIFYS): Define.
-       (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
-       enum ix86_builtins ordering.
-       (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
-       for direct bdesc_* array member access instead of searching all the
-       arrays until an fcode match is found.
- 2016-08-16  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
-       pattern as define_insn_and_split.  Split insn before reload to
-       ashl<mode>3_1.
-       (*<shift_insn><mode>3_mask): Ditto.  Split insn before reload to
-       <shift_insn><mode>3_1.
-       (*<rotate_insn><mode>3_mask): Ditto.  Split insn before reload to
-       <rotate_insn><mode>3_1.
- 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
-       PR c/72857
-       * input.c (get_source_range_for_substring): Rename to...
-       (get_source_location_for_substring): ...this, adding param
-       "caret_idx", and converting output param from source_range * to
-       location_t *.
-       (get_source_range_for_char): New function.
-       (get_num_source_ranges_for_substring): Update comment to reflect
-       above renaming.
-       (assert_char_at_range): Update to use get_source_range_for_char
-       rather than get_source_range_for_substring.
-       (test_lexer_string_locations_concatenation_2): Likewise.
-       * substring-locations.h (get_source_range_for_substring): Rename
-       to...
-       (get_source_location_for_substring): ...this, and adding param
-       "caret_idx", and converting output param from source_range * to
-       location_t *.
- 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (class selftest::temp_source_file): Move to
-       selftest.h.
-       (selftest::temp_source_file::temp_source_file): Move to
-       selftest.c.
-       (selftest::temp_source_file::~temp_source_file): Likewise.
-       * selftest.c (selftest::temp_source_file::temp_source_file): Move
-       here from input.c.
-       (selftest::temp_source_file::~temp_source_file): Likewise.
-       * selftest.h (class selftest::temp_source_file): Move here from
-       input.c
- 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
-       PR target/71910
-       * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before
-       inlining, add cgraph edge for the added __builtin_unreachable call.
-       PR middle-end/67485
-       * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
-       only cast it to SHWI for the final comparison.
- 2016-08-16  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/36412
-       * doc/gcov.texi: Document --hash-filenames(-x).
-       * gcov.c (print_usage): Add the option.
-       (process_args): Process the option, sort options alphabetically.
-       (md5sum_to_hex): New function.
-       (make_gcov_file_name): Do the md5sum and append it to a
-       filename.
- 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/69848
-       * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
-       and swtich operands to avoid additional NOT instruction.
-       (vcond<v_cmp_mixed><mode>): Ditto.
-       (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
- 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
-       * doc/install.texi (*-*-solaris2*): Adjust latest change.
- 2016-08-16  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/76783
-       * tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
-       BB visited flags at start.
- 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/72817
-       PR tree-optimization/73450
-       * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
-       multiple_of_p for adjusted IV.base.
- 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/72867
-       * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
-       Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
-       for !flag_finite_math_only or flag_signed_zeros.
-       (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
-       *<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
-       depend on flag_finite_math_only.
-       (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
-       New insn pattern.
-       (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
-       (*ieee_smin<mode>3): Ditto.
-       (*ieee_smax<mode>3): Ditto.
-       * config/i386/mmx.md (mmx_<code>v2sf3): Emit
-       mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
-       flag_signed_zeros.
-       (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
-       depend on flag_finite_math_only.
-       (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
-       (*mmx_<code>v2sf3): Remove.
-       * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
-       * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
-       flag_signed_zeros instead of !flag_unsafe_math_optimizations.
- 2016-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR rtl-optimization/73650
-       * lra-constraints.c (simple_move_p): If the insn is multiple_sets
-       it is not a simple move.
- 2016-08-15  Martin Liska  <mliska@suse.cz>
-       PR driver/72765
-       * gcc.c (do_spec_1): Call save_string with the right size.
-       (save_string): Do an assert about string we copy.
- 2016-08-15  Richard Biener  <rguenther@suse.de>
-       * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
-       * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
-       TV_MACH_DEP.
-       (pass_data_stv): Likewise.
- 2016-08-15  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/73434
-       * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
-       TBAA info on the base when forwarding a non-invariant address.
- 2016-08-15  Jakub Jelinek  <jakub@redhat.com>
-       * dwarf2out.c (struct checksum_attributes): Add
-       at_string_length_bit_size and at_string_length_byte_size fields.
-       (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
-       and DW_AT_string_length_byte_size.
-       (die_checksum_ordered): Handle at_string_length_bit_size and
-       at_string_length_byte_size.
-       (gen_array_type_die): For dwarf_version >= 5 emit
-       DW_AT_string_length_byte_size instead of DW_AT_byte_size.
-       (adjust_string_types): For dwarf_version >= 5 remove
-       DW_AT_string_length_byte_size instead of DW_AT_byte_size.
-       (resolve_addr): Likewise.
-       PR debug/71906
-       * dwarf2out.c (string_types): New variable.
-       (gen_array_type_die): Change early_dwarf handling of
-       DW_AT_string_length, create DW_OP_call4 referencing the
-       length var temporarily.  Handle parameters that are pointers
-       to string length.
-       (adjust_string_types): New function.
-       (gen_subprogram_die): Temporarily set string_types to local var,
-       call adjust_string_types if needed.
-       (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
-       New functions.
-       (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
- 2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>
-       * doc/install.texi (*-*-solaris2*): Fix version number and document
-       requirement on GNU make for building libjava with the Solaris linker.
- 2016-08-15  Martin Liska  <mliska@suse.cz>
-           Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/72824
-       * tree-loop-distribution.c (const_with_all_bytes_same)
-       <case VECTOR_CST>: Fix a typo.
- 2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/76342
-       * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
-       Renamed from _mm512_undefined_si512.
-       (_mm_undefined_si512): New definition.
- 2016-08-13  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
-       into PHIs and update the lattice for its def.
- 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
-       PR c/71512
-       * ubsan.c (instrument_si_overflow): Pass true instead of false
-       to gsi_replace.
-       (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
-       of bbs.  Return TODO_cleanup_cfg if any returned true.
- 2016-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
-       ISA 3.0 MTVSRDD instruction.
-       (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
-       vecperm.
- 2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR tree-optimization/71083
-       * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
-       bitfield access when possible.
- 2016-08-12  Patrick Palka  <ppalka@gcc.gnu.org>
-       PR middle-end/71654
-       * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
-       sign-changing cast from a shorter unsigned type to a wider
-       signed type.
- 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
-       vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
-       vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
- 2016-08-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
-       Correct costs for vec_construct.
- 2016-08-12  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/69848
-       * tree-vectorizer.h (enum vect_def_type): New condition reduction
-       type CONST_COND_REDUCTION.
-       * tree-vect-loop.c (vectorizable_reduction): Support new condition
-       reudction type CONST_COND_REDUCTION.
- 2016-08-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/57326
-       * tree-ssa-pre.c (fully_constant_expression): Handle simplification
-       returning an SSA name.
-       (phi_translate_1): When fully_constant_expression returns a NAME
-       make sure we have a leader for it.
- 2016-08-12  Martin Liska  <mliska@suse.cz>
-           Adam Fineman  <afineman@afineman.com>
-       * gcov.c (process_file): Create .gcov file when .gcda
-       file is missing.
- 2016-08-12  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * alias.c (find_base_value): Adjust fall through comment.
-       * cfgexpand.c (expand_debug_expr): Likewise.
-       * combine.c (find_split_point): Likewise.
-       (expand_compound_operation): Likewise.  Add FALLTHRU.
-       (make_compound_operation): Adjust fall through comment.
-       (canon_reg_for_combine): Add FALLTHRU.
-       (force_to_mode): Adjust fall through comment.
-       (simplify_shift_const_1): Likewise.
-       (simplify_comparison): Likewise.
-       * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
-       FALLTHRU.
-       * config/aarch64/predicates.md: Likewise.
-       * config/i386/i386.c (function_arg_advance_32): Likewise.
-       (ix86_gimplify_va_arg): Likewise.
-       (print_reg): Likewise.
-       (ix86_print_operand): Likewise.
-       (ix86_build_const_vector): Likewise.
-       (ix86_expand_branch): Likewise.
-       (ix86_sched_init_global): Adjust fall through comment.
-       (ix86_expand_args_builtin): Add FALLTHRU.
-       (ix86_expand_builtin): Likewise.
-       (ix86_expand_vector_init_one_var): Likewise.
-       * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
-       (rs6000_adjust_cost): Likewise.
-       (insn_must_be_first_in_group): Likewise.
-       * config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
-       * dbxout.c (dbxout_symbol): Adjust fall through comment.
-       * df-scan.c (df_uses_record): Likewise.
-       * dojump.c (do_jump): Add FALLTHRU.
-       * dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
-       comment.
-       (resolve_args_picking_1): Adjust fall through comment.
-       (loc_list_from_tree_1): Likewise.
-       * expmed.c (make_tree): Likewise.
-       * expr.c (expand_expr_real_2): Add FALLTHRU.
-       (expand_expr_real_1): Likewise.  Adjust fall through comment.
-       * fold-const.c (const_binop): Adjust fall through comment.
-       (fold_truth_not_expr): Likewise.
-       (fold_cond_expr_with_comparison): Add FALLTHRU.
-       (fold_binary_loc): Likewise.
-       (contains_label_1): Adjust fall through comment.
-       (multiple_of_p): Likewise.
-       * gcov-tool.c (process_args): Add FALLTHRU.
-       * genattrtab.c (check_attr_test): Likewise.
-       (write_test_expr): Likewise.
-       * genconfig.c (walk_insn_part): Likewise.
-       * genpreds.c (validate_exp): Adjust fall through comment.
-       (needs_variable): Likewise.
-       * gensupport.c (get_alternatives_number): Add FALLTHRU.
-       (subst_dup): Likewise.
-       * gimple-pretty-print.c (dump_gimple_assign): Likewise.
-       * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
-       (gimplify_scan_omp_clauses): Add FALLTHRU.
-       (goa_stabilize_expr): Likewise.
-       * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
-       through comment.
-       * hsa-gen.c (get_address_from_value): Likewise.
-       * ipa-icf.c (sem_function::hash_stmt): Likewise.
-       * ira.c (ira_setup_alts): Add FALLTHRU.
-       * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
-       comment.
-       * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
-       * opts.c (common_handle_option): Likewise.
-       * read-rtl.c (read_rtx_code): Likewise.
-       * real.c (round_for_format): Likewise.
-       * recog.c (asm_operand_ok): Likewise.
-       * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
-       * reload1.c (set_label_offsets): Likewise.
-       (eliminate_regs_1): Likewise.
-       (reload_reg_reaches_end_p): Likewise.
-       * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
-       (rtx_cost): Likewise.
-       * sched-rgn.c (is_exception_free): Likewise.
-       * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
-       * stor-layout.c (int_mode_for_mode): Likewise.
-       * toplev.c (print_to_asm_out_file): Likewise.
-       (print_to_stderr): Likewise.
-       * tree-cfg.c (gimple_verify_flow_info): Likewise.
-       * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
-       (chrec_fold_multiply): Likewise.
-       (evolution_function_is_invariant_rec_p): Likewise.
-       (for_each_scev_op): Likewise.
-       * tree-data-ref.c (siv_subscript_p): Likewise.
-       (get_references_in_stmt): Likewise.
-       * tree.c (find_placeholder_in_expr): Adjust fall through comment.
-       (substitute_in_expr): Likewise.
-       (type_cache_hasher::equal): Likewise.
-       (walk_type_fields): Likewise.
-       * var-tracking.c (adjust_mems): Add FALLTHRU.
-       (set_dv_changed): Adjust fall through comment.
-       * varasm.c (default_function_section): Add FALLTHRU.
- 2016-08-12  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * tree-complex.c (expand_complex_division): Add missing break.
- 2016-08-12  Richard Biener  <rguenther@suse.de>
-       * passes.c (execute_todo): Do not push/pop TV_TODO.
-       (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
-       (execute_one_pass): Likewise.
-       * common.opt (ftime-report-details): New switch.
-       * doc/invoke.texi (ftime-report-details): Document.
-       * timevar.h (timer::print_row): Adjust signature.
-       (timer::all_zero): New static helper.
-       (timer::child_map_t): New typedef.
-       (timer::time_var_def): Add children field.
-       * timevar.c (timer::named_items::print): Adjust.
-       (timer::~timer): Free timevar recorded children.
-       (timer::pop_internal): When -ftime-report-details record
-       time spent in sub-timevars.
-       (timer::print_row): Adjust.
-       (timer::print): Print sub-timevar stats, use all_zero.
-       * timevar.def (TV_TODO): Remove.
- 2016-08-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/72851
-       * tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
-       worklists to use bitmaps indexed in execution order.
-       (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
-       bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
-       (cfg_blocks): Make a bitmap.
-       (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
-       New globals.
-       (cfg_blocks_empty_p): Adjust.
-       (cfg_blocks_add): Likewise.
-       (cfg_blocks_get): Likewise.
-       (add_ssa_edge): Likewise.
-       (add_control_edge): Likewise.
-       (simulate_stmt): Likewise.
-       (process_ssa_edge_worklist): Likewise.
-       (simulate_block): Likewise.
-       (ssa_prop_init): Compute PRE order and stmt UIDs.
-       (ssa_prop_fini): Adjust.
-       (ssa_propagate): Adjust.
- 2016-08-12  Richard Biener  <rguenther@suse.de>
-       * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
-       the currently executable edges have fixed ranges.  Always
-       go through update_value_range.
- 2016-08-12  Alexandre Oliva  <aoliva@redhat.com>
-       PR debug/63240
-       * langhooks-def.h
-       (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
-       (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
-       (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
-       (LANG_HOOKS_DECLS): Add it.
-       * langhooks.h (struct lang_hooks_for_decls): Add
-       function_decl_defaulted.  Const_tree-ify
-       function_decl_explicit_p and function_decl_deleted_p.
-       * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
-       attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
-       also at strict DWARF v5.
-       PR debug/55641
-       * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
-       TYPE_QUAL_CONST in reference-typed decls.
-       PR debug/49366
-       * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
-       in DW_OP_pieces, just enough to handle pointers to member
-       functions.
-       (gen_remaining_tmpl_value_param_die_attribute): Use a location
-       expression on DWARFv5 if a constant value doesn't work.
- 2016-08-11  David Malcolm  <dmalcolm@redhat.com>
-       * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
-       * selftest.c (selftest::test_assertions): New function.
-       (selftest::selftest_c_tests): New function.
-       * selftest.h (selftest::selftest_c_tests): New declaration.
- 2016-08-11  Richard Biener  <rguenther@suse.de>
-           Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR rtl-optimization/72855
-       * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
- 2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR target/72863
-       * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
-       (vsx_store_<mode>): Likewise.
- 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
-       * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
-       TImode CONST_WIDE_INT store.
-       (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
- 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
-       * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
-       mode if unaligned SSE load and store are optimal.
- 2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR tree-optimization/71083
-       * tree-predcom.c (ref_at_iteration): Correctly align the
-       reference type.
- 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390-builtin-types.def: Add INT128 types.
-       * config/s390/s390-builtins.def: Add INT128 variants for the add
-       sub low-level builtins dealing with TImode.
-       * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
-       via subreg when expanding a builtin.
-       * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
-       UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
-       Fix comment.
-       * config/s390/vecintrin.h: Adjust builtin names accordingly.
-       * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
-       ("vec_addc<mode>", "vec_addc_u128"): Merge to
-       "vacc<bhfgq>_<mode>".
-       ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
-       ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
-       ("vec_subc<mode>", "vec_subc_u128"): Merge to
-       "vscbi<bhfgq>_<mode>".
-       ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
-       ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
- 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
- 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
-       * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
-       unused declaration.
-       (vcond<v_cmp_mixed><mode>): Ditto.
-       (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
- 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
-       * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
-       variable explicitly, also assert on it before use.
- 2016-08-11  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/72772
-       * cfgloopmanip.c (create_preheader): Use split_edge if there
-       is a single loop entry, avoiding degenerate PHIs.
- 2016-08-11  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
-       unconditional TODO_cleanup_cfg.
-       (pass_thread_jumps::execute): Initialize loops, perform a CFG
-       cleanup only if we threaded a jump.
- 2016-08-11  Alan Modra  <amodra@gmail.com>
-       PR target/71680
-       * lra-constraints.c (simplify_operand_subreg): Allow subreg
-       mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
-       slow.  Emit two reloads for slow mem case, first loading in
-       fast innermode, then converting to required mode.
- 2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.h (vec_extract_exp): New macro.
-       (vec_extract_sig): New macro.
-       (vec_insert_exp): New macro.
-       (vec_test_data_class): New macro.
-       (scalar_extract_exp): New macro.
-       (scalar_extract_sig): New macro.
-       (scalar_insert_exp): New macro.
-       (scalar_test_data_class): New macro.
-       (scalar_test_neg): New macro.
-       (scalar_cmp_exp_gt): New macro.
-       (scalar_cmp_exp_lt): New macro.
-       (scalar_cmp_exp_eq): New macro.
-       (scalar_cmp_exp_unordered): New macro.
-       * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
-       to enforce constraint that operand is a 7-bit unsigned literal.
-       * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
-       for power9 built-ins.
-       (BU_P9V_VSX_2): Likewise.
-       (BU_P9V_64BIT_VSX_2): Likewise.
-       (VSEEDP): Add scalar extract exponent support.
-       (VSEESP): Add scalar extract signature support.
-       (VSTDCNDP): Add scalar test negative support.
-       (VSTDCNSP): Likewise.
-       (VSIEDP): Add scalar insert exponent support.
-       (VSCEDPGT): Add scalar compare exponent greater than support.
-       (VSCEDPLT): Add scalar compare exponent less than support.
-       (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
-       (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
-       (VSTDCDP): Add scalar test data class support.
-       (VSTDCSP): Likewise.
-       (VSEEDP): Add overload support for scalar extract exponent
-       operation.
-       (VSESDP): Add overload support for scalar extract signature
-       operation.
-       (VSTDCN): Add overload support for scalar test negative
-       operation.
-       (VSTDCNDP): Add overload support for scalar test negative
-       operation.
-       (VSTDCNSP): Add overload support for scalar test negative
-       operation.
-       (VSIEDP): Add overload support for scalar insert exponent
-       operation.
-       (VSTDC): Add overload support for scalar test data class
-       operation.
-       (VSTDCDP): Add overload support for scalar test data class
-       operation.
-       (VSTDCSP): Add overload support for scalar test data class
-       opreation.
-       (VSCEDPGT): Add overload support for scalar compare exponent
-       greater than operation.
-       (VSCEDPLT): Add overload support for scalar compare exponent
-       less than operation.
-       (VSCEDPEQ): Add overload support for scalar compare exponent
-       test-for-equality operation.
-       (VSCEDPUO): Add overload support for scalar compare exponent
-       test-for-unordered operation.
-       (VEEDP): Add vector extract exponent support.
-       (VEESP): Likewise.
-       (VESDP): Add vector extract significand support.
-       (VESSP): Likewise.
-       (VIEDP): Add vector insert exponent support.
-       (VIESP): Likewise.
-       (VTDCDP): Add vector test data class support.
-       (VTDCSP): Likewise.
-       (VES): Add overload support for vector extract significand operation.
-       (VESDP): Likewise.
-       (VESSP): Likewise
-       (VEE): Add overload support for vector extract exponent operation.
-       (VEEDP): Likewise.
-       (VEESP): Likewise.
-       (VTDC): Add overload support for vector test data class operation.
-       (VTDCDP): Likewise.
-       (VTDCSP): Likewise.
-       (VIE): Add overload support for vector insert exponent operation.
-       (VIEDP): Likewise.
-       (VIESP): Likewise.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
-       overloaded binary floating point functions.
-       (altivec_resolve_overloaded_builtin): Improve error messages to
-       distinguish between functions not supported in the current
-       compiler configuration and functions that were invoked with an
-       invalid parameter combination, and include the built-in function
-       name in both error messages.
-       * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
-       New prototype.
-       * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
-       function.
-       (rs6000_expand_binop_builtin): Add check to enforce that argument
-       2 of the test data class operations is a 7-bit unsigned literal.
-       (rs6000_invalid_builtin): Add code to issue an error message if a
-       built-in function that requires the power9_vector and -m32
-       command-line options is compiled without these options.
-       * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
-       (UNSPEC_VSX_SXSIGDP): New value.
-       (UNSPEC_VSX_SXSIGPDP): New value.
-       (UNSPEC_VSX_SIEXPDP): New value.
-       (UNSPEC_VSX_SCMPEXPDP): New value.
-       (UNSPEC_VSX_STSTDC): New value.
-       (UNSPEC_VSX_VXEXP): New value.
-       (UNSPEC_VSX_VXSIG): New value.
-       (UNSPEC_VSX_VIEXP): New value.
-       (UNSPEC_VSX_VTSTDC): New value.
-       (xsxexpdp): New insn for scalar extract exponent.
-       (xsxsigdp): New insn for scalar extract significand.
-       (xsiexpdp): New insn for scalar insert exponent.
-       (xscmpexpdp_<code>): New expansion for scalar compare exponents.
-       (*xscmpexpdp): New insn for scalar compare exponents.
-       (xststdc<Fvsx): New expansion for both single- and
-       double-precision scalar test data class operations.
-       (xststdcneg<Fvsx>): New expansion for both single- and
-       double-precision scalar test for negative value operations.
-       (*xststdc<Fvsx>): New insn for scalar test data class
-       operation.
-       (xvxexp<VSs>): New insn for single- and double-precision
-       vector extract exponent operation.
-       (xvxsig<VSs>): New insn for single- and double-precision
-       vector extract significand operation.
-       (xviexp<VSs>): New insn for single- and double-precision
-       vector insert exponent operation.
-       (xvtstdc<VSs>): New insn for single- and double-precision
-       vector test data class operation.
-       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
-       built-in functions to represent the Power9 binary floating-point
-       support instructions.
- 2016-08-10  bin cheng  <bin.cheng@arm.com>
-       * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
- 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
-           Renlin Li  <renlin.li@arm.com>
-           Bin Cheng  <bin.cheng@arm.com>
-       * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
-       * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
-       gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
-       (aarch64_vcond_internal<mode><mode>): Delete pattern.
-       (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
-       (vcond<v_cmp_result><mode>): Ditto.
-       (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
-       (vcondu<mode><mode>): Ditto.
-       (vcond<v_cmp_mixed><mode>): New pattern.
-       (vcondu<mode><v_cmp_mixed>): New pattern.
-       (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
-       of aarch64_vcond_internal.
- 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
-           Renlin Li  <renlin.li@arm.com>
-           Bin Cheng  <bin.cheng@arm.com>
-       * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
-       (vec_cmp<mode><v_cmp_result>): New pattern.
-       (vec_cmpu<mode><mode>): New pattern.
-       (vcond_mask_<mode><v_cmp_result>): New pattern.
- 2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/71734
-       * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
-       REF_LOOP, invoke ref_indep_loop_p_1.
-       (outermost_indep_loop): Pass LOOP argumnet where REF was defined
-       to ref_indep_loop_p.
-       (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
-       combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
-       is inside LOOP, do not cache dpendence value for loops with
-       non-zero SAFELEN.
-       (ref_indep_loop_p_2): Delete function.
-       (can_sm_ref_p): Pass LOOP as additional argument to
-       ref_indep_loop_p.
- 2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/72853
-       * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
-       being an offsettable address.
- 2016-08-10  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/58306
-       * tree-profile.c (gimple_init_edge_profiler): Create conditionally
-       atomic variants of profile update functions.
- 2016-08-10  Martin Liska  <mliska@suse.cz>
-       Cherry picked (and modified) from google-4_7 branch
-       2012-12-26  Rong Xu  <xur@google.com>
-       * common.opt (fprofile-update): Add new flag.
-       * coretypes.h: Define enum profile_update.
-       * doc/invoke.texi: Document -fprofile-update.
-       * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
-       GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
-       * tree-profile.c (gimple_init_edge_profiler): Generate
-       also atomic profiler update.
-       (gimple_gen_edge_profiler): Likewise.
- 2016-08-10  David Malcolm  <dmalcolm@redhat.com>
-       * toplev.c (finalize): Set aux_info_file, asm_out_file, and
-       stack_usage_file to NULL after fclose calls.
- 2016-08-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       PR target/71873
-       * reload.c (push_reload): Compute subreg_in_class for
-       subregs of constants and plus expressions. Remove special
-       handling of SYMBOL_REFs.
- 2016-08-10  Alan Modra  <amodra@gmail.com>
-       PR target/71680
-       * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
-       SImode for TARGET_E500_DOUBLE when given SImode.
- 2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>
-       * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
-       unused variable __O.
- 2016-08-09  Martin Liska  <mliska@suse.cz>
-       * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
-       _gcov_reset to __gcov_reset.
-       * doc/gcov-tool.texi: Fix typo.
- 2016-08-09  Martin Liska  <mliska@suse.cz>
-       * value-prof.c (gimple_divmod_values_to_profile): Do not
-       instrument MOD histogram if a value is not a SSA name.
- 2016-08-09  Martin Liska  <mliska@suse.cz>
-       * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
-       values.
- 2016-08-09  Renlin Li  <renlin.li@arm.com>
-       PR middle-end/64971
-       * calls.c (prepare_call_address): Convert funexp to Pmode when
-       necessary.
-       * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
-       (sibcall_value): Likewise.
- 2016-08-09  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * cselib.c (cselib_expand_value_rtx_1): Add return.
-       * gengtype.c (dbgprint_count_type_at): Likewise.
-       * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
-       * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
- 2016-08-09  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/71981
-       * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
-       if instance is a MEM_REF.
- 2016-08-09  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/72843
-       * config/i386/i386.md (*movtf_internal): Use
-       lra_in_progress || reload_completed instead of !can_create_pseudo_p
-       in the insn constraint.
-       (*movxf_internal): Ditto.
-       (*movdf_internal): Ditto.
-       (*movsf_internal): Ditto.
- 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/72772
-       * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
-       for expanded base.
- 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/72772
-       * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
-       parameter STOP.
-       * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
-       parameter STOP and update calls.  Move expand_simple_operations
-       function call from here...
-       (simplify_using_initial_conditions): ...to here.  Delete parameter
-       STOP.
-       (tree_simplify_using_condition): Delete parameter STOP.
-       * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
-       simplify_using_initial_conditions.
- 2016-08-09  Matthew Fortune  <matthew.fortune@imgtec.com>
-       PR c/65345
-       * config/mips/mips.c (mips_atomic_assign_expand_fenv):
-       Use create_tmp_var_raw instead of create_tmp_var.
- 2016-08-09  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-threadbackward.c (profitable_jump_thread_path):
-       Treat same SSA names related.
- 2016-08-09  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/72824
-       * tree-loop-distribution.c (const_with_all_bytes_same): Verify
-       real_zerop is not negative.
- 2016-08-09  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71802
-       * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
-       all merge opportunities with the predecessor.
- 2016-08-09  Richard Biener  <rguenther@suse.de>
-       PR ipa/68273
-       * ipa-prop.c (ipa_modify_formal_parameters): Build
-       parameter types with natural alignment also for the
-       over-aligned case.
- 2016-08-08  Andi Kleen  <ak@linux.intel.com>
-       * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
- 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
-       PR c/64955
-       * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
-       do-nothing langhook.
-       (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
-       * langhooks.h (struct lang_hooks): Add run_lang_selftests.
-       * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
-       (selftest::run_tests): Call lang_hooks.run_lang_selftests.
- 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
-       PR bootstrap/72844
-       * input.c: Ensure that HAVE_ICONV is defined.
- 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/72781
-       * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
-       private vars for lastprivate and for linear iterator.
-       PR middle-end/68762
-       * omp-simd-clone.c: Include varasm.h.
-       (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
-       DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
-       DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
-       update function name.
- 2016-07-29  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
-       * config/avr/driver-avr.c (specfiles_doc_url): Remove.
-       (avr_diagnose_devicespecs_error): Remove.
-       (avr_devicespecs_file): Remove composing absolute path for specfile
-       and its verbose info. Remove conditions to check specs-file,
- 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/72821
-       * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
-       just return false for them.
- 2016-08-08  Alan Modra  <amodra@gmail.com>
-       PR target/72771
-       * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
-       toc refs created during reload.  Update function comment.
- 2016-08-08  Alan Modra  <amodra@gmail.com>
-       PR target/72802
-       * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
-       alternatives.  Put loads first, then stores, and reg/reg moves
-       within same class later.  Delete attr length.
- 2016-08-08  Alan Modra  <amodra@gmail.com>
-       PR target/72802
-       * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
-       (mem_operand_ds_form): New predicate.
-       * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
-       * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
-       * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
-       * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
-       (extendsfdf2_fpr): Replace o constraint with wY.
- 2016-08-07  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-threadbackward.c: Include tree-inline.h
-       (profitable_jump_thread_path): Use estimate_num_insns to estimate
-       size of copied block; for cold paths reduce duplication.
-       (find_jump_threads_backwards): Remove redundant tests.
-       (pass_thread_jumps::gate): Enable for -Os.
- 2016-08-07  Jakub Jelinek  <jakub@redhat.com>
-       PR c/72816
-       * stor-layout.c (layout_decl): Fix up formatting.
-       (relayout_decl): Allow DECL to be FIELD_DECL.
- 2016-08-07  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
- 2016-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * data-streamer-in.c (streamer_read_wide_int): New.
-       (streamer_read_widest_int): Renamed function.
-       * data-streamer-out.c (streamer_write_wide_int): New
-       (streamer_write_widest_int): Renamed function.
-       * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
-       data-stream-in.c.
-       (input_cfg): Call renamed function.
-       * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
-       data-stream-out.c.
-       (output_cfg): Call renamed function.
-       * data-streamer.h: Add declarations.
- 2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * tree-ssa-ccp.c (extend_mask): New param sgn.
-       Remove ORing with wi::mask.
-       (get_default_value): Adjust call to extend_mask to pass sign.
-       (evaluate_stmt): Likewise.
- 2016-08-06  Jakub Jelinek  <jakub@redhat.com>
-       * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
-       INT64_MAX.
- 2016-08-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
-       transform if operand's type is pointer to function or method.
- 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
-       PR tree-optimization/18046
-       * tree-ssa-threadedge.c: Include cfganal.h.
-       (simplify_control_statement_condition): If simplifying a
-       GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
-       with the dominating ASSERT_EXPR before handing it off to VRP.
-       Mention that a CASE_LABEL_EXPR may be returned.
-       (thread_around_empty_blocks): Adjust to handle
-       simplify_control_statement_condition() returning a
-       CASE_LABEL_EXPR.
-       (thread_through_normal_block): Likewise.
-       * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
-       a switch statement by trying to determine which case label
-       will be taken.
- 2016-08-05  Vladimir Makarov  <vmakarov@redhat.com>
-       PR rtl-optimization/69847
-       * lra-constraints.c (process_invariant_for_inheritance): Save
-       pattern instead of src.
-       (remove_inheritance_pseudos): Use the pattern.  Add assert.
- 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (string_concat::string_concat): New constructor.
-       (string_concat_db::string_concat_db): New constructor.
-       (string_concat_db::record_string_concatenation): New method.
-       (string_concat_db::get_string_concatenation): New method.
-       (string_concat_db::get_key_loc): New method.
-       (class auto_cpp_string_vec): New class.
-       (get_substring_ranges_for_loc): New function.
-       (get_source_range_for_substring): New function.
-       (get_num_source_ranges_for_substring): New function.
-       (class selftest::lexer_test_options): New class.
-       (struct selftest::lexer_test): New struct.
-       (class selftest::ebcdic_execution_charset): New class.
-       (selftest::ebcdic_execution_charset::s_singleton): New variable.
-       (selftest::lexer_test::lexer_test): New constructor.
-       (selftest::lexer_test::~lexer_test): New destructor.
-       (selftest::lexer_test::get_token): New method.
-       (selftest::assert_char_at_range): New function.
-       (ASSERT_CHAR_AT_RANGE): New macro.
-       (selftest::assert_num_substring_ranges): New function.
-       (ASSERT_NUM_SUBSTRING_RANGES): New macro.
-       (selftest::assert_has_no_substring_ranges): New function.
-       (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
-       (selftest::test_lexer_string_locations_simple): New function.
-       (selftest::test_lexer_string_locations_ebcdic): New function.
-       (selftest::test_lexer_string_locations_hex): New function.
-       (selftest::test_lexer_string_locations_oct): New function.
-       (selftest::test_lexer_string_locations_letter_escape_1): New function.
-       (selftest::test_lexer_string_locations_letter_escape_2): New function.
-       (selftest::test_lexer_string_locations_ucn4): New function.
-       (selftest::test_lexer_string_locations_ucn8): New function.
-       (selftest::uint32_from_big_endian): New function.
-       (selftest::test_lexer_string_locations_wide_string): New function.
-       (selftest::uint16_from_big_endian): New function.
-       (selftest::test_lexer_string_locations_string16): New function.
-       (selftest::test_lexer_string_locations_string32): New function.
-       (selftest::test_lexer_string_locations_u8): New function.
-       (selftest::test_lexer_string_locations_utf8_source): New function.
-       (selftest::test_lexer_string_locations_concatenation_1): New
-       function.
-       (selftest::test_lexer_string_locations_concatenation_2): New
-       function.
-       (selftest::test_lexer_string_locations_concatenation_3): New
-       function.
-       (selftest::test_lexer_string_locations_macro): New function.
-       (selftest::test_lexer_string_locations_stringified_macro_argument):
-       New function.
-       (selftest::test_lexer_string_locations_non_string): New function.
-       (selftest::test_lexer_string_locations_long_line): New function.
-       (selftest::test_lexer_char_constants): New function.
-       (selftest::input_c_tests): Call the new test functions once per
-       case within the line_table test matrix.
-       * input.h (struct string_concat): New struct.
-       (struct location_hash): New struct.
-       (class string_concat_db): New class.
-       * substring-locations.h: New header.
- 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
-       PR tree-optimization/72810
-       * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
-       the type of the case labels when truncating.
- 2016-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
-       PR Target/72819
-       * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
-       (aarch64_fp16_ptr_type_node): Likewise.
-       * config/aarch64/aarch64-simd-builtins.c
-       (aarch64_fp16_ptr_type_node): Define.
-       (aarch64_init_fp16_types): New, refactored out of...
-       (aarch64_init_builtins): ...here, update to call
-       aarch64_init_fp16_types.
-       * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
-       HFmode.
-       (aapcs_vfp_sub_candidate): Likewise.
- 2016-08-05  Martin Liska  <mliska@suse.cz>
-           Joshua Cranmer  <Pidgeot18@gmail.com>
-       * gcov.c (line_t::has_block): New function.
-       (enum loop_type): New enum.
-       (handle_cycle): New function.
-       (unblock): Likewise.
-       (circuit): Likewise.
-       (get_cycles_count): Likewise.
-       (accumulate_line_counts): Use new loop detection algorithm.
- 2016-08-05  Martin Liska  <mliska@suse.cz>
-       * gcov.c (output_intermediate_file): Rename
-       function_info::line_next to next_file_fn.
-       (process_file): Likewise.
-       (read_graph_file): Likewise.
-       (accumulate_line_counts): Likewise.
-       (output_lines): Likewise.
- 2016-08-05  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
-       restriction on threading to a loop header.
- 2016-08-05  Richard Biener  <rguenther@suse.de>
-       * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
-       * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
-       adjust loop info accordingly.
- 2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
-       before folding call to __builtin_constant_p with parameters to false.
- 2016-08-05  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
-       code accidentally committed 2016-05-02 providing class when given
-       NO_REGS.
- 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
-       * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
-       the case label ranges that partially overlap with OP's value
-       range.
- 2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/72805
-       * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
-       Cast builtin function result to __mmask16 instead of __mmask8.
-       (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
-       (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
-       (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
- 2016-08-04  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.h (ASSERT_TRUE): Reimplement in terms of...
-       (ASSERT_TRUE_AT): New macro.
-       (ASSERT_FALSE): Reimplement in terms of...
-       (ASSERT_FALSE_AT): New macro.
-       (ASSERT_STREQ_AT): Fix typo in comment.
- 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
-       * gimple.c (preprocess_case_label_vec_for_gimple): When the case
-       labels are exhaustive, designate the label with the widest
-       range to be the default label.
- 2016-08-04  Andrew Pinski  <apinski@cavium.com>
-       * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
-       (thunderx_tunings): Use thunderx_vector_cost instead of
-       generic_vector_cost.
- 2016-08-04  Martin Liska  <mliska@suse.cz>
-       * gcov.c (main): Fix GNU coding style.
-       (output_intermediate_file): Likewise.
-       (process_file): Likewise.
-       (generate_results): Likewise.
-       (release_structures): Likewise.
-       (create_file_names): Likewise.
-       (find_source): Likewise.
-       (read_graph_file): Likewise.
-       (find_exception_blocks): Likewise.
-       (canonicalize_name): Likewise.
-       (make_gcov_file_name): Likewise.
-       (mangle_name): Likewise.
-       (accumulate_line_counts): Likewise.
-       (output_branch_count): Likewise.
-       (read_line): Likewise.
- 2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR rtl-optimization/71779
-       * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
-       if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
-       or if it was truncated.
-       PR rtl-optimization/70903
-       * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
- 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
-       accessing SSA_NAME_PTR_INFO.
- 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
-       PR 70677
-       * common/config/avr/avr-common.c (avr_option_optimization_table)
-       [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
- 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
-       PR 55181
-       * config/avr/avr.md: New pattern to work around do_store_flag
-       generating shift instructions for bit extractions.
- 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
-       BITMAP_ALLOC.
-       (add_equivalence): Likewise.
-       (get_value_range): Allocate value range with vrp_value_range_pool.
-       (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
-       (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
- 2016-08-03  Peter Bergner  <bergner@vnet.ibm.com>
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
-       the default for the rs6000 port.
- 2016-08-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR middle-end/71876
-       * calls.c (special_function_p): Remove special handling of
-       "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
-       prefix "__x".  Recognize "savectx", "vfork" and "getcontext" only
-       without prefix.  Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
- 2016-08-03  Vladimir Makarov  <vmakarov@redhat.com>
-       PR middle-end/72778
-       * lra-spills.c (regno_in_use_p): Check bb and regno modification.
-       Don't stop on regular insns.
- 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
-       * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
-       size to DImode boundary.
-       (nvptx_propagate): Likewise.
- 2016-08-03  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
-       float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
-       * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
-       from -mefficient-unaligned-vector.  Note that this affects fp too.
- 2016-08-03  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
-       cost more.
- 2016-08-03  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
-       to a reg.  Localize vars.
- 2016-08-03  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.opt: Remove negatives from help strings
-       and comments.
- 2016-08-03  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
-       Delete duplicated code.
- 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
-       PR middle-end/72778
-       * lra-spills.c (regno_in_use_p): New.
-       (lra_final_code_change): Use it.
- 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
-       PR rtl-optimization/69847
-       * lra-int.h (struct lra-reg): Use restore_rtx instead of
-       restore_regno.
-       (lra_rtx_hash): New.
-       * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
-       of restore_regno.
-       (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
-       * lra-remat.c (rtx_hash): Rename and Move to lra.c.
-       * lra-spills.c (lra_final_code_change): Don't delete insn when the
-       next insn is USE with the same reg as the current insn source.
-       * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
-       of restore_regno.
-       (lra_constraints_init): Call initiate_invariants.
-       (lra_constraints_finish): Call finish_invariants.
-       (struct invariant, invariant_t, invariant_ptr_t): New.
-       (const_invariant_ptr_t, invariants, invariants_pool): New.
-       (invariant_table, invariant_hash, invariant_eq_p): New.
-       (insert_invariant, initiate_invariants, finish_invariants): New.
-       (clear_invariants, invalid_invariant_regs): New.
-       (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
-       instead of restore_regno.
-       (invariant_p, process_invariant_for_inheritance): New.
-       (inherit_in_ebb): Implement invariant inheritance.
-       (lra_inheritance): Initialize and finalize invalid_invariant_regs.
-       (remove_inheritance_pseudos): Implement undoing invariant
-       inheritance.
-       (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
-       instead of restore_regno.
-       * lra-assigns.c (regno_live_length): New.
-       (reload_pseudo_compare_func): Use regno_live_length.
-       (assign_by_spills): Use restore_rtx instead of restore_regno.
-       (lra_assign): Ditto.  Initiate regno_live_length.
- 2016-02-08  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
-       __builtin_aarch64_fmindf.
- 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/34114
-       * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
-       information for more control IVs.
- 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/34114
-       * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
-       PLUS_EXPR case.  Handle SSA_NAME case.
- 2016-08-02  Tamar Christina  <tamar.christina@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def
-       (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
-       (__builtin_aarch64_fmaxdf): Likewise.
-       (__builtin_aarch64_smin_nandf): Likewise.
-       (__builtin_aarch64_smax_nandf): Likewise.
-       * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
-       * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
-       (<fmaxmin><mode>3): ...this.
-       * config/aarch64/arm_neon.h (vmaxnm_f64): New.
-       (vminnm_f64): Likewise.
-       (vmin_f64): Likewise.
-       (vmax_f64): Likewise.
-       * config/aarch64/iterators.md (FMAXMIN): Merge with...
-       (FMAXMIN_UNS): ...this.
-       (fmaxmin): Merged with
-       (fmaxmin_op): ...this...
-       (maxmin_uns_op): ...in to this.
- 2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
-       Add support for vec_extract on vector float, vector int, vector
-       short, and vector char vector types.
-       * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
-       vector float, vector int, vector short, and vector char
-       optimizations on 64-bit ISA 2.07 systems for both constant and
-       variable element numbers.
-       (rs6000_split_vec_extract_var): Likewise.
-       * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
-       Altivec registers on ISA 2.07 and above.
-       (vsx_extract_v4sf): Delete alternative that hard coded element 0,
-       which never was matched due to the split occuring before register
-       allocation (and the code would not have worked on little endian
-       systems if it did match).  Allow extracts to go to the Altivec
-       registers if ISA 2.07 (power8).  Change from using "" around the
-       C++ code to using {}'s.
-       (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
-       vec_extracts when the vector is in memory.
-       (vsx_extract_v4sf_var): New insn to optimize vector float
-       vec_extracts when the element number is variable on 64-bit ISA
-       2.07 systems.
-       (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
-       for 64-bit ISA 2.07 as well as ISA 3.0.
-       (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
-       (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
-       (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
-       optimize vector int, vector short, and vector char vec_extracts
-       when the vector is in memory.
-       (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
-       optimize vector int, vector short, and vector char vec_extracts
-       when the element number is variable.
- 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/71948
-       * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
-       does not overlap with other symbol flags.
- 2016-08-01  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.h (aarch64_frame):
-       Remove padding0 and hardfp_offset.  Add locals_offset,
-       initial_adjust, callee_adjust, callee_offset and final_adjust.
-       * config/aarch64/aarch64.c (aarch64_layout_frame):
-       Remove unused padding0 and hardfp_offset initializations.
-       Choose frame layout and set frame variables accordingly.
-       Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
-       (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
-       (aarch64_pop_regs): Likewise.
-       (aarch64_expand_prologue): Remove all decision code, just emit
-       prolog according to frame variables.
-       (aarch64_expand_epilogue): Remove all decision code, just emit
-       epilog according to frame variables.
-       (aarch64_initial_elimination_offset): Use offset to local/arg area.
- 2015-08-01  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/72748
-       * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
-       fix_debug_reg_uses after changing source register mode to
-       V1TImode if source register is undefined.
- 2015-08-01  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71818
-       * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
-       with non invariant evolutions
- 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/72767
-       * config/avr/avr.md (length) [branch]: Correct insn length
-       attribute for forward branches.
- 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
-       * doc/extend.texi (AVR Built-in Functions): Document
-       __builtin_avr_nops.
-       * config/avr/builtins.def (NOPS): New.
-       * config/avr/avr.c (avr_expand_nops): New static function.
-       (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
- 2016-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
-       performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
-       addresses.
- 2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>
-       * config/aarch64/aarch64.c (vulcan_tunings): Update
-       vulcan L1 cache_line_size.
- 2016-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
-       function that takes a vector memory address, a hard register, an
-       element number and a temporary base register, and recreates an
-       address that points to the appropriate element within the vector.
-       * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
-       (rs6000_split_vec_extract_var): Add support for the target of a
-       vec_extract with variable element number being a scalar memory
-       location.
-       (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
-       swappable.
-       * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
-       vsx_extract_<mode>_load insn with a new insn that optimizes
-       storing either element to a memory location, using scratch
-       registers to pick apart the vector and reconstruct the address.
-       (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
-       (vsx_extract_<mode>_store): Rework alternatives to more correctly
-       support Altivec registers.  Add support for ISA 3.0 Altivec d-form
-       store instruction.
-       (vsx_extract_<mode>_var): Add support for extracting a variable
-       element number from memory.
- 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
-       when testing for compares against constants of the form 0xabab.
- 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/57558
-       * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
-       function.
-       (vect_loop_versioning): Support versioning with niter assumptions.
-       * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
-       (vect_get_loop_niters): New parameter.  Reimplement to support
-       assumptions in loop niter info.
-       (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
-       (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
-       (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
-       Support loop versioning for niters.
-       * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
-       (vect_free_loop_info_assumptions): New function.
-       (vectorize_loops): Free loop niter info for loops with flag
-       LOOP_F_ASSUMPTIONS set if vectorization failed.
-       * tree-vectorizer.h (struct _loop_vec_info): New field
-       num_iters_assumptions.
-       (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
-       (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
-       (LOOP_REQUIRES_VERSIONING): New macro.
-       (vect_free_loop_info_assumptions): New decl.
- 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
-       * cfgloop.h (struct loop): New field constraints.
-       (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
-       (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
-       functions.
-       * cfgloop.c (alloc_loop): Initialize new field.
-       * cfgloopmanip.c (copy_loop_info): Copy constraints.
-       * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
-       Adjust niter analysis wrto loop constraints.
-       * doc/loop.texi (@node Number of iterations): Add description for loop
-       constraints.
- 2016-07-29  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * config/i386/i386.c (ix86_expand_args_builtin): Add break.
-       (ix86_expand_round_builtin): Likewise.
- 2016-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
-           Georg-Johann Lay  <avr@gjlay.de>
-       PR rtl-optimization/71976
-       * combine.c (get_last_value): Return 0 if the argument for which
-       the function is called has a wider mode than the recorded value.
- 2016-07-29  Marek Polacek  <polacek@redhat.com>
-       PR c/7652
-       * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
-       (altivec_expand_st_builtin): Likewise.
- 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
-       introduced in r238381.
- 2016-07-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/68217
-       * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
-       & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
- 2016-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
-       New declaration.
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
-       Add support for vec_extract of vector double or vector long having
-       a variable element number on 64-bit ISA 2.07 systems or newer.
-       * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
-       Likewise.
-       (rs6000_split_vec_extract_var): New function to split a
-       vec_extract built-in function with variable element number.
-       (rtx_is_swappable_p): Variable vec_extracts and shifts are not
-       swappable.
-       * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
-       (UNSPEC_VSX_EXTRACT): Likewise.
-       (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
-       direct move instructions to be generated on 64-bit ISA 2.07
-       systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
-       instruction.
-       (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
-       arguments for vec_extract variable element.
-       (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
-       vec_extract with variable element on V2DFmode and V2DImode
-       vectors.
-       * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
-       -mupper-regs-df requirement, since it isn't needed.
-       (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
-       do direct moves on 64-bit systems, which allows optimization of
-       vec_extract on 64-bit ISA 2.07 systems and newer.
- 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
- 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
-        * config/aarch64/aarch64.md
-       (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
-       statement and type.
-       (<optab>qihi2_aarch64): Likewise, and split into two.
-       (extendqihi2_aarch64): New.
-       (zero_extendqihi2_aarch64): New.
-       * config/aarch64/iterators.md (ldrxt): Remove.
-       * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
-       uxtb/uxth.
- 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
-       * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
- 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
-       (aarch64_push_reg): New function to push 1 or 2 registers.
-       (aarch64_pop_reg): New function to pop 1 or 2 registers.
-       (aarch64_expand_prologue): Use aarch64_push_regs.
-       (aarch64_expand_epilogue): Use aarch64_pop_regs.
- 2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/71734
-       * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
-       attribute instead of REF_LOOP and use it.
-       (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
-       set it for Loops having non-zero safelen attribute.
-       (ref_indep_loop_p): Pass zero as initial value for safelen.
- 2016-07-28  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR middle-end/72657
-       PR target/72683
-       * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
-       call using chkp_gimple_call_builtin_p.
-       (chkp_copy_bounds_for_assign): Likewise.
- 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
-       * config/arm/arm-protos.h (struct tune_params): Likewise.
-       * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
-       (cortex_a9_sched_adjust_cost): Likewise.
-       (fa726te_sched_adjust_cost): Likewise.
-       (arm_adjust_cost): Likewise.
-       * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
-       * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
-       * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
-       * config/i386/i386.c (ix86_adjust_cost): Likewise.
-       * config/ia64/ia64.c: Likewise.
-       * config/m68k/m68k.c: Likewise.
-       * config/mep/mep.c (mep_adjust_cost): Likewise.
-       * config/microblaze/microblaze.c (microblaze_adjust_cost):
-       * Likewise.
-       * config/mips/mips.c (mips_adjust_cost): Likewise.
-       * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
-       * Likewise.
-       * config/pa/pa.c (pa_adjust_cost): Likewise.
-       * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
-       (rs6000_debug_adjust_cost): Likewise.
-       * config/sh/sh.c (sh_adjust_cost): Likewise.
-       * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
-       (hypersparc_adjust_cost): Likewise.
-       (sparc_adjust_cost): Likewise.
-       * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
-       * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
-       * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
-       * Likewise.
-       * config/visium/visium.c (visium_adjust_cost): Likewise.
-       * doc/tm.texi: Regenerate.
-       * haifa-sched.c (dep_cost_1): Adjust.
-       * target.def: Merge adjust_cost and adjust_cost_2.
- 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * haifa-sched.c (add_to_speculative_block): Make twins a vector.
- 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * store-motion.c (struct st_expr): Make pattern_regs a vector.
-       (extract_mentioned_regs): Append to a vector instead of
-       returning a rtx_expr_list.
-       (st_expr_entry): Adjust.
-       (free_st_expr_entry): Likewise.
-       (store_ops_ok): Likewise.
-       (store_killed_in_insn): Likewise.
-       (find_moveable_store): Likewise.
- 2016-07-28  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/68025
-       * tree-profile.c (tree_profiling): Respect
-       no_profile_instrument_function attribute.
-       * doc/extend.texi: Document no_profile_instrument_function
-       attribute.
- 2016-07-28  Martin Liska  <mliska@suse.cz>
-       PR rtl-optimization/70944
-       * combine.c (make_compound_operation):
-       Do not allow make_compound_operation for vector mode
- 2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71994
-       * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
-        before calling get_ops.
- 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
-       * tree.h (LOG2_BITS_PER_UNIT): ...to here.
-       (BITS_PER_UNIT_LOG): Remove.
-       (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
-       * expr.c (expand_assignment): Likewise.
-       * stor-layout.c (initialize_sizetypes): Likewise.
- 2016-07-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/vector.md (vec_extract<mode>): Change the calling
-       signature of rs6000_expand_vector_extract so that the element
-       number is a RTX instead of a constant integer.
-       * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
-       Likewise.
-       * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
-       (altivec_expand_vec_ext_builtin): Likewise.
-       * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
-       * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
-       MFVSRLD instruction.
- 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (get_pure_location): Move here from tree.c.
-       (make_location): Likewise.  Add header comment.
-       (selftest::test_accessing_ordinary_linemaps): Verify
-       pure_location_p, make_location, get_location_from_adhoc_loc and
-       get_range_from_loc.
-       * input.h (get_pure_location): Move declaration here from tree.h.
-       (get_finish): Likewise for inline function.
-       (make_location): Likewise for declaration.
-       * tree.c (get_pure_location): Move to input.c.
-       (make_location): Likewise.
-       * tree.h (get_pure_location): Move declaration to tree.h.
-       (get_finish): Likewise for inline function.
-       (make_location): Likewise for declaration.
- 2016-07-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       PR middle-end/71078
-       * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
- 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
-       * system.h (STATIC_ASSERT): Use static_assert if building
-       with C++11 onwards.
- 2016-07-27  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/72517
-       * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
-       Revert change to not compute read-read dependences.
- 2016-07-27  Richard Biener  <rguenther@suse.de>
-       * predict.c (set_even_probabilities): Make nedges unsigned.
- 2016-07-27  Martin Liska  <mliska@suse.cz>
-       * predict.c (set_even_probabilities): Handle unlikely edges.
-       (combine_predictions_for_bb): Likewise.
- 2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71869
-       * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
-       __float128 support when we don't have hardware support, so that
-       the IEEE built-in functions like isgreater, first call __unordkf3
-       to make sure neither operand is a NaN, and if both operands are
-       ordered, do the normal comparison.
- 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
-       * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
-       name.
-       (extract_code_and_val_from_cond_with_ops): Verify that name is
-       either cond_op0 or cond_op1.
- 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
-       PR tree-optimization/18046
-       * genmodes.c (emit_mode_size_inline): Emit an assert that
-       verifies that mode is a valid array index.
-       (emit_mode_nuinits_inline): Likewise.
-       (emit_mode_inner_inline): Likewise.
-       (emit_mode_unit_size_inline): Likewise.
-       (emit_mode_unit_precision_inline): Likewise.
-       * tree-vrp.c: Include params.h.
-       (find_switch_asserts): Register edge assertions for the default
-       label which correspond to the anti-ranges of each case label.
-       * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
-       * doc/invoke.texi: Document it.
- 2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
-       and unnecessary call to gimple_bb.
- 2016-07-26  Richard Biener  <rguenther@suse.de>
-       PR rtl-optimization/71984
-       * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
-       for VOIDmode.
- 2016-07-26  Richard Biener  <rguenther@suse.de>
-       PR middle-end/72517
-       * expmed.c (extract_bit_field_1): Constrain the vector mode
-       with element size matching the extraction mode size when
-       choosing a better vector mode to do the extraction from.
- 2016-07-26  Richard Biener  <rguenther@suse.de>
-           Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       PR middle-end/70920
-       * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
-       pattern.
- 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * tree-ssa-structalias.c (struct scc_info): Change types of
-       members to auto_sbitmap and auto_vec.
-       (scc_info::scc_info): New constructor.
-       (scc_info::~scc_info): New destructor.
-       (init_scc_info): Remove.
-       (free_scc_info): Remove.
-       (find_indirect_cycles): Adjust.
-       (perform_var_substitution): Likewise.
-       (free_var_substitution_info): Likewise.
- 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * tree-outof-ssa.c (struct elim_graph): Change type of members
-       to auto_vec and auto_sbitmap.
-       (elim_graph::elim_graph): New constructor.
-       (delete_elim_graph): Remove.
-       (expand_phi_nodes): Adjust.
- 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * tree-outof-ssa.c (struct elim_graph): Remove typedef.
-       (new_elim_graph): Adjust.
-       (clear_elim_graph): Likewise.
-       (delete_elim_graph): Likewise.
-       (elim_graph_size): Likewise.
-       (elim_graph_add_node): Likewise.
-       (elim_graph_add_edge): Likewise.
-       (elim_graph_remove_succ_edge): Likewise.
-       (eliminate_name): Likewise.
-       (eliminate_build): Likewise.
-       (elim_forward): Likewise.
-       (elim_unvisited_predecessor): Likewise.
-       (elim_backward): Likewise.
-       (elim_create): Likewise.
-       (eliminate_phi): Likewise.
-       (expand_phi_nodes): Likewise.
- 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * bt-load.c (compute_out): Use auto_sbitmap class.
-       (link_btr_uses): Likewise.
-       * cfganal.c (mark_dfs_back_edges): Likewise.
-       (post_order_compute): Likewise.
-       (inverted_post_order_compute): Likewise.
-       (pre_and_rev_post_order_compute_fn): Likewise.
-       (single_pred_before_succ_order): Likewise.
-       * cfgexpand.c (pass_expand::execute): Likewise.
-       * cfgloop.c (verify_loop_structure): Likewise.
-       * cfgloopmanip.c (fix_bb_placements): Likewise.
-       (remove_path): Likewise.
-       (update_dominators_in_loop): Likewise.
-       * cfgrtl.c (break_superblocks): Likewise.
-       * ddg.c (check_sccs): Likewise.
-       (create_ddg_all_sccs): Likewise.
-       * df-core.c (df_worklist_dataflow): Likewise.
-       * dse.c (dse_step3): Likewise.
-       * except.c (eh_region_outermost): Likewise.
-       * function.c (thread_prologue_and_epilogue_insns): Likewise.
-       * gcse.c (prune_expressions): Likewise.
-       (prune_insertions_deletions): Likewise.
-       * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
-       * graph.c (draw_cfg_nodes_no_loops): Likewise.
-       * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
-       * lcm.c (compute_earliest): Likewise.
-       (compute_farthest): Likewise.
-       * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
-       (unroll_loop_runtime_iterations): Likewise.
-       (unroll_loop_stupid): Likewise.
-       * lower-subreg.c (decompose_multiword_subregs): Likewise.
-       * lra-lives.c: Likewise.
-       * lra.c (lra): Likewise.
-       * modulo-sched.c (schedule_reg_moves): Likewise.
-       (optimize_sc): Likewise.
-       (get_sched_window): Likewise.
-       (sms_schedule_by_order): Likewise.
-       (check_nodes_order): Likewise.
-       (order_nodes_of_sccs): Likewise.
-       (order_nodes_in_scc): Likewise.
-       * recog.c (split_all_insns): Likewise.
-       * regcprop.c (pass_cprop_hardreg::execute): Likewise.
-       * reload1.c (reload): Likewise.
-       * sched-rgn.c (haifa_find_rgns): Likewise.
-       (split_edges): Likewise.
-       (compute_trg_info): Likewise.
-       * sel-sched.c (init_seqno): Likewise.
-       * store-motion.c (remove_reachable_equiv_notes): Likewise.
-       * tree-into-ssa.c (update_ssa): Likewise.
-       * tree-ssa-live.c (live_worklist): Likewise.
-       * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
-       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
-       * Likewise.
-       (try_peel_loop): Likewise.
-       * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
-       * Likewise.
-       * tree-ssa-pre.c (compute_antic): Likewise.
-       * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
-       * tree-stdarg.c (reachable_at_most_once): Likewise.
-       * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
-       * var-tracking.c (vt_find_locations): Likewise.
- 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * sbitmap.h (auto_sbitmap): New class.
- 2016-07-26  Alan Modra  <amodra@gmail.com>
-       PR target/72103
-       * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
-       sri->t_icode.
- 2016-07-25  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (selftest::temp_source_file::temp_source_file): Fix
-       missing "%s" in fprintf.
- 2016-07-25  John David Anglin  <danglin@gcc.gnu.org>
-       PR middle-end/71732
-       * cselib.c (cselib_process_insn): Invalidate argument slots for
-       const/pure calls.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
-       vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
-       vmulxh_lane_f16, vmulxh_laneq_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
-       * config/aarch64/aarch64.md (fma, fnma): Support HF.
-       * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
-       * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
-       New.
-       (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
-       (add<mode>3): Likewise.
-       (sub<mode>3): Likewise.
-       (mul<mode>3): Likewise.
-       (div<mode>3): Likewise.
-       (*div<mode>3): Likewise.
-       (<fmaxmin><mode>3): Extend to HF.
-       * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
-       (fabd<mode>3): Likewise.
-       (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
-       (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
-       (aarch64_fmulx<mode>): Likewise.
-       (aarch64_fac<optab><mode>): Likewise.
-       (aarch64_frecps<mode>): Likewise.
-       (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
-       (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
-       * config/aarch64/iterators.md (VHSDF_SDF): Delete.
-       (VSDQ_HSDI): Support HI.
-       (fcvt_target, FCVT_TARGET): Likewise.
-       * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
-       vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
-       vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
-       vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
-       vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
-       vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
-       vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
-       vrsqrtsh_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config.gcc (aarch64*-*-*): Install arm_fp16.h.
-       * config/aarch64/aarch64-builtins.c (hi_UP): New.
-       * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
-       * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
-       mode.
-       (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
-       (aarch64_cm<optab><mode>): Likewise.
-       * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
-       (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
-       (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
-       (sqrt<mode>2): Likewise.
-       (*sqrt<mode>2): Likewise.
-       (abs<mode>2): Likewise.
-       (<optab><mode>hf2): New pattern for HF mode.
-       (<optab>hihf2): Likewise.
-       * config/aarch64/arm_neon.h: Include arm_fp16.h.
-       * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
-       (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
-       Support HF mode.
-       * config/aarch64/arm_fp16.h: New file.
-       (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
-       vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
-       vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
-       vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
-       vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
-       vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
-       vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
-       vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
-       vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
-       vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
-       vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
-       vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
-       vsqrth_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
-       reduc_smin_scal_): Use VDQIF_F16.
-       (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
-       * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
-       Use VHSDF.
-       (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
-       * config/aarch64/iterators.md (VDQIF_F16): New.
-       (vp): Support HF modes.
-       * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
-       vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
-       "*aarch64_mulx_elt_from_dup<mode>".
-       (*aarch64_mul3_elt<mode>): Update schedule type.
-       (*aarch64_mul3_elt_from_dup<mode>): Likewise.
-       (*aarch64_fma4_elt_from_dup<mode>): Likewise.
-       (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
-       * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
-       (f, fp): Support HF modes.
-       * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
-       vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
-       vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
-       vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
-       vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
-       vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
-       * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
-       modes.
-       * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
-       vfmsq_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
-       * config/aarch64/aarch64-simd.md
-       (aarch64_rsqrts<mode>): Extend to HF modes.
-       (fabd<mode>3): Likewise.
-       (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
-       (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
-       (aarch64_<maxmin_uns>p<mode>): Likewise.
-       (<su><maxmin><mode>3): Likewise.
-       (<maxmin_uns><mode>3): Likewise.
-       (<fmaxmin><mode>3): Likewise.
-       (aarch64_faddp<mode>): Likewise.
-       (aarch64_fmulx<mode>): Likewise.
-       (aarch64_frecps<mode>): Likewise.
-       (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
-       (add<mode>3): Extend to HF modes.
-       (sub<mode>3): Likewise.
-       (mul<mode>3): Likewise.
-       (div<mode>3): Likewise.
-       (*div<mode>3): Likewise.
-       * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
-       HF, V4HF and V8HF.
-       * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
-       * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
-       vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
-       vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
-       vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
-       vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
-       vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
-       vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
-       vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
-       vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
-       vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
-       vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
-       vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
-       vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
-       * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
-       * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
-       (neg<mode>2): Likewise.
-       (abs<mode>2): Likewise.
-       (<frint_pattern><mode>2): Likewise.
-       (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
-       (<optab><VDQF:mode><fcvt_target>2): Likewise.
-       (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
-       (ftrunc<VDQF:mode>2): Likewise.
-       (<optab><fcvt_target><VDQF:mode>2): Likewise.
-       (sqrt<mode>2): Likewise.
-       (*sqrt<mode>2): Likewise.
-       (aarch64_frecpe<mode>): Likewise.
-       (aarch64_cm<optab><mode>): Likewise.
-       * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
-       HF, V4HF and V8HF.
-       * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
-       (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
-       (stype): New.
-       * config/aarch64/arm_neon.h (vdup_n_f16): New.
-       (vdupq_n_f16): Likewise.
-       (vld1_dup_f16): Use vdup_n_f16.
-       (vld1q_dup_f16): Use vdupq_n_f16.
-       (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
-       vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
-       vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
-       vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
-       vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
-       vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
-       vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
-       vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
-       vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
-       vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
-       vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
-       vsqrt_f16, vsqrtq_f16): New.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd.md
-       (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
-       (aarch64_ext<mode>): Likewise.
-       (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
-       * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
-       aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
-       and V8HFmode.
-       * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
-       float16x8_t.
-       (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
-       __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
-       vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
-       vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
-       vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
-       vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
-       vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
-       New.
-       (vmov_n_f16): Reimplement using vdup_n_f16.
-       (vmovq_n_f16): Reimplement using vdupq_n_f16..
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
-       "frame_related_p".  Generate CFA annotation when it's necessary.
-       (aarch64_expand_prologue): Use aarch64_add_constant.
-       (aarch64_expand_epilogue): Likewise.
-       (aarch64_output_mi_thunk): Pass "false" when calling
-       aarch64_add_constant.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
-       sequences.
- 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
-       Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
-       (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
-       (aarch64_build_constant): Delete.
- 2016-07-25  Alexander Monakov  <amonakov@ispras.ru>
-       Revert
-       2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
-       * config/nvptx/nvptx.c (nvptx_option_override): Do not set
-       flag_toplevel_reorder.
- 2016-07-25  Richard Biener  <rguenther@suse.de>
-       * cgraph.c (cgraph_node::verify_node): Compare against builtin
-       by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
-       * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
-       * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
-       (streamer_get_builtin_tree): Likewise.
-       (streamer_write_builtin): Likewise.
-       * lto-streamer.h (LTO_builtin_decl): Remove.
-       * lto-streamer-in.c (lto_read_tree_1): Remove assert.
-       (lto_input_scc): Remove LTO_builtin_decl handling.
-       (lto_input_tree_1): Liekwise.
-       * lto-streamer-out.c (lto_output_tree_1): Remove special
-       handling of builtins.
-       (DFS::DFS): Likewise.
-       * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
-       * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
-       assert.
-       (streamer_write_builtin): Remove.
- 2016-07-25  Martin Liska  <mliska@suse.cz>
-       * lto-cgraph.c (input_symtab): Don't call get_working_sets
-       if flag_auto_profile is set to true.
- 2016-07-25  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/71868
-       * cfgloopanal.c (expected_loop_iterations_unbounded): When we
-       have a function with multiple latches, count them all.
- 2016-07-25  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
- 2016-07-25  Martin Liska  <mliska@suse.cz>
-       PR tree-optimization/71987
-       * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
-       just for SSA_NAMEs. Fix GNU coding style.
- 2016-07-25  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/64874
-       * gcov-io.h: Update command about file format.
-       * gcov-iov.c (main): Adapt the numbering scheme.
- 2016-07-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/66726
-       * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
-       whose result is used in PHI.
-       (final_range_test_p): Likewise.
-       (maybe_optimize_range_tests): Likewise.
- 2016-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
-       Reformat two multi-line strings.
- 2016-07-22  Martin Sebor  <msebor@redhat.com>
-       * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
- 2016-07-22  Martin Sebor  <msebor@redhat.com>
-       PR c/71560
-       * doc/extend.texi (Compound Literals): Correct and clarify.
-       (Cast to Union): Same.
- 2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
-       comments to explain why certain error messages make mention of
-       undocumented options.
-       (rs6000_invalid_builtin): Change error messages to replace mention
-       of undocumented options with mention of the -mcpu=power9 option
-       that enables those undocumented options.
-       * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
-       (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
-       definition of this macro to correct an existing error.
-       * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
-       mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
-       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
-       descriptions of built-in functions so that they depend on
-       -mcpu=power9 instead of on the corresponding undocumented flags.
-       * doc/invoke.texi (Option Summary):  Remove all mention of newly
-       undocumented flags.
-       (IBM RS/6000 and PowerPC Options): Likewise.
-       * doc/md.texi (Constraints for Particuliar Machines): Remove all
-       mention of newly undocumented flags.
- 2016-07-22  Evgeny Stupachenko  <evstupac@gmail.com>
-       * ipa-cp.c (determine_versionability): Do not create constprop clones,
-       when target_clones attribute is set.
- 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
-       * common.opt (funsafe-loop-optimizations): Mark ignore.
-       * doc/invoke.texi (funsafe-loop-optimizations): Remove.
-       * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
-       related code.
-       * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
-       * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
- 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
-       Parameter.
-       * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
-       Parameter.
-       (number_of_iterations_exit): Warn missed loop optimization for
-       possible infinite loops.
- 2016-07-22  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR target/71216
-       * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
-       when to emit a ".machine" pseudo-op.
- 2016-07-22  Martin Liska  <mliska@suse.cz>
-       PR gcov-profile/69028
-       PR gcov-profile/62047
-       * coverage.c (coverage_compute_lineno_checksum): Do not
-       calculate checksum for fns w/o xloc.file.
-       (coverage_compute_profile_id): Likewise.
- 2016-07-22  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
-       (avr_secondary_reload): ...and implementation.
-       (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
-       * config/avr/avr.md (reload_in<mode>): Remove insns.
-       (adjust_len) [lpm]: Remove insn attribute value.
-       * config/avr/predicates.md (flash_operand): Remove insn predicate.
- 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR middle-end/71876
-       * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
-       attribute.
-       * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
-       * calls.c (special_function_p): Remove the special handling of the
-       "__builtin_" prefix.
- 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR middle-end/71876
-       * calls.c (gimple_maybe_alloca_call_p): New function.  Return true
-       if STMT may be an alloca call.
-       (gimple_alloca_call_p, alloca_call_p): Return only true for the
-       builtin alloca call.
-       * calls.h (gimple_maybe_alloca_call_p): New function.
-       * tree-inline.c (inline_forbidden_p_stmt): Use
-       gimple_maybe_alloca_call_p here.
- 2016-07-21  David Malcolm  <dmalcolm@redhat.com>
-       * spellcheck-tree.c (best_macro_match::best_macro_match):
-       Explictly specify the template arguments when invoking the base
-       class constructor, to help older C++ compilers.
- 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/71953
-       * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
-       before builtin_decl_implicit.
- 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
-       * optabs.c (emit_condiitonal_move): Short circuit for identical
-       sources.
- 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
-       * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
-       max_seq_cost.  Removed fields: then_cost, else_cost, branch_cost.
-       (noce_conversion_profitable_p): New.
-       (noce_try_store_flag_constants): Use it.
-       (noce_try_addcc): Likewise.
-       (noce_try_store_flag_mask): Likewise.
-       (noce_try_cmove): Likewise.
-       (noce_try_cmove_arith): Likewise.
-       (bb_valid_for_noce_process_p): Add to the cost parameter rather than
-       overwriting it.
-       (noce_convert_multiple_sets): Move cost model to here, from...
-       (bb_ok_for_noce_convert_multiple_sets) ...here.
-       (noce_process_if_block): Update calls for above changes.
-       (noce_find_if_block): Record new noce_if_info parameters.
- 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
-       * target.def (max_noce_ifcvt_seq_cost): New.
-       * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
-       * doc/tm.texi: Regenerate.
-       * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
-       * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
-       * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
-       (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
-       * doc/invoke.texi: Document new params.
- 2016-07-21  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71947
-       * tree-vrp.c (extract_range_from_assert): Singleton symbolic
-       ranges have useful limit_vr information.
- 2016-07-21  Richard Biener  <rguenther@suse.de>
-       * function-tests.c (build_trivial_generic_function): Set
-       BLOCK_SUPERCONTEXT of DECL_INITIAL.
-       * omp-low.c (create_omp_child_function): Likewise.
-       (grid_expand_target_grid_body): Likewise.
-       * cgraphunit.c (init_lowered_empty_function): Likewise.
-       (cgraph_node::expand_thunk): Likewise.
-       * tree-parloops.c (create_loop_fn): Likewise.
-       * ipa.c (cgraph_build_static_cdtor_1): Likewise.
- 2016-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
-       in comment.
- 2016-07-21  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
-       (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
-       (*insv.xor-extract, *insv.xor1-bit.0): New insns.
-       (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
-       values for insn attribute.
-       * config/avr/avr.c (avr_out_insert_notbit): New function.
-       (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
-       ADJUST_LEN_INSV_NOTBIT_0/_7.
-       * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
- 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
-       * tree-chrec.c (convert_affine_scev): New parameter.  Pass new arg.
-       (chrec_convert_1, chrec_convert): Ditto.
-       * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
-       * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
-       * tree-vrp.c (adjust_range_with_scev): Ditto.
-       * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
-       (scev_var_range_cant_overflow): New function.
-       (scev_probably_wraps_p): New parameter.  Call above function.
-       * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
- 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
-       by removing computation of may_be_zero.
- 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
-       * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
- 2016-07-21  Andrew Sutton  <andrew.n.sutton@gmail.com>
-       Improving concepts performance and diagnostics.
-       * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
-       for constraint satisfaction and subsumption.
-       * timevar.h (auto_timevar): New constructor that matches the push/pop
-       pattern of usage in pt.c.
- 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
-       * hwint.h (HOST_WIDE_INT_0): New define.
-       (HOST_WIDE_INT_0U): Ditto.
-       * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
-       * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
-       * simplify-rtx.c: Ditto.
-       * tree-object-size.c: Ditto.
- 2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.c (s390_encode_section_info): Remove mode size
-       check.
- 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
-       * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
-       * combine.c: Use HOST_WIDE_INT_M1U instead of
-       ~(unsigned HOST_WIDE_INT) 0.
-       * double-int.h: Ditto.
-       * dse.c: Ditto.
-       * dwarf2asm.c:Ditto.
-       * expmed.c: Ditto.
-       * genmodes.c: Ditto.
-       * match.pd: Ditto.
-       * read-rtl.c: Ditto.
-       * tree-ssa-loop-ivopts.c: Ditto.
-       * tree-ssa-loop-prefetch.c: Ditto.
-       * tree-vect-generic.c: Ditto.
-       * tree-vect-patterns.c: Ditto.
-       * tree.c: Ditto.
- 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
-       * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
-       constant addresses outside [0,0xc0] into a register.
-       (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
-       cases where the base address register is unused after.
-       (avr_out_movhi_r_mr_reg_disp_tiny): Same.
-       (avr_out_movhi_mr_r_reg_disp_tiny): Same.
-       (avr_out_store_psi_reg_disp_tiny): Same.
- 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
-       Implement attribute progmem on reduced Tiny cores by adding
-       flash offset 0x4000 to respective symbols.
-       PR target/71948
-       * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
-       documentation how it works on reduced Tiny cores.
-       (AVR Named Address Spaces): No support for reduced Tiny.
-       * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
-       (avr_address_tiny_pm_p): New static function.
-       (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
-       if the address is in progmem.
-       (avr_assemble_integer): Same.
-       (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
-       for symbol_ref in progmem.
-       * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
-       * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
-       magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
- 2016-07-20  Patrick Palka  <ppalka@gcc.gnu.org>
-       * configure.ac (thin_archive_support): New variable.  AC_SUBST it.
-       * configure: Regenerate.
-       * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
-       (USE_THIN_ARCHIVES): New variable.
-       (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
-       this archive as a thin archive.
- 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
-       same location as last time, don't skip if we have fix-it hints.
-       Clarify the skipping logic by converting it from one "if" clause
-       to repeated "if" clauses.
-       * spellcheck-tree.c: Include "cpplib.h".
-       (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
-       (best_macro_match::best_macro_match): New constructor.
-       * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
-       Move here from c/c-decl.c.
-       (class best_macro_match): Move here from c/c-decl.c, converting
-       from a typedef to a subclass, gaining a ctor.
- 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
-       * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
-       define...
-       (avr_addr_space_diagnose_usage): ...and implementation.
-       (avr_addr_space_supported_p): New function.
-       (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
-       report bad address space usage if that space is supported.
-       (avr_insert_attributes): Same.  No more complain about unsupported
-       address spaces.
-       * config/avr/avr-c.c (tm_p.h): Include it.
-       (avr_cpu_cpp_builtins): Only define addr-space related built-in
-       macro if avr_addr_space_supported_p.
- 2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
-       * config/nvptx/nvptx.c (nvptx_option_override): Do not set
-       flag_toplevel_reorder.
- 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
-       * gcc-rich-location.c
-       (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
-       a const char *.
-       * gcc-rich-location.h
-       (gcc_rich_location::add_fixit_misspelled_id): Likewise.
- 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
-       * target.def (addr_space): Add new diagnose_usage to hook vector.
-       * targhooks.c (default_addr_space_diagnose_usage): Add default
-       implementation and...
-       * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
-       * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
-       is some address space, call targetm.addr_space.diagnose_usage.
-       * doc/tm.texi.in (Named Address Spaces): Add anchor for
-       TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
-       * doc/tm.texi: Regenerate.
- 2016-07-20  Martin Liska  <mliska@suse.cz>
-       PR middle-end/71898
-       * graphite-isl-ast-to-gimple.c (later_of_the_two):
-       Properly handly PHI stmts.
- 2016-07-20  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/71503
-       PR tree-optimization/71683
-       * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
-       and break.
- 2016-07-20  Martin Liska  <mliska@suse.cz>
-       * doc/invoke.texi (-fipa-ra): Document when the option is
-       disabled. Fix a typo.
- 2016-07-20  Martin Liska  <mliska@suse.cz>
-       * Makefile.in: Include fibonacci_heap.c
-       * fibonacci_heap.c: New file.
-       * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
-       (fibonacci_heap::union_with): Fix deletion of the second heap.
-       * selftest-run-tests.c (selftest::run_tests): Incorporate
-       fibonacci heap tests.
-       * selftest.h: Declare fibonacci_heap_c_tests.
- 2016-07-20  Martin Liska  <mliska@suse.cz>
-       * selftest-run-tests.c (selftest::run_tests): New function.
-       * selftest.h (sreal_c_tests): Declare.
-       * sreal.c (sreal_verify_basics): New function.
-       (verify_aritmetics): Likewise.
-       (sreal_verify_arithmetics): Likewise.
-       (verify_shifting): Likewise.
-       (sreal_verify_shifting): Likewise.
-       (void sreal_c_tests): Likewise.
- 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/71916
-       * cfgrtl.c (contains_no_active_insn_p): Return false also for
-       bb which have a single succ fake edge.
- 2016-07-19  Aldy Hernandez  <aldyh@redhat.com>
-       PR debug/71855
-       * dwarf2out.c (gen_subprogram_die): Only call
-       gen_unspecified_parameters_die while dumping early dwarf.
- 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71874
-       * gimple-fold.c (fold_builtin_memory_op): Use
-       get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
- 2016-07-19  Uros Bizjak  <ubizjak@gmail.com>
-       * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
-       HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
-       HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
-       HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
-       * combine.c: Ditto.
-       * cse.c: Ditto.
-       * dojump.c: Ditto.
-       * double-int.c: Ditto.
-       * dse.c: Ditto.
-       * dwarf2out.c: Ditto.
-       * expmed.c: Ditto.
-       * expr.c: Ditto.
-       * fold-const.c: Ditto.
-       * function.c: Ditto.
-       * fwprop.c: Ditto.
-       * genmodes.c: Ditto.
-       * hwint.c: Ditto.
-       * hwint.h: Ditto.
-       * ifcvt.c: Ditto.
-       * loop-doloop.c: Ditto.
-       * loop-invariant.c: Ditto.
-       * loop-iv.c: Ditto.
-       * match.pd: Ditto.
-       * optabs.c: Ditto.
-       * real.c: Ditto.
-       * reload.c: Ditto.
-       * rtlanal.c: Ditto.
-       * simplify-rtx.c: Ditto.
-       * stor-layout.c: Ditto.
-       * toplev.c: Ditto.
-       * tree-ssa-loop-ivopts.c: Ditto.
-       * tree-vect-generic.c: Ditto.
-       * tree-vect-patterns.c: Ditto.
-       * tree.c: Ditto.
-       * tree.h: Ditto.
-       * ubsan.c: Ditto.
-       * varasm.c: Ditto.
-       * wide-int-print.cc: Ditto.
-       * wide-int.cc: Ditto.
-       * wide-int.h: Ditto.
- 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.c (selftest::assert_streq): Handle NULL values of
-       val_actual and val_expected.
- 2016-07-19  Martin Jambor  <mjambor@suse.cz>
-       PR fortran/71688
-       * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
-       rather than cgraph_create_node to get a call graph node.
- 2016-07-19  Richard Biener  <rguenther@suse.de>
-       * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
-       handle all tcc_constant bases and valueize SSA names.
-       * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
-       tcc_constant bases.
- 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
-       * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
-       the flags of the exit block and bb2, not just the entry block.
- 2016-07-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71901
-       * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
-       align member, group stuff with the bitfield.
-       (vn_ref_op_align_unit): New inline.
-       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
-       record element alignment and operand 3 unchanged.
-       (ao_ref_init_from_vn_reference): Adjust.
-       (valueize_refs_1): Likewise.
-       * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
- 2016-07-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71908
-       * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
-       symbolic constants in a more reliable way.
- 2016-07-19  Ilya Enkovich  <ilya.enkovich@intel.com>
-       * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
-       comment.
-       (vect_update_inits_of_drs): Likewise.
-       (vect_create_cond_for_alias_checks): Likewise.
-       * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
- 2016-07-19  Richard Biener  <rguenther@suse.de>
-       PR lto/71907
-       * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
-       with an abstract origin that is not an inlined function outer
-       scope add a self-reference as abstract origin.
-       * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
- 2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71493
-       * config/rs6000/rs6000.c (rs6000_function_value): Fix
-       unintentional System V.4 structure return breakage for structures
-       with a single floating point element.
- 2016-07-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/71734
-       * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
-       contains REF, use it to check safelen, assume that safelen value
-       must be greater 1, fix style.
-       (ref_indep_loop_p_2): Add REF_LOOP argument.
-       (ref_indep_loop_p): Pass LOOP as additional argument to
-       ref_indep_loop_p_2.
- 2016-07-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * cfgexpand.c (expand_stack_vars): Implement synamic stack space
-       allocation in the prologue.
-       * explow.c (get_dynamic_stack_base): New function to return an address
-       expression for the dynamic stack base.
-       (get_dynamic_stack_size): New function to do the required dynamic stack
-       space size calculations.
-       (allocate_dynamic_stack_space): Use new functions.
-       (align_dynamic_address): Move some code from
-       allocate_dynamic_stack_space to new function.
-       * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
- 2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.c (s390_encode_section_info): Always set
-       notaligned marker if mode size is 0 or no MEM_ALIGN info could be
-       found.
- 2016-07-18  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71893
-       * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
-       for sizetype cast added by array_ref_element_size.
-       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
- 2016-07-16  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
-       register parameters.  Remove code to initialize argument pointer
-       on TARGET_64BIT.  Optimize call to _mcount when it can be reached
-       using a pc-relative branch.  Cleanup conditional code.
-       * config/pa/pa.md (call_mcount): New expander.
-       (call_mcount_nonpic): New insn.
-       (call_mcount_pic): New insn and split.
-       (call_mcount_pic_post_reload): New insn.
-       (call_mcount_64bit): New insn and split.
-       (call_mcount_64bit_post_reload): New insn.
- 2016-07-15  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/predicates.md (const_m255_to_m1_operand): New.
-       * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
-       * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
-       (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
-       (*usum_widenqihi3, *udiff_widenqihi3)
-       (*addhi3_zero_extend.const): New combiner insns.
-       (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
-       just 1 bit is affected.
-       * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
-       (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
- 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
-       * omp-low.c (lower_omp_target): Mark data clauses with
-       GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
-       zero-length subarrays.
- 2016-07-15  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71881
-       * tree-loop-distribution.c (destroy_loop): Remove blocks in
-       reverse DOM order to make debug temp generation happy.
- 2016-07-15  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71887
-       * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
-       verify it is not zero for division / modulo handling.
-       (value_replacement): Adjust.
- 2016-07-15  Virendra Pathak  <virendra.pathak@broadcom.com>
-           Julian Brown  <julian@codesourcery.com>
-       * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
-       * config/aarch64/aarch64-cost-tables.h
-       (vulcan_extra_costs): New variable.
-       * config/aarch64/aarch64.c
-       (vulcan_addrcost_table): Likewise.
-       (vulcan_regmove_cost): Likewise.
-       (vulcan_vector_cost): Likewise.
-       (vulcan_branch_cost): Likewise.
-       (vulcan_tunings): Likewise.
- 2016-07-15  Alexander Monakov  <amonakov@ispras.ru>
-       * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
-       (output_in_order): Loop over undefined variables too.  Output them
-       via assemble_undefined_decl.  Skip variables that correspond to hard
-       registers or have value-exprs.
-       * varpool.c (symbol_table::output_variables): Handle undefined
-       variables together with defined ones.
- 2016-07-15  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-pre.c (get_representative_for): Make sure to return
-       the value number of SSA names.
-       (phi_translate_1): get_representative_for cannot return NULL.
-       (do_pre_regular_insertion): Remove redundant call to
-       fully_constant_expression.
-       (do_pre_partial_partial_insertion): Likewise.
- 2016-07-15  Bin Cheng  <bin.cheng@arm.com>
-       * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
-       (derive_simple_iv_with_niters): New function.
-       (simple_iv): Rewrite using simple_iv_with_niters.
-       * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
-       * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
-       function.
-       (number_of_iterations_exit): Rewrite using above function.
-       * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
-       Decl.
- 2016-07-15  Richard Biener  <rguenther@suse.de>
-       * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
-       vec_construct cost.
- 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71872
-       * tree-data-ref.c (get_references_in_stmt): Ignore references
-       with is_gimple_constant get_base_address.
- 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
-       (TARGET_HAVE_LDACQD): New macro.
-       * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
-       than TARGET_HAVE_LDACQ.
-       (arm_load_acquire_exclusivedi): Likewise.
-       (arm_store_release_exclusivedi): Likewise.
- 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       PR rtl-optimization/71878
-       * lra-constraints.c (match_reload): Pass information about other
-       output operands.  Create new unique register value if matching input
-       operand shares same register value as output operand being considered.
-       (curr_insn_transform): Record output operands already processed.
- 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/65951
-       PR tree-optimization/70923
-       * tree-vect-patterns.c: Include mult-synthesis.h.
-       (target_supports_mult_synth_alg): New function.
-       (synth_lshift_by_additions): Likewise.
-       (apply_binop_and_append_stmt): Likewise.
-       (vect_synth_mult_by_constant): Likewise.
-       (target_has_vecop_for_code): Likewise.
-       (vect_recog_mult_pattern): Use above functions to synthesize vector
-       multiplication by integer constants.
- 2016-07-14  Alan Modra  <amodra@gmail.com>
-       * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
-       gpr alternatives.  Correct '*' placement on Y,r alternative.
-       Add '*' on operand 1 of r,r alternative.
- 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
-       * expmed.h: ... Here.
- 2016-07-14  Jan Hubicka  <hubicka@ucw.cz>
-       * gimple.h (stmt_can_terminate_bb_p): New function.
-       * tree-cfg.c (need_fake_edge_p): Rename to ...
-       (stmt_can_terminate_bb_p): ... this; return true if stmt can
-       throw external; handle const and pure calls.
-       * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
- 2016-07-14  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71866
-       * tree-ssa-pre.c (get_constant_for_value_id): Remove.
-       (do_hoist_insertion): Avoid endless recursion when we
-       didn't insert anything because we managed to simplify
-       things down to a constant or SSA name.
-       (fully_constant_expression): Re-write in terms of ...
-       * tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
-       * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
-       vn_nary_build_or_lookup_1.
-       (vn_nary_build_or_lookup_1): Added flag and renamed from ...
-       (vn_nary_build_or_lookup): ... this which now wraps it.
- 2016-07-14  Alan Modra  <amodra@gmail.com>
-       PR target/71733
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
-       with p9_vector override before power9-dform override.
- 2016-07-13  Andi Kleen  <ak@linux.intel.com>
-       * value-prof.c (gimple_value_profile_transformations): Don't run
-       when auto_profile is on.
- 2016-07-13  Andi Kleen  <ak@linux.intel.com>
-       * auto-profile.c (update_inlined_ind_target,
-       afdo_indirect_call): Print information to dump file.
- 2016-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
-       * genrecog.c (special_predicate_operand_p): New function.
-       (predicate_name): Move function.
-       (validate_pattern): Don't warn about missing mode for all
-       define_special_predicate predicates.
- 2016-07-13  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-data-refs.c (vect_no_alias_p): New function.
-       (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
-       resolve alias checks which are known at compilation time.
-       Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
-       alias checks are resolved.  Move dump info for too many runtime
-       alias checks to here...
-       * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
- 2016-07-13  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/24574
-       * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
-       position and add shift, rotate, divison and modulo support
-       for left zero.
-       (value_replacement): Pass in argument position to absorbing_element_p.
- 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR ipa/71633
-       * ipa-inline-transform.c (inline_call): Support
-       instrumented thunks.
- 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
-       (TARGET_IDIV): Set for all Thumb targets provided they have hardware
-       divide feature.
-       * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
-       Baseline.  Make initial alternative TARGET_32BIT only.
-       (udivsi3): Likewise.
-       * config/arm/thumb1.md (thumb1_cbz): New define_insn.
-       * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
-       target.
- 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
-       * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
-       availability with TARGET_HAVE_MOVT.
-       (thumb_legitimate_constant_p): Strip the high part of a label_ref.
-       (thumb1_rtx_costs): Also return 0 if setting a half word constant and
-       MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
-       UINTVAL.
-       (thumb1_size_rtx_costs): Make set of half word constant also cost 1
-       extra instruction if MOVW is available.  Use a cost variable
-       incremented by COSTS_N_INSNS (1) when the condition match rather than
-       returning an arithmetic expression based on COSTS_N_INSNS.  Make
-       constant with bottom half word zero cost 2 instruction if MOVW is
-       available.
-       * config/arm/arm.md (define_attr "arch"): Add v8mb.
-       (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
-       target is ARMv8-M Baseline.
-       (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
-       (arm_movtas_ze): Likewise.
-       * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
-       alternative for constants satisfying j constraint.
-       (thumb1_movsi_insn): Likewise.
-       (movsi splitter for K alternative): Tighten condition to not trigger
-       if movt is available and j constraint is satisfied.
-       (Pe immediate splitter): Likewise.
-       (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
-       constant fitting in an halfword to use MOVW.
-       * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
-       effective target.
- 2016-07-13  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71104
-       * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
-       gimplifying the LHS.  Make sure to gimplify a returning twice
-       call LHS without using SSA names.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * tree-data-ref.c (find_data_references_in_stmt): Remove
-       unnecessary call to vec::release.
-       (graphite_find_data_references_in_stmt): Likewise.
-       * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
-       * tree-vect-stmts.c (vectorizable_condition): Likewise.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * cfgexpand.c (expand_used_vars): Make the type of a local
-       variable auto_vec.
-       * genmatch.c (lower_for): Likewise.
-       * haifa-sched.c (haifa_sched_init): Likewise.
-       (add_to_speculative_block): Likewise.
-       (create_check_block_twin): Likewise.
-       * predict.c (handle_missing_profiles): Likewise.
-       * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
-       * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
-       * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
-       Likewise.
-       (maybe_lower_iteration_bound): Likewise.
-       * tree-ssa-sccvn.c (DFS): Likewise.
-       * tree-stdarg.c (reachable_at_most_once): Likewise.
-       * tree-vect-stmts.c (vectorizable_conversion): Likewise.
-       (vectorizable_store): Likewise.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
-       (sccvn_dom_walker): make cond_stack an auto_vec.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * ree.c (struct ext_state): Make type of members auto_vec.
-       (find_and_remove_re): Adjust.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * cfgexpand.c (struct stack_vars_data): Make type of fields
-       auto_vec.
-       (expand_used_vars): Adjust.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * ipa.c (record_cdtor_fn): Adjust.
-       (build_cdtor_fns): Likewise.
-       (ipa_cdtor_merge): Make static_ctors and static_dtors local
-       variables.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * genextract.c (struct accum_extract): Add constructor and make
-       members auto_vec.
-       (gen_insn): Adjust.
- 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * tree.c (struct free_lang_data_d): Add constructor and change
-       types of members to ones that automatically manage resources.
-       (fld_worklist_push): Adjust.
-       (find_decls_types): Likewise.
-       (find_decls_types_in_eh_region): Likewise.
-       (free_lang_data_in_cgraph): Stop manually creating and
-       destroying members of free_lang_data_d.
- 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
-       PR rtl-optimization/68961
-       * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
-       peephole variant.  Use sse_reg_operand predicates.
- 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (x86_64_immediate_operand)
-       <case CONST_INT>: Remove unneeded truncation to DImode.
-       <case CONST>: Ditto.
-       (x86_64_zext_immediate_operand) <case CONST>: Ditto.
- 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71805
-       * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
-       The xxperm and xxpermr instructions require that the 2nd input
-       operand overlap with the output operand, and not the 1st.
-       (altivec_vperm_v8hiv16qi): Likewise.
-       (altivec_vperm_<mode>_uns_internal): Likewise.
-       (altivec_vpermr_<mode>_internal): Likewise.
-       (vperm_v8hiv4si): Likewise.
-       (vperm_v16qiv8hi): Likewise.
- 2016-07-12  Nathan Sidwell  <nathan@acm.org>
-       * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
-       when -mno-pic-data-is-text-relative is in effect, by default.
-       * doc/invoke.texi (mpic-data-is-text-relative): Document new
-       behavior and clarify.
- 2016-07-12  Martin Liska  <mliska@suse.cz>
-       * params.def: Add avg-loop niter.
-       * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
-       * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
-       * doc/invoke.texi: Document the new parameter.
- 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR middle-end/71700
-       * expr.c (store_constructor): Mask sign-extended bits when widening
-       sub-word constructor element at the start of a word.
- 2016-07-12  Martin Liska  <mliska@suse.cz>
-       * Makefile.in: Append rule for params-options.h.
-       * params-options.h: New file.
- 2016-07-12  Martin Liska  <mliska@suse.cz>
-       * ira-build.c (mark_loops_for_removal): Properly iterate
-       loops.
- 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
-           Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/23286
-       PR tree-optimization/70159
-       * doc/invoke.texi: Document -fcode-hoisting.
-       * common.opt (fcode-hoisting): New flag.
-       * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
-       * tree-ssa-pre.c (pre_stats): Add hoist_insert.
-       (do_regular_insertion): Rename to ...
-       (do_pre_regular_insertion): ... this and amend general comments
-       on insertion strathegy.
-       (do_partial_partial_insertion): Rename to ...
-       (do_pre_partial_partial_insertion): ... this.
-       (do_hoist_insertion): New function.
-       (insert_aux): Take flags on whether to do PRE and/or hoist insertion
-       and call do_hoist_insertion properly.
-       (insert): Adjust.
-       (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
-       (pass_pre::execute): Register hoist_insert stats.
- 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71716
-       * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
-       for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
-       is different from mode's bitsize.  Small cleanup.
- 2016-07-12  Richard Biener  <rguenther@suse.de>
-       PR rtl-optimization/68961
-       * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
-       to simplify to a non-constant.
- 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71758
-       * omp-low.c (expand_omp_target): Gimplify device.
-       PR tree-optimization/71823
-       * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
-       to get vec_oprnds2 from op2.
- 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
-       Hoist common subexpressions.
-       (x86_64_zext_immediate_operand) <case CONST>: Ditto.
- 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
-       PR target/71800
-       * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
-       prevent generation of 'stxsiwx' on pre Power8 hardware.
- 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
-       * input.c: Include cpplib.h.
-       (selftest::temp_source_file): New class.
-       (selftest::temp_source_file::temp_source_file): New ctor.
-       (selftest::temp_source_file::~temp_source_file): New dtor.
-       (selftest::should_have_column_data_p): New function.
-       (selftest::test_should_have_column_data_p): New function.
-       (selftest::temp_line_table): New class.
-       (selftest::temp_line_table::temp_line_table): New ctor.
-       (selftest::temp_line_table::~temp_line_table): New dtor.
-       (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
-       it to create a temp_line_table.
-       (selftest::assert_loceq): Only verify LOCATION_COLUMN for
-       locations that are known to have column data.
-       (selftest::line_table_case): New struct.
-       (selftest::test_reading_source_line): Move tempfile handling
-       to class temp_source_file.
-       (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
-       (selftest::assert_token_loc_eq): New function.
-       (ASSERT_TOKEN_LOC_EQ): New macro.
-       (selftest::test_lexer): New function.
-       (selftest::boundary_locations): New array.
-       (selftest::input_c_tests): Call test_should_have_column_data_p.
-       Loop over a test matrix of interesting values of location and
-       default_range_bits, calling test_lexer on each case in the matrix.
-       Move call to test_accessing_ordinary_linemaps into the matrix.
-       * selftest.h (ASSERT_EQ): Reimplement in terms of...
-       (ASSERT_EQ_AT): New macro.
- 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/71801
-       * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
-       Don't convert TImode in debug insn.
- 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
-       * tree-core.h (tree_base::nothrow_flag): Adjust comment.
-       (tree_type_common::lang_flag_7): New.
-       (tree_type_common::spare): Reduce size.
-       * tree.h (TYPE_ALIGN_OK): Remove.
-       (TYPE_LANG_FLAG_7): New.
-       (get_inner_reference): Adjust header.
-       * print-tree.c (print_node): Adjust.
-       * expr.c (get_inner_reference): Remove parameter keep_aligning.
-       (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
-       calls to get_inner_reference.
-       (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
-       handling of TYPE_ALIGN_OK.
-       * builtins.c (get_object_alignment_2): Adjust call to
-       get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
-       * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
-       TYPE_ALIGN_OK.
-       * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
-       * cfgexpand.c (expand_debug_expr): Likewise.
-       * dbxout.c (dbxout_expand_expr): Likewise.
-       * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
-       loc_list_from_tree, fortran_common): Likewise.
-       * fold-const.c (optimize_bit_field_compare,
-       decode_field_reference, fold_unary_loc, fold_comparison,
-       split_address_to_core_and_offset): Likewise.
-       * gimple-laddress.c (execute): Likewise.
-       * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
-       * gimplify.c (gimplify_scan_omp_clauses): Likewise.
-       * hsa-gen.c (gen_hsa_addr): Likewise.
-       * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
-       * tsan.c (instrument_expr): Likewise.
-       * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
-       * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
-       * tree-affine.c (tree_to_aff_combination,
-       get_inner_reference_aff): Adjust calls to get_inner_reference.
-       * tree-data-ref.c (split_constant_offset_1,
-       dr_analyze_innermost): Likewise.
-       * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
-       * tree-sra.c (ipa_sra_check_caller): Likewise.
-       * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
-       * tree-ssa-math-opts.c (find_bswap_or_nop_load,
-       bswap_replace): Likewise.
-       * tree-vect-data-refs.c (vect_check_gather,
-       vect_analyze_data_refs): Likewise.
-       * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
-       * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
-       TYPE_ALIGN_OK.
- 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
-       * Makefile.in (selftest-valgrind): New phony target.
-       * function-tests.c (selftest::build_cfg): Delete pass instances
-       created by the test.
-       (selftest::convert_to_ssa): Likewise.
-       (selftest::test_expansion_to_rtl): Likewise.
-       * tree-cfg.c (selftest::test_linear_chain): Release dominator
-       vectors.
-       (selftest::test_diamond): Likewise.
- 2016-07-11  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71816
-       * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
-       than replacing all of its operands.
- 2016-07-11  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
-       (ctr<mode>): Add unspec.
-       (ctr<mode>_internal*): Likewise.
- 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
-       * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
-       * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
- 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
-       PR rtl-optimization/71621
-       * lra-constraints.c (process_alt_operands): Check combination of
-       reg class and mode.
- 2016-07-08  Jason Merrill  <jason@redhat.com>
-           Richard Biener  <rguenther@suse.de>
-       P0145: Refining Expression Order for C++.
-       * gimplify.c (initial_rhs_predicate_for): New.
-       (gimplfy_modify_expr): Gimplify RHS before LHS.
- 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR target/71297
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
-       Allow standard error handling to take over when a wrong number
-       of arguments is presented to __builtin_vec_ld () or
-       __builtin_vec_st ().
- 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
-       variants.
-       (smin): Likewise.
-       (fmax): New entry.
-       (fmin): Likewise.
-       * config/aarch64/arm_neon.h (vmaxnm_f32): Use
-       __builtin_aarch64_fmaxv2sf.
-       (vmaxnmq_f32): Likewise.
-       (vmaxnmq_f64): Likewise.
-       (vminnm_f32): Likewise.
-       (vminnmq_f32): Likewise.
-       (vminnmq_f64): Likewise.
- 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71806
-       * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
-       enable -mfloat128-hardware by default.
-       (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
-       that IEEE 128-bit hardware support needs.
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): If
-       -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
-       Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
-       floating point requires.
-       * doc/invoke.texi (RS/6000 and PowerPC Options): Document
-       -mfloat128 and -mfloat128-hardware changes.
- 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71667
-       * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
- 2016-07-08  Martin Liska  <mliska@suse.cz>
-       PR middle-end/71606
-       * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
-       folding produces SAVE_EXPRs, thus return false for the type.
- 2016-07-07  Martin Liska  <mliska@suse.cz>
-       * file-find.c (remove_prefix): New function.
-       * file-find.h (remove_prefix): Declare the function.
-       * gcc-ar.c (main): Skip a folder of the wrapper if
-       a wrapped binary would point to the same file.
- 2016-07-07  Jan Hubicka  <jh@suse.cz>
-       * tree-scalar-evolution.c (iv_can_overflow_p): export.
-       * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
-       * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
- 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR ipa/71624
-       * ipa-inline-analysis.c (compute_inline_parameters): Set
-       local.can_change_signature to false for intrumentation
-       thunk callees.
- 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
-       with TARGET_HAVE_MOVT.
-       (TARGET_HAVE_MOVT): Define.
-       * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
-       availability with TARGET_HAVE_MOVT.
-       * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
-       availability.
-       (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
-       TARGET_THUMB2.
-       (symbol_refs movsi splitter): Remove TARGET_32BIT check.
-       (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
-       * config/arm/constraints.md (define_constraint "j"): Use
-       TARGET_HAVE_MOVT to check MOVT availability.
- 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
- 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
-       (armv8-m.main): Likewise.
-       (armv8-m.main+dsp): Likewise.
-       * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
-       (FL_FOR_ARCH8M_MAIN): Likewise.
-       * config/arm/arm-tables.opt: Regenerate.
-       * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
-       armv8-m.main+dsp to BE8_LINK_SPEC.
-       * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
-       (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
-       * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
-       Baseline and Mainline.
-       (arm_option_override_internal): Also disable arm_restrict_it when
-       !arm_arch_notm.  Update comment for -munaligned-access to also cover
-       ARMv8-M Baseline.
-       (arm_file_start): Increase buffer size for printing architecture name.
-       * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
-       and armv8-m.main+dsp.
-       (mno-unaligned-access): Clarify that this is disabled by default for
-       ARMv8-M Baseline architectures as well.
- 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
-       decide whether to prevent some libgcc routines being included for some
-       multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
-       link between this condition and the one in
-       libgcc/config/arm/lib1func.S.
- 2016-07-07  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-pre.c: Include alias.h.
-       (compute_avail): If we have multiple VN_REFERENCEs with the
-       same hashtable entry adjust that to make it a valid replacement
-       for all of them with respect to alignment and aliasing
-       when doing insertion.
-       * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
-       * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
- 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR target/70098
-       PR target/71763
-       * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
-       *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
-       constraint.
- 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
-       (adjust_mems): Adjust.
-       (adjust_insn): Likewise.
-       (prepare_call_arguments): Likewise.
- 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * gcse.c (struct ls_expr): Make stores field a vector.
-       (ldst_entry): Adjust.
-       (free_ldst_entry): Likewise.
-       (print_ldst_list): Likewise.
-       (compute_ld_motion_mems): Likewise.
-       (update_ld_motion_stores): Likewise.
- 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * gcse.c (struct ls_expr): Remove loads field.
-       (ldst_entry): Adjust.
-       (free_ldst_entry): Likewise.
-       (print_ldst_list): Likewise.
-       (compute_ld_motion_mems): Likewise.
- 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * store-motion.c (struct st_expr): Make antic_stores a vector.
-       (st_expr_entry): Adjust.
-       (free_st_expr_entry): Likewise.
-       (print_store_motion_mems): Likewise.
-       (find_moveable_store): Likewise.
-       (compute_store_table): Likewise.
-       (remove_reachable_equiv_notes): Likewise.
-       (replace_store_insn): Likewise.
-       (build_store_vectors): Likewise.
- 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
-       cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
- 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/71518
-       * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
-       misalign also for outer loops with negative step.
- 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/arm/cortex-a53.md: Use final_presence_set for in-order.
-       (cortex_a53_shift): Add mov_shift.
-       (cortex_a53_shift_reg): Add new reservation for register shifts.
-       (cortex_a53_alu): Remove bfm.
-       (cortex_a53_alu_shift): Add bfm, remove mov_shift.
-       (cortex_a53_alu_extr): Add new reservation for EXTR.
-       (bypasses): Improve bypass modelling.
- 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       PR target/50739
-       * config/avr/avr.c (avr_asm_select_section): Strip off
-       SECTION_DECLARED from flags when calling get_section.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vectorizer.h (vect_memory_access_type): Add
-       VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
-       * tree-vect-stmts.c (compare_step_with_zero): New function.
-       (perm_mask_for_reverse): Move further up file.
-       (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
-       step is negative.
-       (get_negative_load_store_type): New function.
-       (get_load_store_type): Call it.  Add an ncopies argument.
-       (vectorizable_mask_load_store): Update call accordingly and
-       remove tests for negative steps.
-       (vectorizable_store, vectorizable_load): Likewise.  Handle new
-       memory_access_types.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vectorizer.h (vect_memory_access_type): New enum.
-       (_stmt_vec_info): Add a memory_access_type field.
-       (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
-       (vect_model_store_cost): Take an access type instead of a boolean.
-       (vect_model_load_cost): Likewise.
-       * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
-       vect_model_store_cost and vect_model_load_cost.
-       * tree-vect-stmts.c (vec_load_store_type): New enum.
-       (vect_model_store_cost): Take an access type instead of a
-       store_lanes_p boolean.  Simplify tests.
-       (vect_model_load_cost): Likewise, but for load_lanes_p.
-       (get_group_load_store_type, get_load_store_type): New functions.
-       (vectorizable_store): Use get_load_store_type.  Record the access
-       type in STMT_VINFO_MEMORY_ACCESS_TYPE.
-       (vectorizable_load): Likewise.
-       (vectorizable_mask_load_store): Likewise.  Replace is_store
-       variable with vls_type.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vectorizer.h (vect_grouped_load_supported): Add a
-       single_element_p parameter.
-       * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
-       Check the PR65518 case here rather than in vectorizable_load.
-       * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
-       * tree-vect-stmts.c (vectorizable_load): Likewise.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vectorizer.h (gather_scatter_info): New structure.
-       (vect_check_gather_scatter): Return a bool rather than a decl.
-       Replace return-by-pointer arguments with a single
-       gather_scatter_info *.
-       * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
-       (vect_analyze_data_refs): Update call accordingly.
-       * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
-       (vectorizable_mask_load_store): Likewise.  Also record the
-       offset dt and vectype in the gather_scatter_info.
-       (vectorizable_store): Likewise.
-       (vectorizable_load): Likewise.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
-       strided groups, use the cost of N scalar accesses instead
-       of ncopies vector accesses.
-       (vect_model_load_cost): Likewise.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vect-stmts.c (vect_cost_group_size): Delete.
-       (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
-       variable to indicate when once-per-group costs are being used.
-       (vect_model_load_cost): Likewise.  Fix comment and misindented code.
- 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
-       peeling-for-gaps condition.
- 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.c (s390_expand_vec_init): Force initializer
-       element to register if it doesn't match general_operand.
- 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
-           Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
-       prototype.
-       * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
-       * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
-       (SIGNBIT): New mode iterator.
-       (Fsignbit): New mode attribute.
-       (signbit<mode>2): Change operand1 to match FLOAT128 instead of
-       IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
-       when direct moves are available.
-       (signbit<mode>2_dm): New define_insn_and_split).
-       (signbit<mode>2_dm2): New define_insn.
- 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR rtl-optimization/71594
-       * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
-       into subregs of appropriate mode before trying to emit a conditional
-       move.
- 2016-07-05  Jan Hubicka  <jh@suse.cz>
-       * tree-scalar-evolution.c (iv_can_overflow_p): New function.
-       (simple_iv): Use it.
- 2016-07-05  Jan Hubicka  <jh@suse.cz>
-       * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
- 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
-       * lra-constraints.c (process_alt_operands): Don't add spilling cost for
-       "offmemok".
- 2016-07-05  Jan Hubicka  <jh@suse.cz>
-       * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
-       IV can overflow.
- 2016-07-05  Richard Biener  <rguenther@suse.de>
-       * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
-       Handle empty else block.
-       (is_feasible_trace): Likewise.
-       (split_paths): Likewise.
- 2016-07-05  Richard Biener  <rguenther@suse.de>
-       * tree-loop-distribution.c (distribute_loop): Fix issue with
-       the cost model loop.
- 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
-       * config/arm/neon-testgen.ml: Delete.
-       * config/arm/neon.ml: Delete.
- 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/71739
-       * tree.c (attribute_value_equal): Use get_attribute_name instead of
-       directly using TREE_PURPOSE.
- 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
-       * config/aarch64/aarch64_neon.h: Likewise.
-       * config/aarch64/arm_neon.h: Likewise.
-       * config/aarch64/atomics.md: Likewise.
-       * config/aarch64/aarch64-simd-builtins.def: Likewise.
-       * doc/invoke.texi: Likewise.
- 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390.md: Add "z13" cpu_facility.
-       ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
-       * config/s390/predicates.md ("loc_operand"): New predicate for "load on
-       condition" type instructions.
- 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-           Jeff Law  <law@redhat.com>
-       * explow.c (allocate_dynamic_stack_space): Simplify knowing that
-       MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
- 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
-       permutation for TARGET_AVX512F.
-       (ix86_expand_vec_one_operand_perm_avx512): New function.
-       (expand_vec_perm_1): Invoke introduced function.
-       * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
-       it may be not valid after vectorization.
- 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       PR target/63874
-       * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
-       typo in comment.  Only force to memory if it is a weak
-       external reference.
- 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
-           Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
-       * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
-       (AARCH64_FL_F16): New.
-       (AARCH64_FL_FOR_ARCH8_2): New.
-       (AARCH64_ISA_8_2): New.
-       (AARCH64_ISA_F16): New.
-       (TARGET_FP_F16INST): New.
-       (TARGET_SIMD_F16INST): New.
-       * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
-       ("fp"): Disabling "fp" also disables "fp16".
-       * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
-       Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
-       and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
-       * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
- 2016-07-04  Jan Beulich  <jbeulich@suse.com>
-       * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
- 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71720
-       * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
-       the insns, use an insn form that does not adjust the offset on
-       little endian systems.
- 2016-07-01  Jan Beulich  <jbeulich@suse.com>
-       * varasm.c (get_variable_section): Validate initializer in
-       named .bss-like sections.
- 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
-       Exchange the order of the second and third operands in the vpermr
-       instruction tmeplate.
- 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
-       PR target/71698
-       * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
-       Disallow TDmode values.
- 2016-07-01  Alan Modra  <amodra@gmail.com>
-       PR rtl-optimization/71709
-       * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
-       being set, not referenced.
- 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/70729
-       * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
-       of loop since it can be not valid after transformation.
- 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.c (thumb_reload_in_hi): Delete.
-       * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
- 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
-       for NULL decl.
- 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71677
-       * config/rs6000/constraints.md (wY constraint): New constraint to
-       match the requirements for the LXSD and STXSD instructions.
-       * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
-       predicate to match the requirements for the LXSD and STXSD
-       instructions.
-       * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
-       Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
-       to make sure that the bottom 2 bits of offset are 0, the address
-       form is offsettable, and no updating is done in the address mode.
-       (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
-       (movdi_internal32): Likewise
-       (movdi_internal64): Likewise.
- 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71707
-       * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
-       strinfo even for ADDR_EXPR ptr.
- 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.md (darn_32): Change the condition to
-       TARGET_P9_MISC instead of TARGET_MODULO.
-       (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
-       condition expression.
-       (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
-       condition expression.
-       * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
-       (DFP_TEST): New code iterator.
-       (dfptstsfi_<code>_mode>): New define_expand.
-       (*dfp_sgnfcnc_<mode>): New define_insn.
-       * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
-       definition next to BU_P9_MISC_1 definition and change the MASK
-       value to RS6000_BTM_P9_MISC.
-       (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
-       (BU_P9_64BIT_MISC_0): Likewise.
-       (BU_P9_DFP_MISC_0): New macro definition.
-       (BU_P9_DFP_MISC_1): New macro definition.
-       (BU_P9_DFP_MISC_2): New macro definition.
-       (BU_P9_DFP_OVERLOAD_1): New macro definition.
-       (BU_P9_DFP_OVERLOAD_2): New macro definition.
-       (BU_P9_DFP_OVERLOAD_3): New macro definition.
-       (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
-       (TSTSFI_LT_TD): Likewise.
-       (TSTSFI_EQ_DD): Likewise.
-       (TSTSFI_EQ_TD): Likewise.
-       (TSTSFI_GT_DD): Likewise.
-       (TSTSFI_GT_TD): Likewise.
-       (TSTSFI_OV_DD): Likewise.
-       (TSTSFI_OV_TD): Likewise.
-       (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
-       (TSTSFI_LT_DD): Likewise.
-       (TSTSFI_LT_TD): Likewise.
-       (TSTSFI_EQ): Likewise.
-       (TSTSFI_EQ_DD): Likewise.
-       (TSTSFI_EQ_TD): Likewise.
-       (TSTSFI_GT): Likewise.
-       (TSTSFI_GT_DD): Likewise.
-       (TSTSFI_GT_TD): Likewise.
-       (TSTSFI_OV): Likewise.
-       (TSTSFI_OV_DD): Likewise.
-       (TSTSFI_OV_TD): Likewise.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
-       overloaded test significance functions.
-       * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
-       OPTION_MASK_P9_MISC into the representation of this mask.
-       (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
-       of this mask.
-       * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
-       RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
-       non-zero.
-       (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
-       argument is a 6-bit unsigned literal value if the icode argument
-       represents a DFP test significance built-in call.
-       (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
-       flag used independently and in combination with the
-       RS6000_BTM_64BIT flag.
-       (rs6000_opt_masks): Add entry for power9-misc command-line option.
-       (rs6000_builtin_mask_names): Add entry for power9-misc
-       command-line option.
-       * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
-       HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
-       RS6000_BTM_P9_MISC macros.
-       * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
-       option and change the description of the -mpower9-vector option to
-       enable only vector instructions, removing its erroneously claimed
-       support for scalar instructions.
-       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
-       the ISA 3.0 digital floating point test significance built-in
-       functions.
- 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (cortexa35_tunings):
-       Enable AES fusion.  Use cortexa57_branch_cost.
-       (cortexa53_tunings): Use cortexa57_branch_cost.
-       (cortexa72_tunings): Use cortexa57_branch_cost.
-       Use AUTOPREFETCHER_WEAK.
-       (cortexa73_tunings): Use cortexa57_branch_cost.
- 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-           James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
-       vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
-       vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
-       vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
-       (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
-       vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
-       vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
-       vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
-       vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
-       vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
-       vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
-       vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
-       vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
-       New intrinsics.
- 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
-           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
-       New define_insn.
-       (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
- 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
-       PR driver/71651
-       * gcc.c (driver::build_option_suggestions): Pass "option" to
-       add_misspelling_candidates.
-       * opts-common.c (add_misspelling_candidates): Add "option" param;
-       use it to avoid adding negated forms for options marked with
-       RejectNegative.
-       * opts.h (add_misspelling_candidates): Add "option" param.
- 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71693
-       * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
-       TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
-       first when permuting bitwise operation with rotate.  Cast
-       TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
- 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
-       * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
-       for misspelled param names.
-       * params.c: Include spellcheck.h.
-       (find_param_fuzzy): New function.
-       * params.h (find_param_fuzzy): New prototype.
-       * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
-       * spellcheck.h (struct edit_distance_traits<const char *>):
-       ...here.
- 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/predicates.md (const_0_to_7_operand): New
-       predicate, recognize 0..7.
-       * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
-       support for doing extracts from V16QImode, V8HImode, V4SImode
-       under ISA 3.0.
-       * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
-       vector extract support.
-       (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
-       for ISA 3.0 vector extract.
-       (VSX_EX): Constraints to use for ISA 3.0 vector extract.
-       (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
-       extracts of a constant element number from small integer vectors
-       on 64-bit ISA 3.0 systems.
-       (vsx_extract_<mode>_di): Likewise.
-       * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
-       say when we can do ISA 3.0 vector extracts.
-       * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
-       registers, using the stxsiwx instruction.
- 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
-       * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
-       * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
-       qdf24xx_regmove_cost, qdf24xx_tunings): New.
-       * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
-       * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
-       * config/arm/arm.c (arm_qdf24xx_tune): New.
- 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (cortexa53_tunings):
-       Increase loop alignment to 8.  Set function alignment to 16.
-       (cortexa35_tunings): Likewise.
-       (cortexa57_tunings): Increase loop alignment to 8.
-       (cortexa72_tunings): Likewise.
-       (cortexa73_tunings): Likewise.
- 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
-       * doc/sourcebuild.texi (Effective-Target keywords): Add entries
-       for arm_fp16_ok and arm_fp16_hw.
-       (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
-       arm_fp16_alternative.
- 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR tree-optimization/71655
-       * tree-vect-stmts.c (vectorizable_comparison): Swap definition
-       types when swapping operands.
- 2016-06-29  Martin Liska  <mliska@suse.cz>
-       PR middle-end/71585
-       * common.opt (flag_stack_protect): Mark the flag as optimization flag.
-       * ipa-inline-transform.c (inline_call): Remove unnecessary call
-       of build_optimization_node.
- 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/70729
-       * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
-       independent in loops having positive safelen value.
-       * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
-       it may be not valid after vectorization.
- 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71625
-       * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
-       is sorted by ascending list->offset.  If PTR is non-NULL and there is
-       previous strinfo, call get_stridx_plus_constant.
-       (get_stridx): Pass exp as second argument to get_addr_stridx.
-       (addr_stridxptr): Add missing list = list->next, so that there can be
-       more than one entries in the list.  Bump limit from 16 to 32.  Ensure
-       the list is sorted by ascending list->offset.
-       (get_stridx_plus_constant): Adjust so that it can be also called with
-       ADDR_EXPR instead of SSA_NAME as PTR.
-       (handle_char_store): Pass NULL_TREE as second argument to
-       get_addr_stridx.
- 2016-06-29  Richard Biener  <rguenther@suse.de>
-       PR rtl-optimization/68961
-       * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
- 2016-06-29  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71002
-       * alias.c (component_uses_parent_alias_set_from): Handle
-       type punning through union accesses by using the union alias set.
-       * gimple.c (gimple_get_alias_set): Remove union type punning case.
- 2016-07-29  Richard Biener  <rguenther@suse.de>
-       * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
-       precision not matching mode precision.
- 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
-       pa_output_arg_descriptor.
-       (call_val_symref_64bit_post_reload): Likewise.
-       (call_val_powf_64bit_post_reload): Likewise.
-       (sibcall_internal_symref_64bit): Likewise.
-       (sibcall_value_internal_symref_64bit): Likewise.
- 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71626
-       * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
-       a constant, force its SUBREG_REG into memory or register instead
-       of whole op1.
- 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
-       PR target/58655
-       * config/avr/avr.opt (-mfract-convert-truncate): Update description.
-       * doc/invoke.texi (AVR Options): Document it.
- 2016-06-28  Walter Lee  <walt@tilera.com>
-       * config/tilegx/linux.h: Do not include arch/icache.h
-       (CLEAR_INSN_CACHE): Provide inlined definition directly.
-       * config/tilepro/linux.h: Do not include arch/icache.h
-       (CLEAR_INSN_CACHE): Provide inlined definition directly.
- 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
-       * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
-       for big-endian BIT_FIELD_REF.
- 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
-       * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
-       ('size' attribute): Add '128'.
-       Include power9.md.
-       (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
-       *movdi_internal64, *movdf_update1): Set size attribute to '64'.
-       (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
-       copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
-       *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
-       extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
-       *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
-       *trunc<mode>df2_odd): Set size attribute to '128'.
-       (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
-       * config/rs6000/power6.md (power6-fp): Include dfp type.
-       * config/rs6000/power7.md (power7-fp): Likewise.
-       * config/rs6000/power8.md (power8-fp): Likewise.
-       * config/rs6000/power9.md: New file.
-       * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
-       * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
-       *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
-       htmsimple.
-       * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
-       trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
-       divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
-       ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
-       dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
-       dfp_dscri_<mode>): Change type attribute to dfp.
-       * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
-       attribute to vecsimple.
-       * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
-       and prefetch streams.
-       (rs6000_option_override_internal): Remove temporary code setting
-       tuning to power8.  Don't set rs6000_sched_groups for power9.
-       (last_scheduled_insn): Change to rtx_insn *.
-       (divide_cnt, vec_load_pendulum): New variables.
-       (rs6000_adjust_cost): Add Power9 to test for store->load separation.
-       (rs6000_issue_rate): Set issue rate for Power9.
-       (is_power9_pairable_vec_type): New.
-       (power9_sched_reorder2): New.
-       (rs6000_sched_reorder2): Call new function for Power9 specific
-       reordering.
-       (insn_must_be_first_in_group): Remove Power9.
-       (insn_must_be_last_in_group): Likewise.
-       (force_new_group): Likewise.
-       (rs6000_sched_init): Fix initialization of last_scheduled_insn.
-       Initialize divide_cnt/vec_load_pendulum.
-       (_rs6000_sched_context, rs6000_init_sched_context,
-       rs6000_set_sched_context): Handle context save/restore of new
-       variables.
- 2016-06-28  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
-       Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
-       COMPONENT_REF operand.
-       (nonoverlapping_component_refs_p): Likewise.
-       * stor-layout.c (start_bitfield_representative): Mark
-       DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
- 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
-       * Makefile.in: Don't cat ../stage_current if it does not exist.
-       * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
-       last argument is a bit-field.
-       PR rtl-optimization/71673
-       * internal-fn.c (expand_arith_overflow_result_store): Use
-       OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
-       expand_simple_binop.
-       PR middle-end/66867
-       * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
-       expand_ifn_atomic_compare_exchange): New functions.
-       * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
-       * tree.h (build_call_expr_internal_loc): Rename to ...
-       (build_call_expr_internal_loc_array): ... this.  Fix up type of
-       last argument.
-       * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
-       * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
-       ATOMIC_COMPARE_EXCHANGE result.
-       * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
-       * gimple-fold.h (optimize_atomic_compare_exchange_p,
-       fold_builtin_atomic_compare_exchange): New prototypes.
-       * gimple-fold.c (optimize_atomic_compare_exchange_p,
-       fold_builtin_atomic_compare_exchange): New functions..
-       * tree-ssa.c (execute_update_addresses_taken): If
-       optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
-       of call when finding addressable vars, and if such var becomes
-       non-addressable, call fold_builtin_atomic_compare_exchange.
- 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR target/71670
-       * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
-       gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
- 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
-       * config/rs6000/rs6000.md ('type' attribute): Add
-       veclogical,veccmpfx,vecexts,vecmove insn types.
-       (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
-       copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
-       p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
-       (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
-       *nabs<mode>2_hw): Change type to vecmove.
-       (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
-       *boolcc<mode>3_internal, *eqv<mode>3_internal,
-       *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
-       *ieee_128bit_vsx_abs<mode>2_internal,
-       *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
-       *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
-       *ieee128_mtvsrd_32bit): Change type to veclogical.
-       (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
-       *movdi_internal32, *movdi_internal64): Update insn types.
-       * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
-       vsx_extract_<mode>): Change type to veclogical.
-       (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
-       (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
-       *vsx_sign_extend_si_v2di): Change type to vecexts.
-       * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
-       type to veclogical.
-       (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
-       *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
-       *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
-       (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
-       * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
-       negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
-       * config/rs6000/40x.md (ppc405-float): Add fpsimple.
-       * config/rs6000/440.md (ppc440-fp): Add fpsimple.
-       * config/rs6000/476.md (ppc476-fp): Add fpsimple.
-       * config/rs6000/601.md (ppc601-fp): Add fpsimple.
-       * config/rs6000/603.md (ppc603-fp): Add fpsimple.
-       * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
-       * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
-       (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
-       * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
-       (ppc7450-vecsimple): Add veclogical, vecmove.
-       (ppc7450-veccmp): Add veccmpfx.
-       * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
-       vecmove.
-       (ppc8540_vector_compare): Add veccmpfx.
-       * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
-       * config/rs6000/cell.md (cell-fp): Add fpsimple.
-       (cell-vecsimple): Add veclogical, vecmove.
-       (cell-veccmp): Add veccmpfx.
-       * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
-       * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
-       veccmpfx.
-       * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
-       * config/rs6000/power4.md (power4-fp): Add fpsimple.
-       (power4-vecsimple): Add veclogical, vecmove.
-       (power4-veccmp): Add veccmpfx.
-       * config/rs6000/power5.md (power5-fp): Add fpsimple.
-       * config/rs6000/power6.md (power6-fp): Add fpsimple.
-       (power6-vecsimple): Add veclogical, vecmove.
-       (power6-veccmp): Add veccmpfx.
-       * config/rs6000/power7.md (power7-fp): Add fpsimple.
-       (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
-       * config/rs6000/power8.md (power8-fp): Add fpsimple.
-       (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
-       * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
-       * config/rs6000/titan.md (titan_fp): Add fpsimple.
-       * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
-       fpsimple.
-       * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
- 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
-       PR target/71656
-       * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
-       OPTION_MASK_P9_DFORM_VECTOR.
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
-       disable -mpower9-dform-vector when using reload.
-       (quad_address_p): Remove 'gpr_p' argument and all associated code.
-       New 'strict' argument.  Update all callers.  Add strict addressing
-       support.
-       (rs6000_legitimate_offset_address_p): Remove call to
-       virtual_stack_registers_memory_p.
-       (rs6000_legitimize_reload_address): Add quad address support.
-       (rs6000_legitimate_address_p): Move call to quad_address_p above
-       call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
-       to account for new strict usage.
-       (rs6000_output_move_128bit): Adjust quad_address_p args to account
-       for new strict usage.
-       * config/rs6000/predicates.md (quad_memory_operand): Likewise.
- 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/70902
-       PR target/71453
-       PR target/71555
-       PR target/71596
-       PR target/71657
-       * config/i386/i386.c (ix86_spill_class): Disable condition to
-       always return NO_REGS.
- 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c: Include gimple-pretty-print.h
-       (predicted_by_loop_heuristics_p): Check also
-       PRED_LOOP_EXIT_WITH_RECURSION
-       (predict_loops): Find self recursive calls and use special purpose
-       predictors for them; dump log about decisions.
-       (pass_profile::execute): Dump info about #of iterations.
-       * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
-       (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
- 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.c (pa_output_indirect_call): Rework to combine
-       output_asm_insn calls and shorten long lines.  Output .CALL
-       argument descriptor using pa_output_arg_descriptor.  Add various
-       inline $$dyncall and other optimizations.
-       (pa_attr_length_indirect_call): Adjust ordering and lengths.
- 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71643
-       * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
-       EH preds.
-       * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
-       leak a bitmap if dep_bb is NULL.
-       PR tree-optimization/71631
-       * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
-       to rewrite_expr_tree even if negate_result, move new_lhs var
-       declaration and initialization earlier, for powi_result set afterwards
-       new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
-       if new_lhs != lhs, and don't shadow gsi var.
- 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
-       Add in_loop parameter.
-       (predict_loops): Add loop guard heuristics.
-       * predict.def (PRED_LOOP_GUARD): New heuristics.
- 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c: Include ipa-utils.h
-       (tree_bb_level_prediction): Predict recursive calls.
-       (tree_estimate_probability_bb): Skip inexpensive calls for call
-       predictor.
-       * predict.def (PRED_RECURSIVE_CALL): New.
- 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
-       (BU_FLOAT128_1): Likewise.
-       (FABSQ): Likewise.
-       (COPYSIGNQ): Likewise.
-       (RS6000_BUILTIN_NANQ): Likewise.
-       (RS6000_BUILTIN_NANSQ): Likewise.
-       (RS6000_BUILTIN_INFQ): Likewise.
-       (RS6000_BUILTIN_HUGE_VALQ): Likewise.
-       * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
-       (TARGET_FOLD_BUILTIN): New #define.
-       (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
-       (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
-       (rs6000_fold_builtin): New target hook implementation, handling
-       folding of 128-bit NaNs and infinities.
-       (rs6000_init_builtins): Initialize const_str_type_node; ensure all
-       entries are filled in to avoid problems during bootstrap
-       self-test; define builtins for 128-bit NaNs and infinities.
-       (rs6000_opt_mask): Add entry for float128.
-       * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
-       (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
-       (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
-       (const_str_type_node): New #define.
-       * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
-       to a define_expand that dispatches to either copysign<mode>3_soft
-       or copysign<mode>3_hard.
-       (copysign<mode>3_hard): Rename from copysign<mode>3.
-       (copysign<mode>3_soft): New define_insn.
-       * doc/extend.texi: Document new builtins.
- 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
-       * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
-       PRIu64 instead of lu.
- 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
-       PR debug/71642
-       * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
-       copy the type name.
- 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71647
-       * omp-low.c (lower_rec_input_clauses): Convert
-       omp_clause_aligned_alignment (c) to size_type_node for the
-       last argument of __builtin_assume_aligned.
- 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
-       * configure.ac (calling ___tls_get_addr via GOT): New
-       assembler/linker check.
-       (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
-       assembler and linker supports calling ___tls_get_addr via GOT.
-       Otherise, defined to 0.
-       * config.in: Regenerated.
-       * configure: Likewise.
-       * config/i386/constraints.md (Yb): New constraint.
-       * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
-       (REG_CLASS_NAMES): Likewise.
-       (REG_CLASS_CONTENTS): Likewise.
-       * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
-       the b constraint with the Yb constraint.  Call ___tls_get_addr
-       via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
-       is 1.
-       (*tls_local_dynamic_base_32_gnu): Likewise.
-       (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
-       GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
-       (*tls_local_dynamic_base_64_<mode>): Likewise.
- 2016-06-24  Martin Liska  <mliska@suse.cz>
-       * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
-       * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
-       few functions.
-       * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
-       argument to true if the expected number of iterations is
-       loop-based.
- 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
-       * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
-       assemble for 32bit target.
-       (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
-       and $ld_ix86_gld_32_opt to link for 32bit target.
-       (HAVE_AS_IX86_TLSLDMPLT): Ditto.
-       * configure: Regenerate.
- 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.c (int_log2): Delete definition and prototype.
-       (shift_op): Use exact_log2 instead of int_log2.
-       (vfp3_const_double_for_fract_bits): Likewise.
- 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
-       * internal-fn.c (expand_arith_set_overflow): New function.
-       (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
-       Use it.
-       (expand_arith_overflow_result_store): Likewise.  Handle precision
-       smaller than mode precision.
-       * tree-vrp.c (extract_range_basic): For imag part, handle
-       properly signed 1-bit precision result.
-       * doc/extend.texi (__builtin_add_overflow): Document that last
-       argument can't be pointer to enumerated or boolean type.
-       (__builtin_add_overflow_p): Document that last argument can't
-       have enumerated or boolean type.
- 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
-           Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/predicates.md (splat_input_operand): Rework.
-       Don't allow constants, since the insns that use this predicate
-       don't support constants.  Constants are handled by other insns
-       that are created via combine.  During and after register
-       allocation, only allow indexed or indirect addresses, and not
-       general addresses.  Only allow modes supported by the hardware.
-       * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
-       comment.  Move check for using VSPLTIS<x> to a common location,
-       instead of doing it in two different places.
- 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
-       * config/i386/driver-i386.c (host_detect_local_cpu): Set
-       PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
-       <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
-       signature_CENTAUR_ebx.
- 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/66232
-       PR target/67400
-       * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
-       (as_ix86_gas_32_opt): This.
-       (ld_ix86_tls_ldm_opt): Renamed to ...
-       (ld_ix86_gld_32_opt): This.
-       (R_386_TLS_LDM reloc): Updated.
-       (R_386_GOT32X reloc): New assembler/linker check.
-       (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
-       linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
-       defined to 0.
-       * config.in: Regenerated.
-       * configure: Likewise.
-       * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
-       true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
-       (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
-       if ix86_force_load_from_GOT_p returns true.
-       (ix86_print_operand_address_as): Also support UNSPEC_GOT if
-       ix86_force_load_from_GOT_p returns true.
-       (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
-       the external function address via the GOT slot.
-       (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
-       HAVE_AS_IX86_GOT32X before returning false.
-       (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
-       32-bit mode if ix86_nopic_noplt_attribute_p returns true.
- 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
- 2016-06-23  Andi Kleen  <ak@linux.intel.com>
-       * Makefile.in: Regenerate.
-       * doc/install.texi: Document autoprofiledbootstrap.
- 2016-06-23  Andi Kleen  <ak@linux.intel.com>
-       * config/i386/gcc-auto-profile: New file.
- 2016-06-23  Martin Liska  <mliska@suse.cz>
-       PR middle-end/71619
-       * predict.c (predict_loops): Revert the hunk that was removed
-       in r237103.
- 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
-       * config.gcc: Add support for arm*-*-phoenix* targets.
-       * config/arm/t-phoenix: New.
-       * config/phoenix.h: New.
- 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
-           H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/67400
-       * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
-       * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
-       (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
-       ix86_force_load_from_GOT_p returns true.
-       (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
-       ix86_force_load_from_GOT_p returns true.
-       (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
-       ix86_force_load_from_GOT_p returns true.
-       (ix86_expand_move): Load the external function address via the
-       GOT slot if ix86_force_load_from_GOT_p returns true.
-       * config/i386/predicates.md (x86_64_immediate_operand): Return
-       false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
-       (x86_64_zext_immediate_operand): Ditto.
- 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
- 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
-       PR c/70339
-       * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
-       * diagnostic.c (pedwarn_at_rich_loc): New function.
-       * spellcheck.h (best_match::best_match): Add a
-       "best_distance_so_far" optional parameter.
-       (best_match::set_best_so_far): New method.
-       (best_match::get_best_distance): New accessor.
-       (best_match::get_best_candidate_length): New accessor.
- 2016-06-22  Nick Clifton  <nickc@redhat.com>
-       * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
-       place of GET_MODE_CLASS() == MODE_INT, so that partial integer
-       modes are accepted as well.
-       (ucompare_loc_descriptor): Likewise.
-       (minmax_loc_descriptor): Likewise.
-       (clz_loc_descriptor): Likewise.
-       (popcount_loc_descriptor): Likewise.
-       (bswap_loc_descriptor): Likewise.
-       (rotate_loc_descriptor): Likewise.
-       (mem_loc_descriptor): Likewise.
-       (loc_descriptor): Likewise.
- 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
-       * common.opt (fdiagnostics-parseable-fixits): New option.
-       * diagnostic.c: Include "selftest.h".
-       (print_escaped_string): New function.
-       (print_parseable_fixits): New function.
-       (diagnostic_report_diagnostic): Call print_parseable_fixits.
-       (selftest::assert_print_escaped_string): New function.
-       (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
-       (selftest::test_print_escaped_string): New function.
-       (selftest::test_print_parseable_fixits_none): New function.
-       (selftest::test_print_parseable_fixits_insert): New function.
-       (selftest::test_print_parseable_fixits_remove): New function.
-       (selftest::test_print_parseable_fixits_replace): New function.
-       (selftest::diagnostic_c_tests): New function.
-       * diagnostic.h (struct diagnostic_context): Add field
-       "parseable_fixits_p".
-       * doc/invoke.texi (Diagnostic Message Formatting Options): Add
-       -fdiagnostics-parseable-fixits.
-       (-fdiagnostics-parseable-fixits): New option.
-       * opts.c (common_handle_option): Handle
-       -fdiagnostics-parseable-fixits.
-       * selftest-run-tests.c (selftest::run_tests): Call
-       selftest::diagnostic_c_tests.
-       * selftest.h (selftest::diagnostic_c_tests): New prototype.
- 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR tree-optimization/71488
-       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
-       comparison of boolean vectors.
-       * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
-       of boolean vectors using bitwise operations.
- 2016-06-22  Andreas Schwab  <schwab@suse.de>
-       * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
-       Remove declaration.
- 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
-       * function.c (assign_parm_setup_reg): Prevent sharing in another case.
- 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * config/i386/i386.c (print_reg): Emit an error message on attempt to
-       print FLAGS_REG.
- 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.c (arm_cortex_a73_tune): New struct.
-       * config/arm/arm-cores.def (cortex-a73): New entry.
-       (cortex-a73.cortex-a35): Likewise.
-       (cortex-a73.cortex-a53): Likewise.
-       * config/arm/arm-tables.opt: Regenerate.
-       * config/arm/arm-tune.md: Likewise.
-       * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
-       mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
-       * config/arm/t-aprofile: Handle mcpu=cortex-a73,
-       mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
-       * doc/invoke.texi (ARM Options): Document cortex-a73,
-       cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
- 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
-       * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
-       (cortex-a73.cortex-a35): Likewise.
-       (cortex-a73.cortex-a53): Likewise.
-       * config/aarch64/aarch64-tune.md: Regenerate.
-       * doc/invoke.texi (AArch64 Options): Document cortex-a73,
-       cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
-       -mcpu and -mtune.
- 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       * configure.ac (gcc_cv_as_compress_debug): Remove
-       --compress-debug-sections as extra as switch.
-       Handle gas --compress-debug-sections=type.
-       (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
-       Handle gld --compress-debug-sections=type.
-       * configure: Regenerate.
- 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
-       * bb-reorder.c (pass_partition_blocks::gate): Update comment.
- 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
-       * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
-       (do_rewrite): likewise.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * common/config/mep/mep-common.c: Remove.
-       * config.gcc: Remove mep-* support.
-       * config/mep/constraints.md: Remove.
-       * config/mep/default.h: Remove.
-       * config/mep/intrinsics.h: Remove.
-       * config/mep/intrinsics.md: Remove.
-       * config/mep/ivc2-template.h: Remove.
-       * config/mep/mep-c5.cpu: Remove.
-       * config/mep/mep-core.cpu: Remove.
-       * config/mep/mep-default.cpu: Remove.
-       * config/mep/mep-ext-cop.cpu: Remove.
-       * config/mep/mep-intrin.h: Remove.
-       * config/mep/mep-ivc2.cpu: Remove.
-       * config/mep/mep-pragma.c: Remove.
-       * config/mep/mep-protos.h: Remove.
-       * config/mep/mep.c: Remove.
-       * config/mep/mep.cpu: Remove.
-       * config/mep/mep.h: Remove.
-       * config/mep/mep.md: Remove.
-       * config/mep/mep.opt: Remove.
-       * config/mep/predicates.md: Remove.
-       * config/mep/t-mep: Remove.
-       * doc/install.texi: Remove mep-* documentation.
-       * doc/md.texi: Likewise.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config.gcc: Remove support for avr-rtems.
-       * config/avr/gen-avr-mmcu-specs.c: Likewise.
-       * config/avr/rtems.h: Remove.
-       * config/avr/t-rtems: Remove.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config.gcc: Remove m32r-rtems support.
-       * config/m32r/rtems.h: Remove.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config.gcc: Remove h8300-rtems support.
-       * config/h8300/rtems.h: Remove.
-       * config/h8300/t-rtems: Remove.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config.gcc: Remove support for knetbsd.
-       * configure.ac: Likewise.
-       * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
-       * config/knetbsd-gnu.h: Remove.
-       * configure: Regenerate.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config.gcc: Remove support for openbsd 2 and 3.
-       * config/openbsd-oldgas.h: Remove.
- 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * config.gcc: Remove interix support.
-       * config/i386/i386-interix.h: Remove.
-       * config/i386/interix.opt: Remove.
-       * config/i386/t-interix: Remove.
-       * configure: Regenerate.
-       * configure.ac: Remove interix support.
-       * doc/install.texi: Remove interix documentation.
- 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/rs6000.h: Add conditional preprocessing directives
-       to disable Power9-specific compiler features if HAVE_AS_POWER9 is
-       not defined.
- 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
-       they are both PLACEHOLDER_EXPRs.
- 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * stor-layout.c (layout_type): Move setting complex MODE to
-       layout_type, instead of setting it ahead of time by the caller.
-       * tree.c (build_complex_type): Likewise.
- 2016-06-21  Martin Liska  <mliska@suse.cz>
-       * predict.c (force_edge_cold): Replace imposisble with
-       impossible.
- 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
-       * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
-       * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
- 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
-       * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
- 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
-           Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR target/71549
-       * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
-       New member function to convert V1TImode register to SUBREG
-       TImode in debug insn.
-       (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
-       after changing register mode to V1TImode.
- 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
-       * config/aarch64/aarch64-cores.def (vulcan): New core.
-       * config/aarch64/aarch64-tune.md: Regenerate.
-       * doc/invoke.texi: Document vulcan as an available option.
- 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
-       * cse.c (canon_asm_operands): New function extracted from...
-       (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
-       either standalone or member of a PARALLEL.
- 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/30417
-       * config/avr/gen-avr-mmcu-specs.c (print_mcu):
-       [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
-       [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
- 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/71103
-       * config/avr/avr.md (movqi): Only handle loading subreg:qi of
-       constant addresses if can_create_pseudo_p.
- 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71588
-       * tree-ssa-strlen.c (valid_builtin_call): New function.
-       (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
-       it.
- 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71581
-       * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
-       see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
-       for conversion of scalar user var to complex type and use the
-       underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
-       punt.
-       PR rtl-optimization/71591
-       * toplev.c (toplev::run_self_tests): If no_backend, complain and
-       don't run any tests.
- 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
-       PR target/71571
-       * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
-       delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
-       space for PIC with non-v32 and the common non-PIC "jump".
- 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
-       PR target/71559
-       * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
-       returned values and add UN*/LTGT/*ORDERED cases with values matching
-       D operand modifier on vcmp for AVX.
- 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.opt
-       (mpc-relative-literal-loads): Rename internal option name.
-       * config/aarch64/aarch64.c
-       (aarch64_nopcrelative_literal_loads): Rename to
-       aarch64_pcrelative_literal_loads.
-       (aarch64_expand_mov_immediate): Likewise.
-       (aarch64_secondary_reload): Likewise.
-       (aarch64_can_use_per_function_literal_pools_p): Likewise.
-       (aarch64_override_options_after_change_1): Rename and simplify logic.
-       (aarch64_classify_symbol): Merge large model checks into switch,
-       remove pc-relative load check.
- 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
-       costs relative to the cost of a register move.
- 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
-       (vcvt_n_f64_u64): Likewise.
-       (vcvt_n_s64_f64): Likewise.
-       (vcvt_n_u64_f64): Likewise.
-       (vcvt_f64_s64): Likewise.
-       (vrecpe_f64): Likewise.
-       (vcvt_f64_u64): Likewise.
-       (vrecps_f64): Likewise.
- 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.md
-       (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
-       iterators.
-       (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
-       attributes.
-       * config/aarch64/aarch64-builtins.c
-       (aarch64_types_binop_uss_qualifiers): Delete.
-       (TYPES_BINOP_USS): Likewise.
-       (aarch64_types_binop_sus_qualifiers): Likewise.
-       (TYPES_BINOP_SUS): Likewise.
-       (aarch64_types_fcvt_from_unsigned_qualifiers): New.
-       (TYPES_FCVTIMM_SUS): Likewise.
-       * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
-       rather than BINOP.
-       (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
-       (fcvtzs): Use SHIFTIMM rather than BINOP.
-       (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
- 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
-       costs relative to the cost of a register move.
- 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
-       Allow scalar/single vector modes to be tieable.
- 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
- 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
-       "alignement".
-       * tree.h (TYPE_ALIGN): Likewise.
- 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
-       PR target/71103
-       * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
- 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
-       * config/avr/avr.c (avr_print_operand): Fix "format not a string
-       literal" build warnings.
-       (avr_print_operand_address): Dito.
- 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
-       PR target/71375
-       * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
-       * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
- 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
- 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
-       PR bootstrap/71435
-       * reload1.c (reload): Pass 0 to finish_spills when called because
-       update_eliminables_and_spill returns true and remove did_spill.
-       (finish_spills): Adjust comment and document GLOBAL parameter.
- 2016-06-17  DJ Delorie  <dj@redhat.com>
-       PR target/71338
-       * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
-       * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
-       (umulqihi3_virt): Likewise.
-       * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
-       (umulqihi3_real): Likewise.
- 2016-06-17  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
- 2016-06-17  Martin Liska  <mliska@suse.cz>
-       * predict.def: PRED_LOOP_EXIT from 92 to 85.
- 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
-       __FAST_MATH__.
-       (vaddq_f32): Likewise.
-       (vmul_f32): Likewise.
-       (vmulq_f32): Likewise.
-       (vsub_f32): Likewise.
-       (vsubq_f32): Likewise.
- 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/71347
-       * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
-       cost for all uses in group.
- 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
-       insert gimple seq if it's not empty.
- 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
-       * tree-vectorizer.h (struct dr_with_seg_len): Remove class
-       member OFFSET.
-       * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
-       rather than OFFSET.
-       (comp_dr_with_seg_len_pair): Ditto.
-       (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
-       struct dr_with_seg_len_pair against DR_OFFSET.
-       * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
-       DR_OFFSET directly.
- 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-       * config/aarch64/geniterators.sh: Handle parenthesised conditions.
- 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
-       (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
-       (pa_output_millicode_call): Likewise.
-       (pa_output_call): Likewise.
-       (pa_output_indirect_call): Likewise.
-       (pa_asm_output_mi_thunk): Likewise.
- 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
-       * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
- 2016-06-16  Martin Liska  <mliska@suse.cz>
-       * predict.c (combine_predictions_for_insn): When we find a first
-       match predictor, we should consider just predictors with
-       PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
-       DS theory predictor.
-       (combine_predictions_for_bb): Likewise.
- 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
-       * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
-       with base of reference to struct.
- 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
-       * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
- 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       PR target/71151
-       * config/avr/avr.c (avr_asm_init_sections): Remove setup of
-       progmem_swtable_section.
-       (progmem_swtable_section): Remove.
-       (avr_asm_function_rodata_section): Remove.
-       (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
-       * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
- 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
-       * config/i386/driver-i386.c (host_detect_local_cpu): Set
-       PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
-       <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
-       signature_CENTAUR_ebx.
-       * config/i386/i386.c (ix86_option_override_internal): Add
-       definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
-       nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
-       * doc/invoke.texi (x86 Options): Document new VIA -march entries.
- 2016-06-16  Martin Liska  <mliska@suse.cz>
-       * predict.def: Add fortran loop preheader predictor.
-       * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
-       fold IFN_BUILTIN_EXPECT with a known constant argument.
- 2016-06-16  Martin Liska  <mliska@suse.cz>
-       * predict.def: Add 'Fortran' to display text of all
-       PRED_FORTRAN_* predictors.
- 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/71242
-       * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
-       [IA64_BUILTIN_NANSQ]: Ditto.
-       (ia64_fold_builtin): New function.
-       (TARGET_FOLD_BUILTIN): New define.
-       (ia64_init_builtins) Declare const_string_type node.
-       Add __builtin_nanq and __builtin_nansq builtin functions.
-       (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
- 2016-06-16  Nick Clifton  <nickc@redhat.com>
-       * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
-       MSP430_HWMULT_ prefix to enum values.
-       (msp430_regions): Add MSP430_REGION_ prefix to enum values.
-       * config/msp430/msp430.c: Update use of enum values.
-       * config/msp430/msp430.md: Likewise.
-       * config/msp430/msp430.opt: Likewise.
- 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
-       of comparsions in the last iteration.
- 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
-           Joern Rennecke  <joern.rennecke@embecosm.com>
-       * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
-       addresses.
-       (arc_needs_pcl_p): Add GOTOFFPC.
-       (arc_legitimate_pic_addr_p): Likewise.
-       (arc_output_pic_addr_const): Likewise.
-       (arc_legitimize_pic_address): Generate a pc-relative address using
-       GOTOFFPC.
-       (arc_output_libcall): Use @pcl syntax.
-       (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
-       * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
-       (*movsi_insn): Use @pcl syntax.
-       (doloop_begin_i): Likewise.
- 2016-06-16  Martin Liska  <mliska@suse.cz>
-       * predict.def: Define a new predictor.
- 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.opt (mtp-regno): Update text.
- 2016-06-16  Renlin Li  <renlin.li@arm.com>
-       * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
- 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
-       PR target/71554
-       * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
-       (setcc + and peephole2): Likewise.
-       PR rtl-optimization/71532
-       * cse.c (cse_insn): For const/pure calls, invalidate argument passing
-       memory slots.
- 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
-       DImode constants with XXSPLTIB in vector registers.
-       (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
-       vsx_extract_<mode>_internal{1,2} into a single insn that handles
-       direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
-       extraction of the element at the top of the register as a scalar
-       value.
-       (vsx_extract_<mode>_internal1): Likewise.
-       (vsx_extract_<mode>_internal2): Likewise.
-       * config/rs6000/constraints.md (wi constraint): Remove a comment
-       about DImode not being allowed in Altivec registers.
-       (wB constraint): New constraint for constants that can be
-       generated in Altivec registers with VSPLTISW/VUPKHSW.
-       * config/rs6000/predicates.md (xxspltib_constant_split): Update
-       comments.
-       (xxspltib_constant_nosplit): Likewise.
-       * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
-       support for -mupper-regs-di to enable DImode to go into Altivec
-       registers.
-       (POWERPC_MASKS): Likewise.
-       (power7 cpu): Likewise.
-       * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
-       * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
-       for DImode being allowed in Altivec registers.  Update wi/wj
-       constraints.  Set scalar_in_vmx_p flag.
-       (rs6000_option_override_internal): Add checks for -mupper-regs-di.
-       (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
-       return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
-       (rs6000_opt_masks): Add -mupper-regs-di.
-       * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
-       direct move to use wi and not wj.
-       (lfiwzx): Likewise.
-       (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
-       alternative.
-       (floatunssi<mode>2_lfiwzx_mem): Likewise.
-       (fix_trunc<mode>di2_fctidz): Change second alternative to allow
-       any VSX register, instead of just Altivec registers, to allow
-       either operand to be an Altivec register or both.
-       (fixuns_trunc<mode>di2_fctiduz): Likewise.
-       (movdi_internal32): Add support for -mupper-regs-di.  Add support
-       to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
-       the alternatives and attributes to be lined up to be easier to
-       read.
-       (movdi_internal64): Likewise.
-       (64-bit DImode splitters): Change predicates to only split loading
-       up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
-       load constants in ISA 3.0 or ISA 2.07 respectively.
-       * doc/invoke.texi (RS/6000 and PowerPC Options): Document
-       -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
-       mention -mcpu=power9 sets these options.
-       * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
-       wB constraint.
- 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
-       PR target/67353
-       * config/avr/avr.c (avr_set_current_function): Warn misspelled
-       interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
-       * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
-       by default to warn misspelled interrupt/ signal handler.
-       * doc/invoke.texi (AVR Options): Document it. Update description
-       for -nodevicelib option.
- 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
-       up parentheses.  Use GET_MODE_UNIT_BITSIZE.
-       (aarch64_<sur>shll2_n<mode>): Likewise.
- 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR middle-end/71529
-       * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
-       DECL_CONTEXT for copied arguments.
- 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71483
-       * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
-       for slp
- 2016-06-15  Martin Liska  <mliska@suse.cz>
-       * predict.c (tree_predict_by_opcode): Call predict_edge_def
-       instead of predict_edge w/o a probability.
- 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71439
-       * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
-       live PHIs.
- 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
-       register subregs in SET_SRC.
- 2016-06-15  Richard Biener  <rguenther@suse.de>
-       * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
-       store restrictions.
- 2016-06-15  Richard Biener  <rguenther@suse.de>
-       * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
-       not consider dependences between accesses that belong to the
-       same group.
-       (vect_analyze_data_ref_dependences): Do not analyze read-read
-       or self-dependences.
- 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
-       * spellcheck-tree.c: Include spellcheck-tree.h rather than
-       spellcheck.h.
-       (find_closest_identifier): Reimplement in terms of
-       best_match<tree,tree>.
-       * spellcheck-tree.h: New file.
-       * spellcheck.c (struct edit_distance_traits<const char *>): New
-       struct.
-       (find_closest_string): Reimplement in terms of
-       best_match<const char *, const char *>.
-       * spellcheck.h (levenshtein_distance): Move prototype of tree-based
-       overload to spellcheck-tree.h.
-       (find_closest_identifier): Likewise.
-       (struct edit_distance_traits<T>): New template.
-       (class best_match): New class.
- 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
-       * selftest-run-tests.c (selftest::run_tests): Call
-       selftest::spellcheck_tree_c_tests.
-       * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
-       * spellcheck-tree.c: Include selftest.h and stringpool.h.
-       (selftest::test_find_closest_identifier): New function.
-       (selftest::spellcheck_tree_c_tests): New function.
-       * spellcheck.c (selftest::test_find_closest_string): Verify that
-       the order of the vec does not affect the results for this case.
-       (selftest::test_data): New array.
-       (selftest::test_metric_conditions): New function.
-       (selftest::spellcheck_c_tests): Add a test of case-comparison.
-       Call selftest::test_metric_conditions.
- 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-builtin.def (commentary): Typo.
-       (BU_P9_MISC_1): Likewise.
-       (BU_P9_64BIT_MISC_0): Likewise.
-       (BU_P9_MISC_0): Likewise.
- 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
-       * gcc-rich-location.c
-       (gcc_rich_location::add_fixit_misspelled_id): New method.
-       * gcc-rich-location.h
-       (gcc_rich_location::add_fixit_misspelled_id): Add decl.
- 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
-       * config/arm/freebsd.h: Only enable unaligned access for armv6 on
-       FreeBSD 11 and above.
- 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
- 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * expmed.h: Close parenthesis in "at your option" in copyright
-       boilerplate.
-       * lower-subreg.h: Likewise.
- 2016-06-14  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71526
-       * genmatch.c (expr::gen_transform): Use in_type for comparisons
-       if available.
- 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
-       New function.
-       (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
-       mask+shift version.
-       * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
-       New prototype.
-       * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
-       matching condition with aarch64_mask_and_shift_for_ubfiz_p.
- 2016-06-14  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71522
-       * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
-       copying into float copying.
- 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71520
-       * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
-       (replace_block_by): Move user labels from bb1 to bb2.
- 2016-06-14  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71310
-       PR bootstrap/71510
-       * expr.h (get_bit_range): Declare.
-       * expr.c (get_bit_range): Export.
-       * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
-       word_mode again to constrain the bitfield access.
- 2016-06-14  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71521
-       * tree-vrp.c (extract_range_from_binary_expr_1): Guard
-       division int_const_binop against zero divisor.
- 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (signbittf2): New expander.
-       * config/i386/sse.md (ptesttf2): New insn pattern.
- 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
-       PR bootstrap/71481
-       * input.c (selftest::test_reading_source_line): Avoid reading from
-       __FILE__ by creating a tempfile with known content and reading
-       from that instead.
- 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
-       * pretty-print.c (assert_pp_format_colored): Skip the test if
-       GCC_COLORS is set.
-       (test_pp_format): Remove comment about GCC_COLORS.
- 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
-       * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
-       * pretty-print.c (assert_pp_format_va): Add location param and use
-       it with ASSERT_STREQ_AT.
-       (assert_pp_format): Add location param and pass it to
-       assert_pp_format_va.
-       (assert_pp_format_colored): Likewise.
-       (ASSERT_PP_FORMAT_1): New.
-       (ASSERT_PP_FORMAT_2): New.
-       (ASSERT_PP_FORMAT_3): New.
-       (test_pp_format): Provide SELFTEST_LOCATION throughout, either
-       explicitly, or implicitly via the above macros.
-       * selftest.c (selftest::pass): Use a selftest::location rather
-       than file and line.
-       (selftest::fail): Likewise.  Print the function name.
-       (selftest::fail_formatted): Likewise.
-       (selftest::assert_streq): Use a selftest::location rather than
-       file and line.
-       * selftest.h (selftest::location): New struct.
-       (SELFTEST_LOCATION): New macro.
-       (selftest::pass): Accept a const location & rather than file
-       and line.
-       (selftest::fail): Likewise.
-       (selftest::fail_formatted): Likewise.
-       (selftest::assert_streq): Likewise.
-       (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
-       (ASSERT_FALSE): Likewise.
-       (ASSERT_EQ): Likewise.
-       (ASSERT_NE): Likewise.
-       (ASSERT_STREQ): Likewise.
-       (ASSERT_PRED1): Likewise.
-       (ASSERT_STREQ_AT): New macro.
- 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
-       * selftest.c (selftest::fail_formatted): New function.
-       (selftest::assert_streq): New function.
-       * selftest.h (selftests::fail_formatted): New decl.
-       (selftest::assert_streq): New decl.
-       (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
- 2016-06-13  Jeff Law  <law@redhat.com>
-       PR tree-optimization/71403
-       * tree-ssa-threadbackward.c
-       (convert_and_register_jump_thread_path): No longer accept reference
-       to path.  Do not pop items off the path anymore.
-       (fsm_find_control_statement_thread_paths): Do not allow threading
-       to a deeper loop nest.  Pop the last item off the path here rather
-       than in convert_and_register_jump_thread_path.
- 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
-           Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
-       [AArch64] Emit division using the Newton series
-       * config/aarch64/aarch64-protos.h
-       (cpu_approx_modes): Add new member "division".
-       (aarch64_emit_approx_div): Declare new function.
-       * config/aarch64/aarch64.c
-       (generic_approx_modes): New member "division".
-       (exynosm1_approx_modes): Likewise.
-       (xgene1_approx_modes): Likewise.
-       (aarch64_emit_approx_div): Define new function.
-       * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
-       * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
-       * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
-       * doc/invoke.texi (-mlow-precision-div): Describe new option.
- 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
-           Wilco Dijkstra  <wilco.dijkstra@arm.com>
-       [AArch64] Emit square root using the Newton series
-       * config/aarch64/aarch64-protos.h
-       (aarch64_emit_approx_rsqrt): Replace with new function
-       "aarch64_emit_approx_sqrt".
-       (cpu_approx_modes): New member "sqrt".
-       * config/aarch64/aarch64.c
-       (generic_approx_modes): New member "sqrt".
-       (exynosm1_approx_modes): Likewise.
-       (xgene1_approx_modes): Likewise.
-       (aarch64_emit_approx_rsqrt): Replace with new function
-       "aarch64_emit_approx_sqrt".
-       (aarch64_override_options_after_change_1): Handle new option.
-       * config/aarch64/aarch64-simd.md
-       (rsqrt<mode>2): Use new function instead.
-       (sqrt<mode>2): New expansion and insn definitions.
-       * config/aarch64/aarch64.md: Likewise.
-       * config/aarch64/aarch64.opt
-       (mlow-precision-sqrt): Add new option description.
-       * doc/invoke.texi (mlow-precision-sqrt): Likewise.
- 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
-       [AArch64] Add more choices for the reciprocal square root approximation
-       Allow a target to prefer such operation depending on the operation mode.
-       * config/aarch64/aarch64-protos.h
-       (AARCH64_APPROX_MODE): New macro.
-       (AARCH64_APPROX_{NONE,ALL}): Likewise.
-       (cpu_approx_modes): New structure.
-       (tune_params): New member "approx_modes".
-       * config/aarch64/aarch64-tuning-flags.def
-       (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
-       * config/aarch64/aarch64.c
-       (generic_approx_modes): New core "cpu_approx_modes" structure.
-       (exynosm1_approx_modes): Likewise.
-       (xgene1_approx_modes): Likewise.
-       (generic_tunings): New member "approx_modes".
-       (cortexa35_tunings): Likewise.
-       (cortexa53_tunings): Likewise.
-       (cortexa57_tunings): Likewise.
-       (cortexa72_tunings): Likewise.
-       (exynosm1_tunings): Likewise.
-       (thunderx_tunings): Likewise.
-       (xgene1_tunings): Likewise.
-       (use_rsqrt_p): New argument for the mode and use new member from
-       "tune_params".
-       (aarch64_builtin_reciprocal): Devise mode from builtin.
-       (aarch64_optab_supported_p): New argument for the mode.
-       * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
- 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
-       RS6000_BTM_MODULO flag into the set of flags that are considered
-       to be part of the common configuration.
- 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
-       difference unsigned.
-       (vec_absdb): New macro for vector absolute difference unsigned
-       byte.
-       (vec_absdh): New macro for vector absolute difference unsigned
-       half-word.
-       (vec_absdw): New macro for vector absolute difference unsigned word.
-       * config/rs6000/altivec.md (UNSPEC_VADU): New value.
-       (vadu<mode>3): New insn.
-       (*p9_vadu<mode>3): New insn.
-       * config/rs6000/rs6000-builtin.def (vadub): New built-in
-       definition.
-       (vaduh): New built-in definition.
-       (vaduw): New built-in definition.
-       (vadu): New overloaded built-in definition.
-       (vadub): New overloaded built-in definition.
-       (vaduh): New overloaded built-in definition.
-       (vaduw): New overloaded built-in definition.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
-       overloaded vector absolute difference unsigned functions.
-       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
-       the ISA 3.0 vector absolute difference unsigned built-in functions.
- 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
-       update shared_lookup_references only once after changing operands.
- 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
-       PR middle-end/71373
-       * tree-nested.c (convert_nonlocal_omp_clauses)
-       (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
-       * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
-       * tree.def (CASE_LABEL_EXPR): Likewise.
- 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR bootstrap/71481
-       * input.c (test_builtins): Fix an assertion.
- 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
-       (paritysi2): Ditto.
-       (isinfxf2): Ditto.
-       (isinf<mode>2): Ditto.
- 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
-       * ggc-tests.c (test_finalization): Only test need_finalization_p
-       for GCC_VERSION >= 4003.
- 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/vecintrin.h: Fix file description in comment.
- 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390-builtin-types.def: Change builtin type naming
-       scheme to match builtin-types.def.
- 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
-       * fold-const.c (optimize_minmax_comparison): Remove.
-       (fold_comparison): Remove call to the above.
-       * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
-       New transformations.
- 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71416
-       * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
-       multiple entries
- 2016-06-13  Martin Liska  <mliska@suse.cz>
-       * predict.c (enum predictor_reason): Prefix enum with REASON_.
-       (combine_predictions_for_insn): Likewise.
-       (prune_predictions_for_bb): Likewise.
-       (combine_predictions_for_bb): Likewise.
- 2016-06-13  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71505
-       * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
-       assert match comment.
- 2016-06-13  Marek Polacek  <polacek@redhat.com>
-       PR middle-end/71476
-       * gimplify.c (maybe_warn_switch_unreachable): Factored out of
-       gimplify_switch_expr.
-       (warn_switch_unreachable_r): New function.
- 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       PR target/71379
-       * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
-       one.
- 2016-06-13  Richard Biener  <rguenther@suse.de>
-       PR middle-end/64516
-       * fold-const.c (fold_unary_loc): Preserve alignment when
-       folding a VIEW_CONVERT_EXPR into a MEM_REF.
- 2016-06-13  Martin Liska  <mliska@suse.cz>
-       PR sanitizer/71458
-       * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
-       w/ -fsanitize=bounds.
- 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (ix86_init_builtins): Calculate
-       FLOAT128_FTYPE_CONST_STRING function type only once.
-       * doc/extend.texi (x86 Built-in Functions): Update text, __float128
-       built-in functions are available for x86-32 and x86-64 targets.
- 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/71241
-       * config/i386/i386.i386-builtin-types.def (CONST_STRING):
-       New primitive type.
-       (FLOAT128_FTYPE_CONST_STRING): New function type.
-       * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
-       [IX86_BUILTIN_NANSQ]: Ditto.
-       (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
-       (ix86_init_builtin_types): Declare const_string_type_node.
-       (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
-       builtin functions.
-       (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
-       * doc/extend.texi (x86 Built-in Functions): Document
-       __builtin_nanq and __builtin_nansq.
- 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
-       PR target/71061
-       * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
-       * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
-       length for pop patterns.
-       (arm_attr_length_push_multi): Update comments.
-       * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
-       attribute.
-       (*pop_multiple_with_writeback_and_return): Likewise.
-       (*pop_multiple_with_return): Likewise.
- 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR middle-end/71310
-       * fold-const.c (optimize_bit_field_compare): Don't try to use
-       word_mode unconditionally for reading the bit field, look at
-       DECL_BIT_FIELD_REPRESENTATIVE instead.
- 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71478
-       * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
-       vector integer type.
- 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71494
-       * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
-       without LABEL_DECL, set *handled_ops_p to false instead of true.
- 2016-06-10  Martin Sebor  <msebor@redhat.com>
-       PR c/71392
-       * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
-       (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
-       * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
-       them.
-       (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
-       (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
-       (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
-       (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
-       (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
-       (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
-       (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
-       (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
- 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * config/arm/arm.h (pool_vector_label,
-       return_used_this_function): Remove.
- 2016-06-10  Jeff Law  <law@redhat.com>
-       PR tree-optimization/71335
-       * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
-       zero length paths here.
-       (convert_and_register_jump_thread_path): Remove hacks related to
-       duplicated blocks in the jump thread path.
-       (fsm_find_control_statement_thread_paths): Avoid putting the same
-       block on the thread path twice, but ensure the thread path is
-       unchanged from the caller's point of view.
- 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
-       * predict.def (PRED_LOOP_BRANCH): Remove.
- 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
-       * Makefile.in (OBJS): Add ggc-tests.o.
-       (GTFILES): Add ggc-tests.c.
-       * ggc-tests.c: New file.
-       * selftest-run-tests.c (selftest::run_tests): Call
-       selftest::ggc_tests_c_tests.
-       * selftest.h (selftest::ggc_tests_c_tests): New prototype.
- 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
-       * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
- 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
-       PR sanitizer/71480
-       * varasm.c (place_block_symbol): Adjust alignment for asan protected
-       STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
- 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
-       * profile.c: Include cfgloop.h.
-       (branch_prob): Compute estimated number of iterations.
-       * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
-       recompute estimate number of iterations from profile.
- 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR inline-asm/68843
-       * reg-stack.c (check_asm_stack_operands): Explicit input arguments
-       must be grouped on top of stack.  Don't force early clobber
-       on ordinary reg outputs.
- 2016-06-10  Richard Biener  <rguenther@suse.de>
-       * targhooks.c (default_builtin_vectorization_cost): Adjust
-       vec_construct cost.
- 2016-06-10  Richard Biener  <rguenther@suse.de>
-       * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
-       to fold the RHS to a constant if possible.
- 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
-       PR middle-end/71373
-       * tree-nested.c (convert_nonlocal_omp_clauses)
-       (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
-       OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
-       OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
-       * gimplify.c (gimplify_adjust_omp_clauses): Discard
-       OMP_CLAUSE_TILE.
-       * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
-       * omp-low.c (scan_sharing_clauses): Don't expect
-       OMP_CLAUSE__CACHE_.
- 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
-       PR tree-optimization/71407
-       PR tree-optimization/71416
-       * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
-       BIT_FIELD_REF type.
- 2016-06-10  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71477
-       * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
- 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
-       * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
- 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
-           Jiong Wang  <jiong.wang@arm.com>
-       PR rtl-optimization/70751
-       * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
-       spilled into memory.
- 2016-06-09  Jonathan Yong  <10walls@gmail.com>
-       Revert:
-       2015-09-21  Jonathan Yong  <10walls@gmail.com>
-       * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
-       sysroot/usr/lib/32api for additional win32 libraries,
-       fixes failing Cygwin bootstrapping.
- 2016-06-09  Marcin BaczyÅ„ski  <marbacz@gmail.com>
-       * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
-       Delete.
- 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
-       PR bootstrap/71471
-       * pretty-print.c (pp_indent): Specify that %p is printed in a
-       host-dependent manner.
-       (test_pp_format): Remove the test for %p.
- 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
-       * config/mips/mips.c (mips_output_jump): Fix formatting.
- 2016-06-09  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71462
-       * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
-       removed blocks.
- 2016-06-09  Martin Liska  <mliska@suse.cz>
-       * predict.c (dump_prediction): Add new argument.
-       (enum predictor_reason): New enum.
-       (struct predictor_hash): New struct.
-       (predictor_hash::hash): New function.
-       (predictor_hash::equal): Likewise.
-       (not_removed_prediction_p): New function.
-       (prune_predictions_for_bb): Likewise.
-       (combine_predictions_for_bb): Prune predictions.
- 2016-06-09  Martin Liska  <mliska@suse.cz>
-       * predict.c (filter_predictions): New function.
-       (remove_predictions_associated_with_edge): Use the filter
-       function.
-       (equal_edge_p): New function.
- 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
-       * doc/invoke.texi (ARM Options): Use lexicographical ordering.
-       Correct usage of @samp vs @option, add @samp where appropriate.
-       Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
-       Add armv6s-m and document it, as it is no official ARM name.
- 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * ifcvt.c (struct noce_if_info): Add transform_name field.
-       (noce_try_move): Set if_info->transform_name to the function name.
-       (noce_try_ifelse_collapse): Likewise.
-       (noce_try_store_flag): Likewise.
-       (noce_try_inverse_constants): Likewise.
-       (noce_try_store_flag_constants): Likewise.
-       (noce_try_addcc): Likewise.
-       (noce_try_store_flag_mask): Likewise.
-       (noce_try_cmove): Likewise.
-       (noce_try_cmove_arith): Likewise.
-       (noce_try_minmax): Likewise.
-       (noce_try_abs): Likewise.
-       (noce_try_sign_mask): Likewise.
-       (noce_try_bitop): Likewise.
-       (noce_convert_multiple_sets): Likewise.
-       (noce_process_if_block): Print if_info->transform_name to
-       dump_file if transformation succeeded.
- 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/cortex-a57.md (cortex_a57_alu):
-       Handle csel type.
- 2016-06-08  Martin Sebor  <msebor@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-       PR c++/70507
-       PR c/68120
-       * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
-       BUILT_IN_MUL_OVERFLOW_P): New builtins.
-       * builtins.c: Include gimple-fold.h.
-       (fold_builtin_arith_overflow): Handle
-       BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
-       (fold_builtin_3): Likewise.
-       * doc/extend.texi (Integer Overflow Builtins): Document
-       __builtin_{add,sub,mul}_overflow_p.
- 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
-       * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
-       SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
- 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
-       * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
-       Rewrite, looking one level down for records and arrays.
- 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
-       * pretty-print.c: Include "selftest.h".
-       (pp_format): Fix comment.
-       (identifier_to_locale): Likewise.
-       (selftest::test_basic_printing): New function.
-       (selftest::assert_pp_format): New function.
-       (selftest::test_pp_format): New function.
-       (selftest::pretty_print_c_tests): New function.
-       * selftest-run-tests.c (selftest::run_tests): Call
-       selftest::pretty_print_c_tests.
-       * selftest.h (pretty_print_c_tests): New declaration.
- 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
-       * invoke.texi (max-loop-headers-insns): Document.
-       * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
-       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
-       (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
- 2016-06-08  Richard Biener  <rguenther@suse.de>
-       * tree-vect-stmts.c (vectorizable_load): Remove restrictions
-       on strided SLP loads and fall back to scalar loads in case
-       we can't chunk them.
- 2016-06-08  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71452
-       * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
-       type used for the SSA rewrite has enough precision to cover
-       the dynamic type of the location.
- 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
-           Richard Biener  <rguenther@suse.de>
-       PR c++/71448
-       * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
-       the same as DECL_P (base0) for indirect_base0.  Use equality_code
-       in one further place.
- 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
-       * expmed.c (store_bit_field_1): Do not restrict a multiword op0
-       to one word if the field is known to overlap other words.
-       (extract_bit_field_1): Likewise.
-       (store_split_bit_field): Remove compensating code.
-       (extract_split_bit_field): Likewise.
- 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
-       PR debug/71432
-       PR ada/71413
-       * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
- 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
-       VDQF.
-       * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
-       (arch64_addpv4sf): Delete.
-       (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
-       "gen_aarch64_addpv4sf".
-       * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
-       builtin.
-       (vpadds_f32): Likewise.
-       (vpaddq_f32): Likewise.
-       (vpaddq_f64): Likewise.
- 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
-       VALLF.
-       * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
-       to VALLF.  Rename to "fabd<mode>3".
-       "*fabd_scalar<mode>3): Delete.
-       * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
-       Use builtin.
-       (vabdd_f64): Likewise.
-       (vabd_f32): Likewise.
-       (vabd_f64): Likewise.
-       (vabdq_f32): Likewise.
-       (vabdq_f64): Likewise.
- 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
-       VALLF.
-       * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
-       "aarch64_rsqrts<mode>".
-       * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
-       * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
-       builtin.
-       (vrsqrtsd_f64): Likewise.
-       (vrsqrts_f32): Likewise.
-       (vrsqrts_f64): Likewise.
-       (vrsqrtsq_f32): Likewise.
-       (vrsqrtsq_f64): Likewise.
- 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
-       VALLF.
-       * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
-       "aarch64_rsqrte<mode>".
-       * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
-       * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
-       builtin.
-       (vrsqrted_f64): Likewise.
-       (vrsqrte_f32): Likewise.
-       (vrsqrte_f64): Likewise.
-       (vrsqrteq_f32): Likewise.
-       (vrsqrteq_f64): Likewise.
- 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
-       (ucvtf): Likewise.
-       (fcvtzs): Likewise.
-       (fcvtzu): Likewise.
-       * config/aarch64/aarch64-simd.md
-       (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
-       (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
-       * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
-       Use builtin.
-       (vcvt_n_f32_u32): Likewise.
-       (vcvt_n_s32_f32): Likewise.
-       (vcvt_n_u32_f32): Likewise.
-       (vcvtq_n_f32_s32): Likewise.
-       (vcvtq_n_f32_u32): Likewise.
-       (vcvtq_n_f64_s64): Likewise.
-       (vcvtq_n_f64_u64): Likewise.
-       (vcvtq_n_s32_f32): Likewise.
-       (vcvtq_n_s64_f64): Likewise.
-       (vcvtq_n_u32_f32): Likewise.
-       (vcvtq_n_u64_f64): Likewise.
-       * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
-       (VSDQ_SDI): Likewise.
-       (fcvt_target): Support V4DI, V4SI and V2SI.
-       (FCVT_TARGET): Likewise.
- 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
-       (TYPES_BINOP_SUS): Likewise.
-       (aarch64_simd_builtin_data): Update include file name.
-       (aarch64_builtins): Likewise.
-       * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
-       for conversion between scalar float-point and fixed-point.
-       (ucvtf): Likewise.
-       (fcvtzs): Likewise.
-       (fcvtzu): Likewise.
-       * config/aarch64/aarch64.md
-       (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
-       pattern for conversion between scalar float to fixed-pointer.
-       (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
-       (UNSPEC_FCVTZS): New UNSPEC enumeration.
-       (UNSPEC_FCVTZU): Likewise.
-       (UNSPEC_SCVTF): Likewise.
-       (UNSPEC_UCVTF): Likewise.
-       * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
-       Use builtin.
-       (vcvtd_n_f64_u64): Likewise.
-       (vcvtd_n_s64_f64): Likewise.
-       (vcvtd_n_u64_f64): Likewise.
-       (vcvtd_n_f32_s32): Likewise.
-       (vcvts_n_f32_u32): Likewise.
-       (vcvtd_n_s32_f32): Likewise.
-       (vcvts_n_u32_f32): Likewise.
-       * config/aarch64/iterators.md (fcvt_target): Support integer to float
-       mapping.
-       (FCVT_TARGET): Likewise.
-       (FCVT_FIXED2F): New iterator.
-       (FCVT_F2FIXED): Likewise.
-       (fcvt_fixed_insn): New define_int_attr.
- 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
-       some statements was removed.
- 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
-       * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
-       * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
-       (vect_can_advance_ivs_p): likewise.
-       (vect_update_ivs_after_vectorizer): likewise.
-       * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
-       (vect_analyze_scalar_cycles_1): likewise.
-       (vect_analyze_loop_operations): likewise.
-       (report_vect_op): likewise.
-       (vect_is_slp_reduction): likewise.
-       (vect_is_simple_reduction): likewise.
-       (get_initial_def_for_induction): likewise.
-       (vect_transform_loop): likewise.
-       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
-       (vect_recog_sad_pattern): likewise.
-       (vect_recog_widen_sum_pattern): likewise.
-       (vect_recog_widening_pattern): likewise.
-       (vect_recog_divmod_pattern): likewise.
-       * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
-       (vect_analyze_slp_instance): likewise.
-       (vect_transform_slp_perm_load): likewise.
-       (vect_schedule_slp_instance): likewise.
- 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (predict_iv_comparison): Mention that heuristics is broken.
-       (return_prediction): PRED_CONST_RETURN predict return as not taken.
-       * predict.def (PRED_CONTINUE): Change hitrate 50->67
-       (PRED_LOOP_BRANCH): Document predictor as broken.
-       (PRED_LOOP_EXIT): Change hitrate 91->92.
-       (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
-       (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
-       (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
-       (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
-       (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
-       (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
-       (PRED_CALL): Chane hitrate 71->67.
-       (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
-       (PRED_GOTO): Document as unused right now.
-       (PRED_CONST_RETURN): Change hitrate 67->69
-       (PRED_NEGATIVE_RETURN): Change hitrate 96->98
-       (PRED_NULL_RETURN): Change hitrate 91->90.
-       (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
-       (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
-       (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
- 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
-       * config/rs6000/altivec.h: Add __builtin_vec_mul.
-       * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
-       special case Altivec builtin.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
-       VSX_BUILTIN_VEC_MUL (replaced with special case code).
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
-       code for ALTIVEC_BUILTIN_VEC_MUL.
-       * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
-       for __builtin_vec_mul.
- 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
-       * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
-       -mno-htm.
- 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
-       * spellcheck.c (selftest::test_find_closest_string): New function.
-       (spellcheck_c_tests): Call the above.
- 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
- 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
-       Yv=Yv,C alternatives.
- 2016-06-07  Richard Biener  <rguenther@suse.de>
-       PR c/61564
-       * common.opt (ffast-math): Make Optimization.
- 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
-           Prachi Godbole  <prachi.godbole@imgtec.com>
-       * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
-       `fabs' and `fneg' type attributes.
-       (p5600_fpu_fabs): Add `fmove' to the comment.
- 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
-       * gimple.c: Include builtins.h
-       (gimple_inexpensive_call_p): New function.
-       * gimple.h (gimple_inexpensive_call_p): Declare.
-       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
-       * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
-       fix formatting.
- 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
-       * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
-       (inform, inform_at_rich_loc, inform_n, warning, warning_at,
-       warning_at_rich_loc, warning_n, pedwarn, permerror,
-       permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
-       sorry, fatal_error, internal_error, internal_error_no_backtrace):
-       Use the above.
- 2016-06-07  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71428
-       * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
-       BIT_FIELD_REF op vs. load.
- 2016-06-07  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71423
-       * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
-       for signed ops.
- 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.md (call): Generate indirect long calls to non-local
-       functions on TARGET_64BIT.
-       (call_value): Likewise.
- 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
-       pattern and subsequent splitters.
-       (call_val_reg_64bit_post_reload): Likewise.
- 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71408
-       * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
-       propagate_op_to_single_use.
- 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71281
-       * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
- 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
-       (enum x86_dirflag_state): New enum.
-       (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
-       (machine_function): Remove needs_cld.
-       (ix86_current_function_needs_cld): Remove.
-       * config/i386/i386.c (ix86_set_func_type): Set
-       ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
-       (ix86_expand_prologue): Do not emit CLD here.
-       (ix86_dirflag_mode_needed): New function.
-       (ix86_dirflag_mode_entry): Ditto.
-       (ix86_mode_needed): Handle X86_DIRFLAG entity.
-       (ix86_mode_after): Ditto.
-       (ix86_mode_entry): Ditto.
-       (ix86_mode_exit): Ditto.
-       (ix86_emit_mode_set): Ditto.
-       * config/i386/i386.md (strmov_singleop): Set
-       ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
-       Do not set ix86_current_function_needs_cld.
-       (rep_mov): Ditto.
-       (strset_singleop): Ditto.
-       (rep_stos): Ditto.
-       (cmpstrnqi_nz_1): Ditto.
-       (cmpstrnqi_1): Ditto.
-       (strlenqi_1): Ditto.
- 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71259
-       * tree-vect-slp.c (vect_get_constant_vectors): For
-       VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
-       one for constant op, and use COND_EXPR for non-constant.
- 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
-       * Makefile.in (OBJS): Add function-tests.o,
-       hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
-       selftest-run-tests.o.
-       (OBJS-libcommon): Add selftest.o.
-       (OBJS-libcommon-target): Add selftest.o.
-       (all.internal): Add "selftest".
-       (all.cross): Likewise.
-       (selftest): New phony target.
-       (s-selftest): New target.
-       (selftest-gdb): New phony target.
-       (COLLECT2_OBJS): Add selftest.o.
-       * bitmap.c: Include "selftest.h".
-       (selftest::test_gc_alloc): New function.
-       (selftest::test_set_range): New function.
-       (selftest::test_clear_bit_in_middle): New function.
-       (selftest::test_copying): New function.
-       (selftest::test_bitmap_single_bit_set_p): New function.
-       (selftest::bitmap_c_tests): New function.
-       * common.opt (fself-test): New.
-       * diagnostic-show-locus.c: Include "selftest.h".
-       (make_range): New function.
-       (test_range_contains_point_for_single_point): New function.
-       (test_range_contains_point_for_single_line): New function.
-       (test_range_contains_point_for_multiple_lines): New function.
-       (assert_eq): New function.
-       (test_get_line_width_without_trailing_whitespace): New function.
-       (selftest::diagnostic_show_locus_c_tests): New function.
-       * et-forest.c: Include "selftest.h".
-       (selftest::test_single_node): New function.
-       (selftest::test_simple_tree): New function.
-       (selftest::test_disconnected_nodes): New function.
-       (selftest::et_forest_c_tests): New function.
-       * fold-const.c: Include "selftest.h".
-       (selftest::assert_binop_folds_to_const): New function.
-       (selftest::assert_binop_folds_to_nonlvalue): New function.
-       (selftest::test_arithmetic_folding): New function.
-       (selftest::fold_const_c_tests): New function.
-       * function-tests.c: New file.
-       * gimple.c: Include "selftest.h".
-       Include "gimple-pretty-print.h".
-       (selftest::verify_gimple_pp): New function.
-       (selftest::test_assign_single): New function.
-       (selftest::test_assign_binop): New function.
-       (selftest::test_nop_stmt): New function.
-       (selftest::test_return_stmt): New function.
-       (selftest::test_return_without_value): New function.
-       (selftest::gimple_c_tests): New function.
-       * hash-map-tests.c: New file.
-       * hash-set-tests.c: New file.
-       * input.c: Include "selftest.h".
-       (selftest::assert_loceq): New function.
-       (selftest::test_accessing_ordinary_linemaps): New function.
-       (selftest::test_unknown_location): New function.
-       (selftest::test_builtins): New function.
-       (selftest::test_reading_source_line): New function.
-       (selftest::input_c_tests): New function.
-       * rtl-tests.c: New file.
-       * selftest-run-tests.c: New file.
-       * selftest.c: New file.
-       * selftest.h: New file.
-       * spellcheck.c: Include "selftest.h".
-       (selftest::levenshtein_distance_unit_test_oneway): New function,
-       adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
-       (selftest::levenshtein_distance_unit_test): Likewise.
-       (selftest::spellcheck_c_tests): Likewise.
-       * toplev.c: Include selftest.h.
-       (toplev::run_self_tests): New.
-       (toplev::main): Handle -fself-test.
-       * toplev.h (toplev::run_self_tests): New.
-       * tree.c: Include "selftest.h".
-       (selftest::test_integer_constants): New function.
-       (selftest::test_identifiers): New function.
-       (selftest::test_labels): New function.
-       (selftest::tree_c_tests): New function.
-       * tree-cfg.c: Include "selftest.h".
-       (selftest::push_fndecl): New function.
-       (selftest::test_linear_chain): New function.
-       (selftest::test_diamond): New function.
-       (selftest::test_fully_connected): New function.
-       (selftest::tree_cfg_c_tests): New function.
-       * vec.c: Include "selftest.h".
-       (selftest::safe_push_range): New function.
-       (selftest::test_quick_push): New function.
-       (selftest::test_safe_push): New function.
-       (selftest::test_truncate): New function.
-       (selftest::test_safe_grow_cleared): New function.
-       (selftest::test_pop): New function.
-       (selftest::test_safe_insert): New function.
-       (selftest::test_ordered_remove): New function.
-       (selftest::test_unordered_remove): New function.
-       (selftest::test_block_remove): New function.
-       (selftest::reverse_cmp): New function.
-       (selftest::test_qsort): New function.
-       (selftest::vec_c_tests): New function.c.
-       * wide-int.cc: Include selftest.h and wide-int-print.h.
-       (selftest::from_int <wide_int>): New function.
-       (selftest::from_int <offset_int>): New function.
-       (selftest::from_int <widest_int>): New function.
-       (selftest::assert_deceq): New function.
-       (selftest::assert_hexeq): New function.
-       (selftest::test_printing <VALUE_TYPE>): New function template.
-       (selftest::test_ops <VALUE_TYPE>): New function template.
-       (selftest::test_comparisons <VALUE_TYPE>): New function template.
-       (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
-       template.
-       (selftest::wide_int_cc_tests): New function.
- 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR middle-end/37780
-       * ifcvt.c (noce_try_ifelse_collapse): New function.
-       Declare prototype.
-       (noce_process_if_block): Call noce_try_ifelse_collapse.
-       * simplify-rtx.c (simplify_cond_clz_ctz): New function.
-       (simplify_ternary_operation): Use the above to simplify
-       conditional CLZ/CTZ expressions.
- 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR middle-end/37780
-       * config/aarch64/aarch64.md (ctz<mode>2): Convert to
-       define_insn_and_split.
- 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR middle-end/37780
-       * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
- 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       PR c/24414
-       * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
-       Implicitly clobber memory for basic asm with non-empty assembler
-       string.  Use targetm.md_asm_adjust also here.
-       * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
-       * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
-       * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
-       non-empty assembler string.
-       * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
-       * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
-       (decode_asm_operands): Handle basic asm in PARALLEL block.
-       (extract_insn): Handle basic asm in PARALLEL block.
-       * doc/extend.texi: Mention new behavior of basic asm.
-       * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
-       * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
-       branch_needs_nop_p): Use asm_noperands.
- 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
-       * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
-       Include the M7 SPARC DFA scheduler.
-       New attribute v3pipe.
-       Annotate insns with v3pipe where appropriate.
-       Define cpu_feature vis4.
-       Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
-       Add (V8QI "8") to vbits.
-       Add insns {add,sub}v8qi3
-       Add insns ss{add,sub}v8qi3
-       Add insns us{add,sub}{v8qi,v4hi}3
-       Add insns {min,max}{v8qi,v4hi,v2si}3
-       Add insns {minu,maxu}{v8qi,v4hi,v2si}3
-       Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
-       * config/sparc/niagara4.md: Add a comment explaining the
-       discrepancy between the documented latenty numbers and the
-       implemented ones.
-       * config/sparc/niagara7.md: New file.
-       * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
-       supports SPARC5 and VIS 4.0 instructions.
-       * configure: Regenerate.
-       * config.in: Likewise.
-       * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
-       * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
-       TARGET_CPU_niagara7.
-       (ASM_CPU64_DEFAULT_SPEC): Likewise.
-       (CPP_CPU_SPEC): Handle niagara7.
-       (ASM_CPU_SPEC): Likewise.
-       * config/sparc/sparc-opts.h (processor_type): Add
-       PROCESSOR_NIAGARA7.
-       (mvis4): New option.
-       * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
-       (AS_NIAGARA7_FLAG): Define.
-       (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
-       (CPP_CPU64_DEFAULT_SPEC): Likewise.
-       (CPP_CPU_SPEC): Handle niagara7.
-       (ASM_CPU_SPEC): Likewise.
-       * config/sparc/sparc.c (niagara7_costs): Define.
-       (sparc_option_override): Handle niagara7 and adjust cache-related
-       parameters with better values for niagara cpus.  Also support VIS4.
-       (sparc32_initialize_trampoline): Likewise.
-       (sparc_use_sched_lookahead): Likewise.
-       (sparc_issue_rate): Likewise.
-       (sparc_register_move_cost): Likewise.
-       (dump_target_flag_bits): Support VIS4.
-       (sparc_vis_init_builtins): Likewise.
-       (sparc_builtins): Likewise.
-       * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
-       VIS4 4.0.
-       * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
-       UltraSparc M7.
-       * config/sparc/sparc.opt (sparc_processor_type): New value
-       niagara7.
-       * config/sparc/visintrin.h (__attribute__): Prototypes for the
-       VIS4 builtins.
-       * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
-       -mvis4.
-       * doc/extend.texi (SPARC VIS Built-in Functions): Document the
-       VIS4 builtins.
- 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
-       * doc/sourcebuild.texi (Directives): Remove extra closing braces.
- 2016-06-06  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71398
-       * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
-       remove edges.
- 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
-       * config/ft32/ft32.c (ft32_setup_incoming_varargs,
-       ft32_expand_prolog, ft32_expand_epilogue):
-       Handle pretend_args.
-       * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
-       * config/ft32/ft32.md: Add pretend_returner.
- 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/71389
-       * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
-       Copy op1 RTX to avoid invalid sharing.
-       (ix86_expand_vector_move_misalign): Ditto.
- 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
-       * expr.c (move_by_pieces_d::generate): Mark mode parameter with
-       ATTRIBUTE_UNUSED.
- 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (predicted_by_loop_heuristics_p): New function.
-       (predict_iv_comparison): Use it.
-       (predict_loops): Walk from innermost loops; do not predict edges
-       leaving multiple loops multiple times; implement
-       PRED_LOOP_ITERATIONS_MAX heuristics.
-       * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
- 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
-       * cfg.c (check_bb_profile): Do not report mismatched profiles when
-       only edges out of BB are EH edges.
- 2016-06-04  Martin Sebor  <msebor@redhat.com>
-           Marcin BaczyÅ„ski  <marbacz@gmail.com>
-       PR c/48116
-       * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
-       a void expression in a void function.
- 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
-       aux; dump reasons of decisions.
-       (should_duplicate_loop_header_p): Likewise.
-       (do_while_loop_p): Likewise.
-       (ch_base::copy_headers): Dump asi num insns duplicated.
- 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/71405
-       * tree-ssa.c (execute_update_addresses_taken): For clobber with
-       incompatible type, build a new clobber with the right type instead
-       of building a VIEW_CONVERT_EXPR around it.
- 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR tree-optimization/52171
-       * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
-       by_pieces_ninsns instead of move_by_pieces_ninsns.
- 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
-       for reg+reg addressing mode.
- 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * rs6000-c.c (c/c-tree.h): Add #include.
-       (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
-       in C++ when found in the base position of vec_ld or vec_st.
- 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
-       use of profile unless profile status is PROFILE_READ.
-       * profile.c (compute_branch_probabilities): Set profile status
-       only after reporting predictor hitrates.
- 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
-       PR target/71276
-       PR target/71277
-       * common.opt (ffp-int-builtin-inexact): New option.
-       * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
-       * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
-       (ceil@var{m}2): Document dependence on this option.
-       * ipa-inline-transform.c (inline_call): Handle
-       flag_fp_int_builtin_inexact.
-       * ipa-inline.c (can_inline_edge_p): Likewise.
-       * config/i386/i386.md (rintxf2): Do not test
-       flag_unsafe_math_optimizations.
-       (rint<mode>2_frndint): New define_insn.
-       (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
-       or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
-       for 387 instead of extending and truncating.
-       (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
-       !flag_trapping_math instead of flag_unsafe_math_optimizations.
-       Change to frndint<mode>2_<rounding>.
-       (frndintxf2_<rounding>_i387): Likewise.  Change to
-       frndint<mode>2_<rounding>_i387.
-       (<rounding_insn>xf2): Likewise.
-       (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
-       !flag_trapping_math instead of flag_unsafe_math_optimizations for
-       x87.  Test TARGET_ROUND || !flag_trapping_math ||
-       flag_fp_int_builtin_inexact instead of !flag_trapping_math for
-       SSE.  Use ROUND_NO_EXC in constant operand of
-       gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
-       for 387 instead of extending and truncating.
- 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
-           Julia Koval  <julia.koval@intel.com>
-       PR target/66960
-       PR target/67630
-       PR target/67634
-       PR target/67841
-       PR target/68037
-       PR target/68618
-       PR target/68661
-       PR target/69575
-       PR target/69596
-       PR target/69734
-       * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
-       * config/i386/i386.c (ix86_conditional_register_usage): Preserve
-       all registers, except for function return registers if there are
-       no caller-saved registers.
-       (ix86_set_func_type): New function.
-       (ix86_set_current_function): Call ix86_set_func_type to set
-       no_caller_saved_registers and func_type.  Call reinit_regs if
-       caller-saved registers are changed.  Don't allow MPX, SSE, MMX
-       nor x87 instructions in interrupt handler nor function with
-       no_caller_saved_registers attribute.
-       (ix86_function_ok_for_sibcall): Return false if there are no
-       caller-saved registers.
-       (type_natural_mode): Don't warn ABI change for MMX in interrupt
-       handler.
-       (ix86_function_arg_advance): Skip for callee in interrupt handler.
-       (ix86_function_arg): Return special arguments in interrupt handler.
-       (ix86_promote_function_mode): Promote pointer to word_mode only
-       for normal functions.
-       (ix86_can_use_return_insn_p): Don't use `ret' instruction in
-       interrupt handler.
-       (ix86_epilogue_uses): New function.
-       (ix86_hard_regno_scratch_ok): Likewise.
-       (ix86_save_reg): Preserve all registers in interrupt handler
-       after reload.  Preserve all registers, except for function return
-       registers, if there are no caller-saved registers after reload.
-       (find_drap_reg): Always use callee-saved register if there are
-       no caller-saved registers.
-       (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
-       for interrupt handler.
-       (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
-       Emit cld instruction if stringops are used in interrupt handler
-       or interrupt handler isn't a leaf function.
-       (ix86_expand_epilogue): Generate interrupt return for interrupt
-       handler and pop the 'ERROR_CODE' off the stack before interrupt
-       return in exception handler.
-       (ix86_expand_call): Disallow calling interrupt handler directly.
-       If there are no caller-saved registers, mark all registers that
-       are clobbered by the call which returns as clobbered.
-       (ix86_handle_no_caller_saved_registers_attribute): New function.
-       (ix86_handle_interrupt_attribute): Likewise.
-       (ix86_attribute_table): Add interrupt and no_caller_saved_registers
-       attributes.
-       (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
-       * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
-       accumulation in interrupt function if stack may be realigned to
-       avoid DRAP.
-       (EPILOGUE_USES): New.
-       (function_type): New enum.
-       (machine_function): Add func_type and no_caller_saved_registers.
-       * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
-       (interrupt_return): New pattern.
-       * doc/extend.texi: Document x86 interrupt and
-       no_caller_saved_registers attributes.
- 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
-       PR tree-optimization/52171
-       * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
-       (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
-       Look for constant strings.  Move some code to emit_block_cmp_hints
-       and use it.
-       * builtins.def (BUILT_IN_MEMCMP_EQ): New.
-       * defaults.h (COMPARE_MAX_PIECES): New macro.
-       * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
-       (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
-       (clear_by_pieces_1): Don't declare.  Move definition before use.
-       (can_do_by_pieces): New static function.
-       (can_move_by_pieces): Use it.  Return bool.
-       (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
-       OP.  All callers changed.  Handle COMPARE_BY_PIECES.
-       (class pieces_addr); New.
-       (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
-       pieces_addr::adjust, pieces_addr::increment_address,
-       pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
-       functions for it.
-       (class op_by_pieces_d): New.
-       (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
-       functions for it.
-       (class move_by_pieces_d, class compare_by_pieces_d,
-       class store_by_pieces_d): New subclasses of op_by_pieces_d.
-       (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
-       move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
-       store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
-       compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
-       compare_by_pieces_d::finish_mode): New member functions.
-       (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
-       functions.
-       (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
-       (emit_block_cmp_hints): New function.
-       (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
-       use the newly defined classes.
-       * expr.h (by_pieces_constfn): New typedef.
-       (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
-       (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
-       (move_by_pieces_ninsns): Don't declare.
-       (can_move_by_pieces): Change return value to bool.
-       * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
-       (compare_by_pieces_branch_ratio): New hook.
-       * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
-       (by_pieces_ninsns): Declare.
-       * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
-       COMPARE_BY_PIECES.
-       (default_compare_by_pieces_branch_ratio): New function.
-       * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
-       * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
-       * doc/tm.texi: Regenerate.
-       * tree-ssa-strlen.c: Include "builtins.h".
-       (handle_builtin_memcmp): New static function.
-       (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
-       * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
- 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
-       * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
-       relevant stmts which are simple and invariant.
-       * tree-vect-loop.c (vectorizable_live_operation): Check relevance
-       instead of simple and invariant
- 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
-       * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
-       (vectorizable_reduction): Check for new relevant state.
-       (vectorizable_live_operation): vectorize live stmts using
-       BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
-       * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
-       (vect_stmt_relevant_p): Check for stmts which are only used live.
-       (process_use): Use of a stmt does not inherit it's live value.
-       (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
-       (vect_analyze_stmt): Check for new relevant state.
-       * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
-       outside the loop, but not inside it.
- 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
-       * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
-       * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
-       (vect_get_vec_def_for_operand): Split out code.
- 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
- 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
-       * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
- 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
- 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71387
-       * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
-       to noreturn e->callee->decl that has void return type and void
-       arguments, adjust gimple_call_fntype and remove lhs even if it had
-       previously addressable type.
- 2016-06-02  Jeff Law  <law@redhat.com>
-       PR tree-optimization/71328
-       * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
-       error when checking for a jump back onto the copied path.
- 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
-       * config/microblaze/microblaze.c (get_branch_target): Add return
-       NULL_RTX for the non-CALL_P case.
-       (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
-       (insert_wic): Remove unused local "j".
- 2016-06-02  Martin Liska  <mliska@suse.cz>
-       * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
- 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
-           Julia Koval  <julia.koval@intel.com>
-       * function.c (assign_parm_setup_stack): Force source into a
-       register if needed.
-       * target.def (function_incoming_arg): Update documentation to
-       allow arbitrary address computation based on hard register.
-       * doc/tm.texi: Regenerated.
- 2016-06-02  Martin Liska  <mliska@suse.cz>
-       * predict.c (combine_predictions_for_bb): Fix first match in
-       cases where a first predictor contains more than one occurence
-       in list of predictors.  Take the best value in such case.
- 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR rtl-optimization/71295
-       * rtlanal.c (subreg_get_info): If taking a subreg at the requested
-       offset would go over the size of the inner mode reject it.
- 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
-       x=x,x and v=v,m instead of x=x,m.
-       * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
-       alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
-       alternative to v=rm,C.
-       * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
-       alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
-       to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
-       instead of vex for the last two above mentioned alternatives.
- 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/70830
-       * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
- 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
- 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
-       * config/rl78/rl78.c (rl78_expand_prologue): Convert local
-       from int to unsigned.
- 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
-       alternatives, eliminating preferred register class.  Add support
-       for the MTVSRDD instruction in ISA 3.0.
-       (vsx_splat_v4si_internal): Use splat_input_operand instead of
-       reg_or_indexed_operand.
-       (vsx_splat_v4sf_internal): Likewise.
- 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71186
-       * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
-       for loading up all 0's or all 1's.
- 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
- 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
-       * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
-       extension.
-       * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
-       * gcc.c (set_source_date_epoch_envvar): New function, sets
-       the SOURCE_DATE_EPOCH environment variable to the current time.
- 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
-       the factor for live Phi nodes.
- 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
-       * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
-       * tree-parloops.c (parallelize_loops): likewise.
-       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
-       tree_unswitch_outer_loop): likewise.
- 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/71371
-       * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
-       around creation of the temporary.
- 2016-06-01  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71366
-       * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
-       (unloop_loops): Move removing edges here ...
-       (try_unroll_loop_completely): ... from here.
-       (try_peel_loop): ... and here.
-       (tree_unroll_loops_completely_1): Track parent loops via
-       bitmap of header BBs.
-       (tree_unroll_loops_completely): Adjust for that.
- 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.h (vec_slv): New macro.
-       (vec_srv): New macro.
-       * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
-       (UNSPEC_VSRV): New value.
-       (vslv): New insn.
-       (vsrv): New insn.
-       * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
-       (vsrv): New builtin definition.
-       * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
-       define argument types for new builtin.
-       (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
-       new builtin.
-       * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
-       functions.
- 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
-           Jocelyn Mayer  <l_indien@magic.fr>
-       PR target/67310
-       * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
-       detect processor family for signature_CENTAUR_ebx.
-       <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
-       signature_CENTAUR_ebx.
-       <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
-       <default>: Pass x86-64 for has_longmode.
- 2016-06-01  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
-       undefined weak.
- 2016-06-01  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71261
-       * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
-       of stmts successfully put in the bool pattern.  Remove
-       single-use restriction.
-       (adjust_bool_pattern_cast): Add cast at the use site via the
-       pattern def sequence.
-       (adjust_bool_pattern): Remove recursion, maintain a hash-map
-       of patterned defs.  Use the pattern def seqence instead of
-       multiple independent patterns.
-       (sort_after_uid): New qsort compare function.
-       (adjust_bool_stmts): New function to process stmts in the bool
-       pattern in IL order.
-       (vect_recog_bool_pattern): Adjust.
-       * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
-       (ifcvt_walk_pattern_tree): Likewise.
-       (stmt_is_root_of_bool_pattern): Likewise.
-       (ifcvt_repair_bool_pattern): Likewise.
-       (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
- 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
-       * loop-unroll.c (decide_unroll_constant_iterations,
-       decide_unroll_runtime_iterations, decide_unroll_stupid): Use
-       likely upper bounds.
-       * loop-iv.c (find_simple_exit): Dump likely upper bounds.
- 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
-       * tree-core.h (enum omp_clause_code): Remove
-       OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
- 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/sync.md (arm_store_exclusive<mode>):
-       Use 'H' output modifier on operands[2] rather than creating a new
-       entry in out-of-bounds memory of the operands array.
-       (arm_store_release_exclusivedi): Likewise.
- 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.c (arm_fusion_enabled_p): New function.
-       * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
-       * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
-       Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
- 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
-       into account live statements for mask producers.
- 2016-06-01  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71311
-       * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
-       restrict to non-INTEGER_CST @0.
- 2016-06-01  Richard Biener  <rguenther@suse.de>
-       * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
-       (relational patterns): Use :c to avoid pattern duplications.
- 2016-06-01  Richard Biener  <rguenther@suse.de>
-       * genmatch.c (comparison_code_p): New predicate.
-       (swap_tree_comparison): New function.
-       (commutate): Add for_vec parameter to append new for entries.
-       Support commutating relational operators by swapping it alongside
-       operands.
-       (lower_commutative): Adjust.
-       (dt_simplify::gen): Do not pass artificial operators to gen
-       functions.
-       (decision_tree::gen): Do not add artificial operators as parameters.
-       (parser::parse_expr): Verify operator commutativity when :c is
-       applied.  Allow :C to override this.
-       * match.pd: Adjust patterns to use :C instead of :c where required.
- 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
-       PR tree-optimization/71077
-       * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
-       the combining step, use boolean_false_node and boolean_true_node
-       as the designated false/true return values.
- 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
-       * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
-       (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
-       PRED_LOOP_EXIT.
- 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
-       * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
-       of flags impliying the register renaming.
-       * toplev.c (process_options): Do not imply flag_rename_registers with
-       loop peeling.
- 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
-       default implementation.
- 2016-05-31  Nathan Sidwell  <nathan@acm.org>
-       * dwarf2out.c (cur_line_info_table): Add GTY marker.
- 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/constraints.md (b): Remove constraint.
-       * config/sh/predicates.md (arith_reg_operand): Remove
-       TARGET_REGISTER_P.
-       * config/sh/sh-modes.def (PDI): Remove.
-       * config/sh/sh.c (sh_target_reg_class,
-       sh_optimize_target_register_callee_saved): Remove functions.
-       (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
-       (sh_expand_epilogue): Update comment.
-       (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
-       sh_secondary_reload): Remove TARGET_REGS related code.
-       * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
-       TARGET_REGISTER_P): Remove macros.
-       (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
-       * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
-       TR1_REG, TR2_REG): Remove constants.
-       * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
- 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
-       define_expand patterns.
-       (adddi3_compact): Rename to adddi3.
-       (subdi3_compact): Rename to subdi3.
-       (*negdi2): Rename to negdi2.
-       (*abs<mode>2): Rename to abs<mode>2.
- 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
-       (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
-       (atomic_sub_fetchsi): ... this new pattern.
-       (mvtc): Add CC_REG clobber.
- 2016-05-31  Marek Polacek  <polacek@redhat.com>
-       * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
- 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
-       aarch64_fusion_enabled_p to check for fusion capabilities.
- 2016-05-31  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71352
-       * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
-       minus one and a negate.
- 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
-       * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
-       Delete prototype.
-       * config/aarch64/iterators.md (insn_count): Add descriptive comment.
-       * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
-       Remove use of aarch64_simd_attr_length_move, set length attribute
-       directly.
-       (*aarch64_be_movoi): Likewise.
-       (*aarch64_be_movci): Likewise.
-       (*aarch64_be_movxi): Likewise.
- 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
-       * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
-       It no longer does that.
-       * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
- 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
-       * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
-       attribute __unused__.
- 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
-       * config/arm/arm.c (arm_arch_thumb1): Define.
-       (arm_option_override): Initialize arm_arch_thumb1.
-       * config/arm/arm.h (arm_arch_thumb1): Declare.
-       (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
-       support Thumb-1 ISA.
- 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
-       PR target/71346
-       * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
-       `Yv' for scalar operand.
- 2016-05-31  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/69068
-       * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
-       phis with more than two args.
- 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
-       * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
-       armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
-       target.
- 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
-       * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
-       tune_64.
-       * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
-       support on SPARC.
-       * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
-       cpu_32, cpu_64, tune_32 and tune_64.
-       * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
- 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
- 2016-05-30  Andi Kleen  <ak@linux.intel.com>
-       * auto-profile.c (read_profile): Replace asserts with errors
-       when file does not exist.
-       * gcov-io.c (gcov_read_words): Dito.
- 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-cfg.c (print_loop): Print likely upper bounds.
- 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
-       * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
-       * opts.c (default_options): Enable peel loops at -O3.
-       * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
-       (try_peel_loop): Do not re-peel already peeled loops;
-       use likely upper bounds; fix profile updating.
-       (pass_complete_unroll::execute): Initialize peeled_loops.
- 2016-05-30  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
-       computed costs by frequency of BB they belong to.
-       (get_scaled_computation_cost_at): New function.
- 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
-           Marc Glisse  <marc.glisse@inria.fr>
-       PR tree-optimization/71289
-       * match.pd (-1 / B < A, A > -1 / B): New transformations.
- 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
- 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
-       for peeled copies; avoid underflow when updating estimates; correctly
-       scale loop profile.
- 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
-       r236875. Corrected oe3 to oe2 as obvious.
- 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71269
-       PR middle-end/71252
-       * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
-       that inserted stmt will not dominate stmts that defines its operand.
-       (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
-       (rewrite_expr_tree_parallel): Likewise.
- 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71252
-       * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
-       all fields including stmt_to_insert are swapped.
- 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.h (force_edge_cold): Declare.
-       * predict.c (force_edge_cold): New function.
-       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
-       updating.
-       (canonicalize_loop_induction_variables): Fix formating.
- 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/visium/visium.c (visium_split_double_add): Minor tweaks.
-       (visium_expand_copysign): Use gen_int_mode directly.
-       (visium_compute_frame_size): Minor tweaks.
- 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-vect-loop.c (vect_analyze_loop_2): Use
-       likely_max_stmt_executions_int.
- 2016-05-30  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/69067
-       * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
- 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/71245
-       * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
-       New peepholes to remove unneeded fild/fistp pairs.
-       (define_peephole2 atomic_loaddi_fpu): Ditto.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (maybe_hot_frequency_p): Avoid division.
- 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
-       * doc/install.texi: Use https for shop.fsf.org.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
-       likely_max_stmt_executions_int.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
-       likely_max_stmt_executions_int.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * profile.c (compute_branch_probabilities): Do not report hitrates
-       here.
-       (branch_prob): Report hitrates here.
-       * predict.c (gimple_predict_edge): Do not assert profile status;
-       fix formatting issues.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * predict.c (edge_predicted_by_p): New function.
-       (predict_paths_for_bb): Do not put multiple predictions of the same type
-       on one edge.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
-       commit.
- 2016-05-28  Alan Modra  <amodra@gmail.com>
-       * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
- 2016-05-28  Alan Modra  <amodra@gmail.com>
-       PR rtl-optimization/71275
-       * ira.c (ira): Free dominance info.
- 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
-       * doc/sourcebuild.texi: New address for upstream Go repository.
- 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config/arm/arm.h (TARGET_ARM_V6M): Remove.
-       (TARGET_ARM_V7M): Likewise.
- 2016-05-26  Jeff Law  <law@redhat.com>
-       * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
-       (thread_across_edge): Remove calls to find_jump_threads_backwards.
-       * passes.def: Add jump threading passes before DOM/VRP.
-       * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
-       argument to a basic block from an edge.  Remove tests which are
-       handled elsewhere.
-       (pass_data_thread_jumps, class pass_thread_jumps): New.
-       (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
-       (make_pass_thread_jumps): Likewise.
-       * tree-pass.h (make_pass_thread_jumps): Declare.
- 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/visium/visium-protos.h (split_double_move): Rename into...
-       (visium_split_double_move): ...this.
-       (visium_split_double_add): Declare.
-       * config/visium/visium.c (split_double_move): Rename into...
-       (visium_split_double_move): ...this.
-       (visium_split_double_add): New function.
-       (visium_expand_copysign): Renumber operands for consistency.
-       * config/visium/visium.md (DImode move splitter): Adjust to renaming.
-       (DFmode move splitter): Likewise.
-       (*addi3_insn): Split by means of visium_split_double_add.
-       (*adddi3_insn_flags): Delete.
-       (*plus_plus_sltu<subst_arith>): New insn.
-       (*subdi3_insn): Split by means of visium_split_double_add.
-       (subdi3_insn_flags): Delete.
-       (*minus_minus_sltu<subst_arith>): New insn.
-       (*negdi2_insn): Split by means of visium_split_double_add.
-       (*negdi2_insn_flags): Delete.
- 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
-       * configure.ac: Treat a --with-headers option without argument
-       the same as the default (i.e. consult sys-include directory).
-       * configure: Regenerate.
- 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
-       * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
-       prototype.
-       * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
-       Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
- 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
-       PR target/63596
-       * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
-       tree-stdarg analysis results.
-       (aarch64_setup_incoming_varargs): Likewise.
- 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
-       va_list_gpr_counter_field and va_list_fpr_counter_field.
- 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
-       PR67609
-       * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
-       * config/aarch64/aarch64.c
-       (aarch64_cannot_change_mode_class): Remove function.
-       * config/aarch64/aarch64-protos.h
-       (aarch64_cannot_change_mode_class): Remove.
- 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
-       * cfgloop.c (record_niter_bound): Record likely upper bounds.
-       (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
-       get_likely_max_loop_iterations_int): New.
-       * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
-       any_likely_upper_bound.
-       (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
-       Declare.
-       * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
-       * loop-unroll.c (unroll_loop_constant_iterations): Update likely
-       upper bound.
-       (unroll_loop_constant_iterations): Likewise.
-       (unroll_loop_runtime_iterations): Likewise.
-       * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
-       * lto-streamer-out.c (output_cfg): Likewise.
-       * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
-       bounds.
-       (canonicalize_loop_induction_variables): Dump likely upper bounds.
-       * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
-       (likely_max_loop_iterations): New.
-       (likely_max_loop_iterations_int): New.
-       (likely_max_stmt_executions): New.
-       * tree-ssa-loop-niter.h (likely_max_loop_iterations,
-       likely_max_loop_iterations_int, likely_max_stmt_executions_int,
-       likely_max_stmt_executions): Declare.
- 2016-05-27  Marek Polacek  <polacek@redhat.com>
-       PR middle-end/71308
-       * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
- 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md (2x risbg splitters): Use
-       reg_overlap_mentioned_p instead of rtx_equal_p.
- 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * combine.c (make_compound_operation): Take known zero bits into
-       account when checking for possible zero_extend.
- 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
-       Use const_int_operand for operand 2 predicate.  Simplify expand code
-       as a result.
- 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR middle-end/71279
-       * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
-       into comparison.
- 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
-       * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
-       that returns CC_SESWPmode and CC_ZESWPmode.
-       (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
-       and CC_SESWPmode.
-       (aarch64_rtx_costs): Likewise.
- 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
-       for ISA 3.0 min/max support.
-       (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
-       conditional move support.
-       (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
-       rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
-       available.
-       * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
-       conditional moves where the comparison type is different from move
-       type.
-       (fp_minmax): New code iterator for smin/smax.
-       (minmax): New code attributes for min/max.
-       (SMINMAX): Likewise.
-       (smax<mode>3): Combine min, max insns into one insn using the
-       fp_minmax code iterator.  Add support for ISA 3.0 min/max
-       instructions that don't need -ffast-math.
-       (s<minmax><mode>3): Likewise.
-       (smax<mode>3_vsx): Likewise.
-       (smin<mode>3): Likewise.
-       (s<minmax><mode>3_vsx): Likewise.
-       (smin<mode>3_vsx): Likewise.
-       (pre-VSX min/max splitters): Likewise.
-       (s<minmax><mode>3_fpr): Likewise.
-       (movsfcc): Rewrite floating point conditional moves to combine
-       SFmode/DFmode into a single insn.
-       (mov<mode>cc): Likewise.
-       (movdfcc): Likewise.
-       (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
-       SFDF2 iterators to handle all combinations.
-       (fseldfsf4): Likewise.
-       (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
-       (fseldfdf4): Likewise.
-       (fselsfdf4): Likewise.
-       (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
-       comparison instructions that set a 0/-1 mask, and use it for
-       floating point conditional move via XXSEL.
-       (fpmask<mode>): Likewise.
-       (xxsel<mode>): Likewise.
-       * config/rs6000/predicates.md (min_max_operator): Delete, no
-       longer used.
-       (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
-       instructions that generate a 0/-1 mask for use with XXSEL.
-       * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
-       say whether floating point min/max is available, either through
-       FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
-       (TARGET_MINMAX_DF): Likewise.
- 2016-05-27  Alan Modra  <amodra@gmail.com>
-       PR rtl-optimization/71275
-       * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
-       for update_equiv_regs and combine_and_move_insns.
- 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
-       if_then_else or cond RTXes to calculate attribute value.
-       * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
-       <attr "length_immediate>: Ditto.
-       (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
-       * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
-       (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
-       <attr "type">: Ditto.
-       <attr "prefix_data16">: Ditto.
-       <attr "prefix_extra">: Ditto.
-       <attr "length_immediate">: Ditto.
-       <attr "prefix">: Ditto.
-       (vec_set<mode>_0) <attr "isa">: Ditto.
-       <attr "prefix_extra">: Ditto.
-       <attr "length_immediate">: Ditto.
-       <attr "prefix">: Ditto.
-       (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
-       (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
-       (sse2_storelpd) <attr "prefix_data16">: Ditto.
-       (sse2_loadhpd) <attr "prefix_data16">: Ditto.
-       (sse2_loadlpd) <attr "prefix_data16">: Ditto.
-       <attr "length_immediate">: Ditto.
-       <attr "prefix">: Ditto.
-       (sse2_movsd) <attr "length_immediate">: Ditto.
-       <attr "prefix">: Ditto.
-       (vec_concatv2df)  <attr "isa">: Ditto.
-       <attr "prefix">: Ditto.
-       (*vec_extractv4si) <attr "prefix_extra">: Ditto.
-       (*vec_extractv2di_1) <attr "isa">: Ditto.
-       <attr "type">: Ditto.
-       <attr "length_immediate">: Ditto.
-       <attr "prefix_rex">: Ditto.
-       <attr "prefix_extra">: Ditto.
-       (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
-       <attr "prefix_extra">: Ditto.
-       <attr "length_immediate">: Ditto.
-       (vec_concatv2di) <attr "isa">: Ditto.
-       <attr "prefix_extra">: Ditto.
-       <attr "length_immediate">: Ditto.
-       <attr "prefix">: Ditto.
- 2016-05-26  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
-       function.
-       (operator+): Likewise.
-       (operator-): Likewise.
-       (comp_cost::operator+=): Likewise.
-       (comp_cost::operator-=): Likewise.
-       (comp_cost::operator/=): Likewise.
-       (comp_cost::operator*=): Likewise.
-       (operator<): Likewise.
-       (operator==): Likewise.
-       (operator<=): Likewise.
-       (new_cost): Remove.
-       (infinite_cost_p): Likewise.
-       (add_costs): Likewise.
-       (sub_costs): Likewise.
-       (compare_costs): Likewise.
-       (set_group_iv_cost): Use the newly introduced functions.
-       (get_address_cost): Likewise.
-       (get_shiftadd_cost): Likewise.
-       (force_expr_to_var_cost): Likewise.
-       (split_address_cost): Likewise.
-       (ptr_difference_cost): Likewise.
-       (difference_cost): Likewise.
-       (get_computation_cost_at): Likewise.
-       (determine_group_iv_cost_generic): Likewise.
-       (determine_group_iv_cost_address): Likewise.
-       (determine_group_iv_cost_cond): Likewise.
-       (autoinc_possible_for_pair): Likewise.
-       (determine_group_iv_costs): Likewise.
-       (cheaper_cost_pair): Likewise.
-       (iv_ca_recount_cost): Likewise.
-       (iv_ca_set_no_cp): Likewise.
-       (iv_ca_set_cp): Likewise.
-       (iv_ca_cost): Likewise.
-       (iv_ca_new): Likewise.
-       (iv_ca_dump): Likewise.
-       (iv_ca_narrow): Likewise.
-       (iv_ca_prune): Likewise.
-       (iv_ca_replace): Likewise.
-       (try_add_cand_for): Likewise.
-       (try_improve_iv_set): Likewise.
-       (find_optimal_iv_set): Likewise.
- 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
-       that internal functions will clobber all caller-saved registers.
- 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_case_values_threshold):
-       Return a better case_values_threshold when optimizing.
- 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64-simd.md (aarch64_combinez):
-       Add ? to integer variant.
-       (aarch64_combinez_be): Likewise.
- 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
-       instead of x constraint.
-       (vcvtps2ph256<mask_name>): Likewise.
-       * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
-       alternative.  Formatting fix.
-       * config/i386/sse.md
-       (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
-       to ...
-       (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
-       (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
-       maybe_evex prefix instead of vex.
-       (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
-       EXT_REX_SSE_REG_P (op0) case in the splitter.
- 2016-05-25  Jeff Law  <law@redhat.com>
-       PR tree-optimization/71272
-       * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
-       Update comments.  Add test for empty path.
- 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
-       * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
-       * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
-       special case builtin.
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
-       code for ALTIVEC_BUILTIN_VEC_CMPNE.
-       * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
-       for __builtin_vec_cmpne.
- 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
-       redundant test and bail out if the type of the new operand is not
-       a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
- 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
-       (x_ix86_target_flags_explicit): Remove.
-       * config/i386/i386.c (ix86_function_specific_save): Do not copy
-       x_ix86_target_flags_explicit.
-       (ix86_function_specific_restore): Ditto.
- 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
-           H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/70738
-       * common/config/i386/i386-common.c
-       (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
-       (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
-       MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
-       * config/i386/i386.opt (ix86_target_flags): Add new Variable.
-       (-mgeneral-regs-only): Add new option.
-       * config/i386/i386.c (ix86_option_override_internal): Don't enable
-       x87 instructions if only general registers are allowed.
-       (ix86_target_string): Add ix86_flags argument. Handle additional
-       flags options through ix86_flags argument.  Update all callers.
-       * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
- 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR rtl-optimization/66940
-       * ifcvt.c (noce_get_alt_condition): Check that incrementing or
-       decrementing desired_val will not overflow before performing these
-       operations.
- 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
-       * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
-       V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
-       * config/i386/i386.c (enum ix86_builtins): Add
-       IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
-       IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
-       IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
-       IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
-       IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
-       IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
-       (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
-       __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
-       __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
-       __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
-       __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
-       __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
-       Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
-       __builtin_ia32_cvtps2dq512_mask.
-       (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
-       V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
-       (ix86_builtin_vectorized_function): Handle builtins mentioned above.
-       * config/i386/sse.md
-       (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
-       Rename to ...
-       (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
-       (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
-       to ...
-       (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
-       (avx512f_vec_pack_sfix_v8df): New define_expand.
-       (avx512f_roundpd512): Rename to ...
-       (avx512f_round<castmode>512): ... this.  Change iterator.
-       (avx512f_roundps512_sfix): New define_expand.
-       (round<mode>2_sfix): Change iterator.
- 2016-05-25  Nick Clifton  <nickc@redhat.com>
-       * config/msp430/msp430.c (msp430_attr): Produce an error if a
-       static interrupt handler is detected.
-       * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
-       default linker script.
-       * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
-       the low part of a symbolic pointer.
- 2016-05-25  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71261
-       * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
-       interesting stmt instead of immediate uses when looking
-       for the use operand to replace.
- 2016-05-25  Martin Liska  <mliska@suse.cz>
-       * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
- 2016-05-25  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71264
-       * tree-vect-stmts.c (vect_init_vector): Properly deal with
-       vector type val.
- 2016-05-25  Martin Liska  <mliska@suse.cz>
-       PR tree-optimization/71239
-       * tree.c (array_at_struct_end_p): Do not call operand_equal_p
-       if DECL_SIZE is NULL.
- 2016-05-25  Richard Biener  <rguenther@suse.de>
-       * timevar.def (TV_TREE_LOOP_IFCVT): Add.
-       * tree-if-conv.c (pass_data_if_conversion): Use it.
- 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
-       * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
-       * varpool.c (varpool_node::get_availability): Likewise.
- 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/altivec.md (VNEG iterator): New iterator for
-       VNEGW/VNEGD instructions.
-       (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
-       (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
-       support for ISA 3.0 VNEGW/VNEGD instructions.
- 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
-       * gimplify.c (omp_notice_variable): Use zero-length arrays for data
-       pointers inside OACC_DATA regions.
-       (gimplify_scan_omp_clauses): Prune firstprivate clause associated
-       with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
-       (gimplify_adjust_omp_clauses): Fix typo in comment.
- 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/altivec.md (VParity): New mode iterator for vector
-       parity built-in functions.
-       (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
-       zeros.
-       (p9v_parity<mode>2): Likewise.
-       * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
-       parity.
-       (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
-       (parity<mode>2): ISA 3.0 expander for vector parity.
-       * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
-       power9 built-ins.
-       (BU_P9_64BIT_MISC_0): Likewise.
-       (BU_P9_MISC_0): Likewise.
-       (BU_P9V_AV_1): Likewise.
-       (BU_P9V_AV_2): Likewise.
-       (BU_P9V_AV_3): Likewise.
-       (BU_P9V_AV_P): Likewise.
-       (BU_P9V_VSX_1): Likewise.
-       (BU_P9V_OVERLOAD_1): Likewise.
-       (BU_P9V_OVERLOAD_2): Likewise.
-       (BU_P9V_OVERLOAD_3): Likewise.
-       (VCTZB): Add vector count trailing zeros support.
-       (VCTZH): Likewise.
-       (VCTZW): Likewise.
-       (VCTZD): Likewise.
-       (VPRTYBD): Add vector parity support.
-       (VPRTYBQ): Likewise.
-       (VPRTYBW): Likewise.
-       (VCTZ): Add overloaded vector count trailing zeros support.
-       (VPRTYB): Add overloaded vector parity support.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
-       overloaded vector count trailing zeros and parity instructions.
-       * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
-       vector parity support.
-       * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
-       trailing zeros support.
-       (vec_cntlz): Likewise.
-       (vec_vctzb): Likewise.
-       (vec_vctzd): Likewise.
-       (vec_vctzh): Likewise.
-       (vec_vctzw): Likewise.
-       (vec_vprtyb): Add ISA 3.0 vector parity support.
-       (vec_vprtybd): Likewise.
-       (vec_vprtybw): Likewise.
-       (vec_vprtybq): Likewise.
-       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
-       the ISA 3.0 vector count trailing zeros and vector parity built-in
-       functions.
- 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
-       when there is stmt_to_insert.
- 2016-05-24  Martin Sebor  <msebor@redhat.com>
-       PR c++/71147
-       * tree.h (complete_or_array_type_p): New inline function.
- 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
-       * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
-       rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
-       * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
-       Limit 1st alternative to noavx isa, split 2nd alternative into one
-       noavx and one avx alternative, use *x and Bm in the former and
-       x and m in the latter.
-       * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
-       of sse4 for the first alternative, drop %v from the template
-       and d operand modifier.  Split second alternative into one sse4_noavx
-       and one avx alternative, use *x instead of *v in the former and v
-       instead of *v in the latter.
-       (*sse4_1_extractps): Use noavx isa instead of * for the first
-       alternative, drop %v from the template.  Split second alternative into
-       one noavx and one avx alternative, use *x instead of *v in the
-       former and v instead of *v in the latter.
-       (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
-       with noavx and the last one with avx.
-       (sse4_1_phminposuw): Guard first alternative with noavx isa,
-       split the second one into one noavx and one avx alternative,
-       use *x and Bm in the former and x and m in the latter one.
-       (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
-       alternatives.
-       * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
-       first two alternatives to noavx, use *x instead of *v in the second
-       one, add avx alternative without *.
-       (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
-       sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
-       sse4_1_<code>v2siv2di2<mask_name>): Likewise.
- 2016-05-24  Jeff Law  <law@redhat.com>
-       * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
-       New function, extracted from...
-       (fsm_find_control_statement_thread_paths): Here.  Use the new function.
-       Allow simple copies and constant initializations in the SSA chain.
- 2016-05-24  Marek Polacek  <polacek@redhat.com>
-       PR c/71249
-       * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
-       scope.
- 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/71257
-       * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
-       SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
-       SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
-       SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
-       SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
- 2016-05-24  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71240
-       * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
-       has integral type.
- 2016-05-24  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71230
-       * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
- 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vectorizer.h (vectorizable_comparison): Delete.
-       * tree-vect-loop.c (vectorizable_reduction): Remove redundant
-       PURE_SLP_STMT check.
-       * tree-vect-stmts.c (vectorizable_call): Likewise.
-       (vectorizable_simd_clone_call): Likewise.
-       (vectorizable_conversion): Likewise.
-       (vectorizable_assignment): Likewise.
-       (vectorizable_shift): Likewise.
-       (vectorizable_operation): Likewise.
-       (vectorizable_load): Likewise.
-       (vectorizable_condition): Likewise.
-       (vectorizable_store): Likewise.  Assert that we don't have
-       hybrid SLP.
-       (vectorizable_comparison): Make static.  Remove redundant
-       PURE_SLP_STMT check.
-       (vect_transform_stmt): Assert that we always have an slp_node
-       if PURE_SLP_STMT.
- 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
-       operands[2] against 1 with comparison against CONST1_RTX.
-       (<shift>di3_neon): Likewise.
-       * config/arm/predicates.md (const0_operand): Replace with comparison
-       against CONST0_RTX.
- 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
-       operands[2] against 1 with comparison against CONST1_RTX.
-       (ashrdi3): Likewise.
-       (lshrdi3): Likewise.
-       (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
-       UINTVAL.
-       (ashrsi3): Likewise.
-       (lshrsi3): Likewise.
-       (rotrsi3): Likewise.
-       (define_split above *compareqi_eq0): Likewise.
-       (define_split above "prologue"): Likewise.
-       * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
-       * config/arm/predicates.md (shift_operator): Likewise.
-       (shift_nomul_operator): Likewise.
-       (sat_shift_operator): Likewise.
-       (thumb1_cmp_operand): Likewise.
-       (const_neon_scalar_shift_amount_operand): Replace manual range
-       check with IN_RANGE.
-       * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
-       Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
- 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
-       with HOST_WIDE_INT_1.
-       (insv): Likewise.
-       * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
-       1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
-       (arm_canonicalize_comparison): Likewise.
-       (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
-       HOST_WIDE_INT_1.
-       (thumb1_size_rtx_costs): Likewise.
-       (vfp_const_double_index): Replace cast of 1 to unsigned
-       HOST_WIDE_INT with HOST_WIDE_INT_1U.
-       (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
-       HOST_WIDE_INT_1.
-       (arm_asan_shadow_offset): Replace cast of 1 to unsigned
-       HOST_WIDE_INT with HOST_WIDE_INT_1U.
-       * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
-       HOST_WIDE_INT with HOST_WIDE_INT_1.
- 2016-05-24  Marek Polacek  <polacek@redhat.com>
-       * tree-cfg.h (should_remove_lhs_p): New predicate.
-       * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
-       * gimplify.c (gimplify_modify_expr): Likewise.
-       * tree-cfg.c (verify_gimple_call): Likewise.
-       * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
-       * gimple-fold.c: Include "tree-cfg.h".
-       (gimple_fold_call): Use should_remove_lhs_p.
- 2016-05-24  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71253
-       * cfganal.h (control_dependences): Make robust against edge
-       and BB removal.
-       (control_dependences::control_dependences): Remove edge_list argument.
-       (control_dependences::get_edge): Remove.
-       (control_dependences::get_edge_src): Add.
-       (control_dependences::get_edge_dest): Likewise.
-       (control_dependences::m_el): Make a vector of edge src/dest index.
-       * cfganal.c (control_dependences::find_control_dependence): Adjust.
-       (control_dependences::control_dependences): Likewise.
-       (control_dependences::~control_dependence): Likewise.
-       (control_dependences::get_edge): Remove.
-       (control_dependences::get_edge_src): Add.
-       (control_dependences::get_edge_dest): Likewise.
-       * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
-       get_edge_src.
-       (perform_tree_ssa_dce): Adjust.
-       * tree-loop-distribution.c (create_edge_for_control_dependence): Use
-       get_edge_src.
-       (pass_loop_distribution::execute): Adjust.  Do loop destroying
-       conditional on changed.
- 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/69857
-       * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
-       return.  Reindent transformation comment and mention the ARM state
-       behavior.
- 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71252
-       * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
-       after build_and_add_sum creates new use stmt.
- 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
-       load_lanes/grouped_load classification comes first.  Don't check
-       whether the vectorization factor is a multiple of the group size
-       for load_lanes.
- 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
-       GROUP_GAP for single-element interleaving.
-       * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
-       variable.
- 2016-05-24  Richard Biener  <rguenther@suse.de>
-       PR middle-end/70434
-       PR c/69504
-       * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
-       bases which are accessed with non-invariant indices.
-       * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
-       constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
- 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71170
-       * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
-       (add_to_ops_vec): Add stmt_to_insert.
-       (add_repeat_to_ops_vec): Init stmt_to_insert.
-       (insert_stmt_before_use): New.
-       (transform_add_to_multiply): Remove mult_stmt insertion and add it
-       to ops vector.
-       (get_ops): Init stmt_to_insert.
-       (maybe_optimize_range_tests): Likewise.
-       (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
-       (rewrite_expr_tree_parallel): Likewise.
-       (reassociate_bb): Likewise.
- 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/71201
-       * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
-       ISA 3.0 xxperm fusion alternative.
-       (altivec_vperm_v8hiv16qi): Likewise.
-       (altivec_vperm_<mode>_uns_internal): Likewise.
-       (vperm_v8hiv4si): Likewise.
-       (vperm_v16qiv8hi): Likewise.
- 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
-           Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
-       vpermr/xxpermr on ISA 3.0.
-       (altivec_expand_vec_perm_le): Likewise.
-       * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
-       (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
-       ISA 3.0.
- 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.h (IS_STACK_MODE): Enable for
-       TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
-       SSE_FLOAT_MODE_P macros.
-       * config/i386/i386.c (ix86_preferred_reload_class): Use
-       IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
-       Cleanup regclass processing for CONST_DOUBLE_P.
-       (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
-       (ix86_rtx_costs): Remove redundant TARGET_80387 check
-       with IS_STACK_MODE macro.
-       * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
-       with TARGET_SSE2.
-       (*movdf_internal): Use IS_STACK_MODE macro.
-       (*movsf_internal): Ditto.
- 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
-       * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
-       ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
- 2016-05-23  Jeff Law  <law@redhat.com>
-       * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
-       extracted from ...
-       (fsm_find_control_statement_thread_paths): Call it.
- 2016-05-23  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/71234
-       * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
-       from_global_constant if t is not NULL.
- 2016-05-23  Marek Polacek  <polacek@redhat.com>
-       PR c/49859
-       * common.opt (Wswitch-unreachable): New option.
-       * doc/invoke.texi: Document -Wswitch-unreachable.
-       * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
-       warning.
- 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
-       TMR_INDEX is non-NULL.
- 2016-05-23  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71230
-       * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
-       (try_special_add_to_ops): ... here.  Always test for single-use.
- 2016-05-23  Martin Jambor  <mjambor@suse.cz>
-       * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
-       default block if a PHI node in the original one would be resized.
- 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
-       PR tree-optimization/58135
-       * tree-vect-slp.c: When group size is not multiple
-       of vector size, allow splitting of store group at
-       vector boundary.
- 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
-       * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
- 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
-       vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
-       condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
-       of 64x2.
-       * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
-       vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
-       v constraint instead of x and vinserti32x4 insn.
-       * config/i386/sse.md (i128vldq): New mode iterator.
-       (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
-       avx512dq and avx512vl alternatives.
-       * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
-       constraint, use maybe_evex prefix instead of vex.
-       (vec_dupv4sf): Use v constraint instead of x for output
-       operand except for noavx alternative, use Yv constraint
-       instead of x for input.  Use maybe_evex prefix instead of vex.
-       (*vec_dupv4si): Likewise.
-       (*vec_dupv2di): Likewise.
- 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/40921
-       * tree-ssa-reassoc.c (try_special_add_to_ops): New.
-       (linearize_expr_tree): Call try_special_add_to_ops.
-       (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
- 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
-       to computed stack_usage.
- 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
-       PR target/71103
-       * config/avr/avr.md (define_expand "mov<mode>"): If the source
-       operand is subreg (symbol_ref) then move the symbol ref to register.
- 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
-       * tree.c (array_at_struct_end_p): Look through MEM_REF.
- 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/71179
-       * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
-       VECTOR type.
- 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
-       ranges by calling get_single_symbol and tidy up.  Look more closely
-       into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
- 2016-05-20  Jeff Law  <law@redhat.com>
-       * bitmap.c (bitmap_find_bit): Remove useless test.
- 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (thread_prologue_and_epilogue_insns): Commit the
-       insertion of the epilogue.
- 2016-05-20  Martin Jambor  <mjambor@suse.cz>
-       PR tree-optimization/70884
-       * tree-sra.c (initialize_constant_pool_replacements): Do not check
-       should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
-       (sort_and_splice_var_accesses): Do not consider multiple scalar reads
-       of constant pool data as a reason for scalarization.
- 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
-       for naked functions.
-       (thumb1_expand_prologue): Likewise.
- 2016-05-20  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nptx.c (nvptx_option_override): Only set
-       flag_toplevel_reorder, if not explicitly specified.  Set
-       flag_no_common, unless explicitly specified.
- 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
-       * calls.c (can_implement_as_sibling_call_p): Mark param
-       reg_parm_stack_space with ATTRIBUTE_UNUSED.
- 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
-       Use IS_STACK_MODE when calculating cost of standard 80387 constants.
-       Fallthru to CONST_VECTOR case to calculate cost of standard SSE
-       constants.
-       <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
-       (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
-       and CASE_CONST_ANY.
- 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
-       * config/nvptx/nvptx.md (sincossf3): New pattern.
- 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
-       * calls.c (maybe_complain_about_tail_call): New function.
-       (initialize_argument_information): Call
-       maybe_complain_about_tail_call when clearing *may_tailcall.
-       (can_implement_as_sibling_call_p): Call
-       maybe_complain_about_tail_call when returning false.
-       (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
-       ensure try_tail_call is set.  Call maybe_complain_about_tail_call
-       if tail-call optimization fails.
-       * cfgexpand.c (expand_call_stmt): Initialize
-       CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
-       * gimple-pretty-print.c (dump_gimple_call): Dump
-       gimple_call_must_tail_p.
-       * gimple.c (gimple_build_call_from_tree): Call
-       gimple_call_set_must_tail with the value of
-       CALL_EXPR_MUST_TAIL_CALL.
-       * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
-       (gimple_call_set_must_tail): New function.
-       (gimple_call_must_tail_p): New function.
-       * print-tree.c (print_node): Update printing of TREE_STATIC
-       to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
-       * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
-       trailing comment listing applicable flags.
-       * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
- 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
-       * calls.c (expand_call): Move "Rest of purposes for tail call
-       optimizations to fail" to...
-       (can_implement_as_sibling_call_p): ...this new function, and
-       split into multiple "if" statements.
- 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
-       * cfgloop.h (expected_loop_iterations_unbounded,
-       expected_loop_iterations): Unconstify.
-       * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
-       profile with known upper bound; return 3 when profile is absent.
-       (expected_loop_iterations): Update.
- 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
-       * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
-       and get_max_loop_iterations_int.
- 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
-       realistic upper bounds here.
- 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/71210
-       * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
-       calls if the LHS is variable length or has addressable type.
-       If targets[0]->decl is a noreturn call with void return type and
-       zero arguments, adjust fntype and remove lhs in that case.
- 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
-       PR tree-optimization/71079
-       PR tree-optimization/71206
-       * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
- 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
-       (get_vec_alignment_for_array_decl): Likewise.
-       (get_vec_alignment_for_record_decl): Likewise.
-       (increase_alignment::execute): Move code to find alignment to
-       get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
-       (type_align_map): New hash_map.
- 2016-05-20  Richard Guenther  <rguenther@suse.de>
-       PR tree-optimization/29756
-       * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
-       * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
-       * fold-const.c (operand_equal_p): Likewise.
-       (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
-       * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
-       * tree-inline.c (estimate_operator_cost): Likewise.
-       * tree-pretty-print.c (dump_generic_node): Likewise.
-       * tree-ssa-operands.c (get_expr_operands): Likewise.
-       * cfgexpand.c (expand_debug_expr): Likewise.
-       * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
-       * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
-       * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
-       * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
-       vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
-       (execute_update_addresses_taken): Do it.
- 2016-05-20  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71185
-       * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
-       register operations.
- 2016-05-20  Richard Biener  <rguenther@suse.de>
-       * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
-       gimple_seq_add_seq_without_update.
-       (release_bb_predicate): Assert we have no operands to free.
-       (if_convertible_loop_p_1): Calculate post dominators later.
-       Do not free BB predicates here.
-       (combine_blocks): Do not recompute BB predicates.
-       (version_loop_for_if_conversion): Save BB predicates around
-       loop versioning.
- 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (make_epilogue_seq): Remove epilogue_end parameter.
-       (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
-       code.  Ignore sibcalls on EDGE_IGNORE edges.
-       * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
-       on edges for sibcalls that run without prologue.  The rest of the
-       function is combined from...
-       (fix_fake_fallthrough_edge): ... this, and ...
-       (try_shrink_wrapping): ... a part of this.  Remove the bb_with
-       function argument, make it a local variable.
- 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
-       * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
-       --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
-       for 32-bit mode and SEH for 64-bit.
-       * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
-       TARGET_64BIT_DEFAULT.
- 2016-05-19  Ryan Burn  <contact@rnburn.com>
-       * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
-       * gengtype.c (open_base_files): Add cilk.h to ifiles.
- 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
-       * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
-       force pending loads from memory.
- 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
-       (UNSPEC_DARN_32): New unspec constant.
-       (UNSPEC_DARN_RAW): New unspec constant.
-       (darn_32): New instruction.
-       (darn_raw): New instruction.
-       (darn): New instruction.
-       * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
-       support and documentation for this macro.
-       (BU_P9_MISC_1): New macro definition.
-       (BU_P9_64BIT_MISC_0): New macro definition.
-       (BU_P9_MISC_0): New macro definition.
-       (darn_32): New builtin definition.
-       (darn_raw): New builtin definition.
-       (darn): New builtin definition.
-       * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
-       RS6000_BUILTIN_0 directives to surround each occurrence of
-       #include "rs6000-builtin.def".
-       (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
-       RS6000_BTM_64BIT flags to the returned mask, depending on
-       configuration.
-       (def_builtin): Correct an error in the assignments made to the
-       debugging variable attr_string.
-       (rs6000_expand_builtin): Add support for no-operand built-in
-       functions.
-       (builtin_function_type): Remove fatal_error assertion that is no
-       longer valid.
-       (rs6000_common_init_builtins): Add support for no-operand built-in
-       functions.
-       * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
-       definition.
-       (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
-       definition.
-       (RS6000_BTM_64BIT): New macro definition.
-       * doc/extend.texi: Document __builtin_darn (void),
-       __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
-       functions.
- 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-vect-loop.c (vect_analyze_loop_2): Use also
-       max_loop_iterations_int.
- 2016-05-19  Marek Polacek  <polacek@redhat.com>
-       PR tree-optimization/71031
-       * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
-       condition and adjust the code a bit.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
-       auto_vec instead of vec.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * ipa-pure-const.c (set_function_state): Remove an existing
-       funct_state.
-       (remove_node_data): Do not free it as it's released
-       in set_function_state.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
-       bitmap.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * omp-simd-clone.c (simd_clone_adjust): Release vector.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
-       an auto_vec instead of re-creating it.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
-       auto_vec instead of vec.
- 2016-05-19  Martin Liska  <mliska@suse.cz>
-       * lto-section-in.c (lto_get_section_data): Call
-       lto_check_version with additional argument.
-       * lto-streamer.c (lto_check_version): Add new argument.
-       * lto-streamer.h (lto_check_version): Likewise.
- 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
-       Don't add cost of inner memory when handling sign-extended loads.
- 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR rtl-optimization/71148
-       * cse.c (cse_main): Free dominance info.
-       (rest_of_handle_cse): Don't free dominance info.
-       (rest_of_handle_cse2): Likewise.
-       (rest_of_handle_cse_after_global_opts): Likewise.
- 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/71056
-       * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
-       NULL_TREE early if NEON is not available.  Remove now redundant check
-       in ARM_CHECK_BUILTIN_MODE.
- 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
-       PR sanitizer/64354
-       * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
-       builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
-       * doc/cpp.texi: Document new macros.
- 2016-05-19  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/69848
-       * tree-vect-loop.c (vectorizable_reduction): Don't factor
-       comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
- 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (thread_prologue_and_epilogue_insn): Move the
-       "goto epilogue_done" one block later.
- 2016-05-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70729
-       * passes.def: Move LIM pass before PRE.  Remove no longer
-       required copyprop and move first DCE out of the loop pipeline.
- 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
-       PR driver/69265
-       * Makefile.in (GCC_OBJS): Move spellcheck.o to...
-       (OBJS-libcommon-target): ...here.
-       * opts-common.c: Include spellcheck.h.
-       (cmdline_handle_error): Build a vec of valid options and use it
-       to suggest provide hints for misspelled arguments.
- 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/71100
-       * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
-       lhs if it has TREE_ADDRESSABLE type.
- 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/71145
-       * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
-       (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
- 2016-05-18  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/69708
-       * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
-       input for NOP_EXPR pass-through functions.
-       * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
-       aggregate global constant VAR_DECLs in constant jump functions.
- 2016-05-18  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/69708
-       * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
-       from TREE_READONLY parameters.
- 2016-05-18  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/69708
-       * cgraph.h (cgraph_indirect_call_info): New field
-       guaranteed_unmodified.
-       * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
-       to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
-       appropriate.
-       * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
-       pass the parameter value to ipa_find_agg_cst_for_param.
-       * ipa-prop.c (ipa_load_from_parm_agg): New parameter
-       guaranteed_unmodified, store AA results there instead of bailing out
-       if present.
-       (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
-       (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
-       (find_constructor_constant_at_offset): New function.
-       (ipa_find_agg_cst_from_init): Likewise.
-       (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
-       static initializers of contants, report back through a new paameter
-       from_global_constant if that was the case.
-       (try_make_edge_direct_simple_call): Also pass parameter value to
-       ipa_find_agg_cst_for_param, check guaranteed_unmodified when
-       appropriate.
-       (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
-       (ipa_read_indirect_edge_info): Likewise.
-       * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
-       (ipa_load_from_parm_agg): Likewise.
- 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
-       PR rtl-optimization/71150
-       * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
-       check.
- 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/70915
-       * config/rs6000/constraints.md (wE constraint): New constraint
-       for a vector constant that can be loaded with XXSPLTIB.
-       (wM constraint): New constraint for a vector constant of a 1's.
-       (wS constraint): New constraint for a vector constant that can be
-       loaded with XXSPLTIB and a vector sign extend instruction.
-       * config/rs6000/predicates.md (xxspltib_constant_split): New
-       predicates for wE/wS constraints.
-       (xxspltib_constant_nosplit): Likewise.
-       (easy_vector_constant): Add support for constants that can be
-       loaded via XXSPLTIB.
-       (all_ones_constant): New predicate for vector constant with all
-       1's set.
-       (splat_input_operand): Add support for ISA 3.0 word splat operations.
-       * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
-       return if a constant can be loaded with the ISA 3.0 XXSPLTIB
-       instruction and possibly with a sign extension.
-       (output_vec_const_move): Add support for XXSPLTIB. If we are
-       loading up 0/-1 into Altivec registers, prefer using VSPLTISW
-       instead of XXLXOR/XXLORC.
-       (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
-       operations.
-       (rs6000_legitimize_reload_address): Likewise.
-       (rs6000_output_move_128bit): Use output_vec_const_move to emit
-       constants.
-       * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
-       combine VSX_M and VSX_M2 into one iterator.
-       (VSX_M2): Likewise.
-       (VSINT_84): New iterators for loading constants with XXSPLTIB.
-       (VSINT_842): Likewise.
-       (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
-       (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
-       XXSPLTIB instruction.
-       (xxspltib_<mode>_nosplit): Likewise.
-       (xxspltib_<mode>_split): New insn to load up constants with
-       XXSPLTIB and a sign extend instruction.
-       (vsx_mov<mode>): Replace single move that handled all vector types
-       with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
-       moves (when -mvsx-timode is in effect) into the main vector
-       moves.  Eliminate separate moves for <VSr> <VSa>, where the
-       preferred register class (<VSr>) is listed first, and the
-       secondary register class (<VSa>) is listed second with a '?' to
-       discourage use.  Prefer loading 0/-1 in any VSX register for ISA
-       3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
-       that if the register was involved in a slow operation, the
-       clear/set operation does not wait for the slow operation to
-       finish.  Adjust the length attributes for 32-bit mode.  Use
-       rs6000_output_move_128bit and drop the use of the string
-       instructions for 32-bit movti when -mvsx-timode is in effect.  Use
-       spacing so that the alternatives and attributes don't generate
-       long lines, and put things in columns, so that it is easier to
-       match up the operands and attributes with the insn alternatives.
-       (vsx_mov<mode>_64bit): Likewise.
-       (vsx_mov<mode>_32bit): Likewise.
-       (vsx_movti_64bit): Fold movti into normal vector moves.
-       (vsx_movti_32bit): Likewise.
-       (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
-       splat instructions.
-       (vsx_splat_v4si_internal): Likewise.
-       (vsx_splat_v4sf_internal): Likewise.
-       (vector fusion peepholes): Use VSX_M instead of VSX_M2.
-       (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
-       extend vector elements.
-       (vsx_sign_extend_hi_<mode>): Likewise.
-       (vsx_sign_extend_si_v2di): Likewise.
-       * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
-       declaration.
-       * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
-       constraints.  Add trailing period to wL documentation.
- 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
-       PR middle-end/71020
-       * tree-dfa.h (replace_abnormal_ssa_names): Declare.
-       * tree-dfa.c (replace_abnormal_ssa_names): New function.
-       * tree-call-cdce.c: Include tree-dfa.h.
-       (can_guard_call_p): New function, extracted from...
-       (can_use_internal_fn): ...here.
-       (shrink_wrap_one_built_in_call_with_conds): Remove failure path
-       and return void.
-       (shrink_wrap_one_built_in_call): Likewise.
-       (use_internal_fn): Likewise.
-       (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
-       and return void.  Call replace_abnormal_ssa_names.
-       (pass_call_cdce::execute): Check can_guard_call_p during the
-       initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
-       will always change something.
- 2016-05-18  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/70646
-       * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
-       if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
- 2016-05-18  Martin Jambor  <mjambor@suse.cz>
-       PR ipa/70646
-       * ipa-inline.h (condition): New field size.
-       * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
-       for comaprison and store it into the new condition.
-       (evaluate_conditions_for_known_args): Use condition size to check
-       access sizes for all but CHANGED conditions.
-       (unmodified_parm_1): New parameter size_p, store access size into it.
-       (unmodified_parm): Likewise.
-       (unmodified_parm_or_parm_agg_item): Likewise.
-       (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
-       (set_cond_stmt_execution_predicate): Extract access sizes and store
-       them to conditions.
-       (set_switch_stmt_execution_predicate): Likewise.
-       (will_be_nonconstant_expr_predicate): Likewise.
-       (will_be_nonconstant_predicate): Likewise.
-       (inline_read_section): Stream condition size.
-       (inline_write_summary): Likewise.
- 2016-05-18  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-loop-im.c (determine_max_movement): Properly add
-       condition cost to PHI cost instead of total_cost.
- 2016-05-18  Martin Liska  <mliska@suse.cz>
-       PR fortran/70856
-       * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
-       merged variables.
- 2016-05-18  Richard Biener  <rguenther@suse.de>
-       * lto-streamer.h (LTO_major_version): Bump to 6.
- 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (make_split_prologue_seq, make_prologue_seq,
-       make_epilogue_seq): New functions, factored out from...
-       (thread_prologue_and_epilogue_insns): Here.
- 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
-       cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
-       of before.  Add a comment.
- 2016-05-18  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
-       expression pointer, not pointer to the pointer.
- 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
-       (avx2_pbroadcast<mode>): Add another alternative with v instead
-       of x constraints in it, using <pbroadcast_evex_isa> isa.
-       (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
-       * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
-       constraint x instead of v in second alternative, add avx512bw
-       alternative.
-       * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
-       constraint x instead of v in second alternative, add avx512bw
-       alternative.
-       * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
-       constraint x instead of v in second alternative, add avx512bw
-       alternative.
-       * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
-       avx512bw alternative.
- 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
-       * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
-       array to 128 chars.
-       (define_insn "*andnottf3"): Ditto.
-       (define_insn "*<code><mode>3"/any_logic): Ditto.
-       (define_insn "*<code>tf3"/any_logic): Ditto.
-       (define_insn "sse2_storehpd"): Use Yv constraint for scalar
-       operand to block AVX-512VL insn variant emit when it is not enabled.
- 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
-       * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
-       constraint fot SF mode.
- 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
-           Kirill Yukhin  <kirill.yukhin@intel.com>
-       * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
-       modifiers.
-       (define_insn "rsqrt14<mode>"): Ditto.
-       (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
-       (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
-       (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
-       (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
-       (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
-       Ditto.
-       (define_insn "*avx512f_gatherdi<mode>"): Ditto.
-       (define_insn "*avx512f_scatterdi<mode>"): Ditto.
-       * config/i386/i386.c (ix86_print_operand): Expand check for size
-       override codes for Intel syntax.
- 2016-05-18  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71168
-       * tree-loop-distribution.c (distribute_loop): Move *destroy_p
-       initialization earlier.
- 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64-simd.md
-       (aarch64_reduc_plus_internal<mode>): Rename to...
-       (reduc_plus_scal): ...This, and remove previous implementation.
- 2016-05-18  Richard Biener  <rguenther@suse.de>
-       * passes.def: Put late dse and cd_dce in canonical order.
- 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
-       * ipa-inline-transform.c (preserve_function_body_p): Look for
-       first non-thunk clone.
-       (save_function_body): Save into first non-thunk.
-       * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
-       up call stmt id.
-       (lto_output_node): Inline thunks don't need body in every
-       partition.
-       * lto-streamer-in.c: Do not fixup thunk clones.
-       * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
-       thunks.
-       * tree-inline.c (copy_bb): Be prepared for target node to be new after
-       folding suceeds.
- 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/63586
-       * tree-ssa-reassoc.c (transform_add_to_multiply): New.
-       (reassociate_bb): Call transform_add_to_multiply.
- 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       * config/aarch64/aarch64.c (all_extensions): Removed unused
-       static variable.
- 2016-05-17  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
-       (TARGET_FUNCTION_ARG_BOUNDARY): Override.
- 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
-       PR tree-optimization/54579
-       PR middle-end/55299
-       * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
- 2016-05-17  Marek Polacek  <polacek@redhat.com>
-       PR ipa/71146
-       * tree-inline.c (expand_call_inline): Call
-       maybe_remove_unused_call_args.
- 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
-       * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
-       * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
-       * doc/md.texi (fmin@var{m}3): Likewise.
- 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
-       * match.pd (X & C): New transformation.
- 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
-       * match.pd (~X & Y): New transformation.
- 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
-       * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
-       information for new SSA_NAME.
-       (simplify_conversion_using_ranges): Get range through get_range_info
-       instead of get_value_range.
- 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
-       Remove inline assembly.
-       (vmvn_s16): Likewise.
-       (vmvn_s32): Likewise.
-       (vmvn_u8): Likewise.
-       (vmvn_u16): Likewise.
-       (vmvn_u32): Likewise.
-       (vmvnq_s8): Likewise.
-       (vmvnq_s16): Likewise.
-       (vmvnq_s32): Likewise.
-       (vmvnq_u8): Likewise.
-       (vmvnq_u16): Likewise.
-       (vmvnq_u32): Likewise.
-       (vmvn_p8): Likewise.
-       (vmvnq_p16): Likewise.
- 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
-       Use builtin.
-       (vmul_n_s16): Likewise.
-       (vmul_n_s32): Likewise.
-       (vmul_n_u16): Likewise.
-       (vmul_n_u32): Likewise.
-       (vmulq_n_f32): Likewise.
-       (vmulq_n_f64): Likewise.
-       (vmulq_n_s16): Likewise.
-       (vmulq_n_s32): Likewise.
-       (vmulq_n_u16): Likewise.
-       (vmulq_n_u32): Likewise.
- 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
-       to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
- 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
-       * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
-       to *aarch64_fma4_elt_from_dup<mode>.
-       (*aarch64_fnma4_elt_to_128df): Rename to
-       *aarch64_fnma4_elt_from_dup<mode>.
-       * config/aarch64/arm_neon.h (vfma_n_f64): New.
-       (vfms_n_f32): Likewise.
-       (vfms_n_f64): Likewise.
-       (vfmsq_n_f32): Likewise.
-       (vfmsq_n_f64): Likewise.
- 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
-       * wide-int.h: Change fixed_wide_int_storage from class to struct.
- 2016-05-17  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71132
-       * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
-       Only add control dependences for blocks in the loop.
-       (build_rdg): Adjust.
-       (generate_code_for_partition): Return whether loop should
-       be destroyed and delay that.
-       (distribute_loop): Likewise.
-       (pass_loop_distribution::execute): Record loops to be destroyed
-       and perform delayed destroying of loops.
- 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/70809
-       * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
- 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
- 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR target/71114
-       * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
-       insertion point for instructions generated by validize_mem.
- 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
-       in brackets.
- 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.c
-       (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
-       rather than a macro.
- 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
-       * doc/invoke.texi (AArch64 Options): Various updates.
- 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
-       * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
-       into instrumentation thunks.
-       * cif-code.def (CIF_CHKP): New.
- 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
- 2016-05-16  Martin Jambor  <mjambor@suse.cz>
-       * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
-       (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
- 2016-05-16  Marek Polacek  <polacek@redhat.com>
-       * gimple.c (maybe_remove_unused_call_args): Fix typos in the
-       commentary.
- 2016-05-16  Martin Jambor  <mjambor@suse.cz>
-       PR hsa/70857
-       * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
-       the outlined kernel function.
- 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
-       * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
-       (ISA_HAS_DLSA): Ditto.
- 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
-       * config/mips/m5100.md (m51_int_load): Update the latency to 2.
- 2016-05-16  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
-       (nvptx_name_replacement): Restore.  Add comment.
-       (write_fn_proto, write_fn_proto_from_insn,
-       nvptx_output_call_insn): Restore
-       (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
- 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.md
-       (add<mode>3_compareC_cconly_imm): Remove use of %w.
-       (add<mode>3_compareC_imm): Likewise.
-       (<optab>si3_uxtw): Split into register and immediate variants.
-       (andsi3_compare0_uxtw): Likewise.
-       (and<mode>3_compare0): Likewise.
-       (and<mode>3nr_compare0): Likewise.
-       (stack_protect_test_<mode>): Don't use %x for memory operands.
- 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
-       * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
- 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
-       Split integer shifts into shift_reg and bfm.
-       (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
-       (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
-       (ror<mode>3_insn): Likewise.
-       (<optab>si3_insn_uxtw): Likewise.
-       (<optab><mode>3_insn): Change to rotate_imm.
-       (extr<mode>5_insn_alt): Likewise.
-       (extrsi5_insn_uxtw): Likewise.
-       (extrsi5_insn_uxtw_alt): Likewise.
- 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
-       * doc/tm.texi: Regenerate.
-       * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
-       (TARGET_INVALID_RETURN_TYPE): Remove.
-       * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
-       TARGET_INVALID_RETURN_TYPE.
-       * target.def (invalid_parameter_type): Remove.
-       (invalid_return_type): Remove.
- 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
-       * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
-       on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
-       calls from thunk.
-       * ipa-inline-transform.c (inline_call): When inlining into thunk produce
-       gimple body.
-       (preserve_function_body_p): No need to preserve function body
-       * cif-codes.def (CIF_THUNK): Remove.
-       * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
- 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-inline.c (expand_call_inline): recurse after inlining thunk.
- 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
-       * tree.c (free_lang_data_in_decl): Also set target/optimization flags
-       for thunks.
- 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
-       * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
-       (inline_small_functions): Do not look for function symbol when
-       resetting caches.
- 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
-       * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
-       of inline thunks
- 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
-           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-           Jiong Wang  <jiong.wang@arm.com>
-       * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
-       for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
-       Define __ARM_FP16_ARGS when appropriate.
-       * config/arm/arm.c (arm_invalid_parameter_type): Remove
-       declaration.
-       (arm_invalid_return_type): Likewise.
-       (TARGET_INVALID_PARAMETER_TYPE): Remove.
-       (TARGET_INVALID_RETURN_TYPE): Remove.
-       (aapcs_vfp_sub_candidate): Allow HFmode.
-       (aapcs_vfp_allocate): Add comment.  Support HFmode.
-       (aapcs_vfp_allocate_return_reg): Likewise.
-       (struct aapcs_cp_arg_layout): Slightly reword comments for
-       is_return_candidate and allocate_return_reg.
-       (output_mov_vfp): Update assert.
-       (arm_hard_regno_mode_ok): Remove comment, update HF-mode
-       condition.
-       (arm_invalid_parameter_type): Remove.
-       (amr_invalid_return_type): Remove.
-       * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
-       * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
-       * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
- 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
-       * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
-       * config/aarch64/arch64-protos.h
-       (aarch64_legitimize_reload_address): Remove.
-       * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
-       Remove.
- 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
-       * configure.ac: Add ACX_NONCANONICAL_HOST.
-       * configure: Regenerate.
-       * Makefile.in: Set host_noncanonical.
- 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/71097
-       * config/i386/i386.md (*movtf_internal): Before register allocation,
-       do not allow FP constants for CM_MEDIUM memory model, allow only
-       standard FP constants for CM_LARGE and CM_LARGE_PIC models.
-       (*movxf_internal): Ditto.
-       (*movdf_internal): Ditto.
-       (*movsf_internal): Ditto.
- 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR rtl-optimization/67483
-       * combine.c (make_compound_operation): Don't call extract_left_shift
-       with negative shift amounts.
- 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
-       PR bootstrap/71071
-       * fold-const.c (fold_checksum_tree): Allow modification
-       of TYPE_ALIAS_SET during folding.
-       * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
-       ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
-       (ix86_split_to_parts): Likewise.  Fix up formatting.
- 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
-       * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
-       unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
-       printf format.
- 2016-05-13  Nathan Sidwell  <nathan@acm.org>
-       * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
-       (nvptx_name_replacement): Delete.
-       (write_fn_proto, write_fn_proto_from_insn,
-       nvptx_output_call_insn): Remove nvptx_name_replacement call.
-       (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
-       * langhooks.c (add_builtin_funcction_common): Call
-       targetm.mangle_decl_assembler_name.
-       * config/nvptx/nvptx.c (write_fn_proto): Handle
-       BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
- 2016-05-13  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
-       and PRIu64 in printf format.
- 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
-       comment.
- 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
-       Change --param max-completely-peeled-times to
-       --param max-completely-peel-times in dump file printing.
- 2016-05-13  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/42587
-       * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
-       (find_bswap_or_nop_1): Likewise.
-       (bswap_replace): Likewise.
- 2016-05-13  Martin Liska  <mliska@suse.cz>
-       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
-       Initialize a variable with default value.
- 2016-05-13  Martin Liska  <mliska@suse.cz>
-       * doc/invoke.texi: Enhance explanation of error recovery
-       of sanitizers.
- 2016-05-13  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
-       (struct cost_pair): Change inv_expr_id (int) to inv_expr
-       (iv_inv_expr_ent *).
-       (struct iv_inv_expr_ent): Comment struct fields.
-       (sort_iv_inv_expr_ent): New function.
-       (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
-       (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
-       a hash_map between iv_inv_expr_ent and number of usages.
-       (niter_for_exit): Fix coding style.
-       (tree_ssa_iv_optimize_init): Use renamed variable.
-       (determine_base_object): Fix coding style.
-       (alloc_iv): Likewise.
-       (find_interesting_uses_outside): Likewise.
-       (add_candidate_1): Likewise.
-       (add_standard_iv_candidates): Likewise.
-       (set_group_iv_cost): Replace inv_expr_id with inv_expr.
-       (prepare_decl_rtl): Fix coding style.
-       (get_address_cost): Likewise.
-       (get_shiftadd_cost): Likewise.
-       (force_expr_to_var_cost): Likewise.
-       (compare_aff_trees): Likewise.
-       (get_expr_id): Restructure the function.
-       (get_loop_invariant_expr_id): Renamed to
-       get_loop_invariant_expr.
-       (get_computation_cost_at): Replace usage of inv_expr_id with
-       inv_expr.
-       (get_computation_cost): Likewise.
-       (determine_group_iv_cost_generic): Likewise.
-       (determine_group_iv_cost_address): Likewise.
-       (iv_period): Fix coding style.
-       (iv_elimination_compare_lt): Likewise.
-       (may_eliminate_iv): Likewise.
-       (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
-       inv_expr.
-       (determine_group_iv_costs): Dump invariant expressions.
-       (iv_ca_recount_cost): Use the newly added hash_map.
-       (iv_ca_set_remove_invariants): Fix coding style.
-       (iv_ca_set_add_invariants): Fix coding style.
-       (iv_ca_set_no_cp): Utilize the newly added hash_map for used
-       invariants.
-       (iv_ca_set_cp): Likewise.
-       (iv_ca_new): Initialize the newly added hash_map and remove
-       initialization of fields.
-       (iv_ca_free): Delete the hash_map.
-       (iv_ca_dump): Dump invariant expressions.
-       (iv_ca_extend): Fix coding style.
-       (try_add_cand_for): Likewise.
-       (create_new_ivs): Dump information about # of avg iterations and
-       # of used invariant expressions.
-       (rewrite_use_compare): Fix coding style.
-       (free_loop_data): Set default value for max_inv_expr_id.
- 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
-       * cse.c (rest_of_handle_cse): Use cleanup_cfg
-       returned value cse_cfg_altered computation.
-       (rest_of_handle_cse2): Likewise.
-       (rest_of_handle_cse_after_global_opts): Likewise.
- 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       PR target/53440
-       * config/arm/arm.c (arm32_output_mi_thunk): New.
-       (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
-       to split Thumb1 vs TARGET_32BIT functionality.
-       (arm_thumb1_mi_thunk): New.
- 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
-       to true.
- 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       PR target/71080
-       * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
- 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
-       * builtins.c (expand_builtin_memcmp): Do not emit the call here.
-       (expand_builtin_trap): Emit a regular call.
-       (set_builtin_user_assembler_name): Remove obsolete cases.
-       * dse.c (scan_insn): Adjust.
-       * except.c: Include calls.h.
-       (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
-       emit a regular call to setjmp.
-       * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
-       (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
-       (emit_block_move_via_libcall): Delete.
-       (block_move_fn): Delete.
-       (init_block_move_fn): Likewise.
-       (emit_block_move_libcall_fn): Likewise.
-       (emit_block_op_via_libcall): New function.
-       (set_storage_via_libcall): Tidy up and use memset builtin.
-       (block_clear_fn): Delete.
-       (init_block_clear_fn): Likewise.
-       (clear_storage_libcall_fn): Likewise.
-       (expand_assignment): Call emit_block_move_via_libcall.
-       Do not include gt-expr.h.
-       * expr.h (emit_block_op_via_libcall): Declare.
-       (emit_block_copy_via_libcall): New inline function.
-       (emit_block_move_via_libcall): Likewise.
-       (emit_block_comp_via_libcall): Likewise.
-       (block_clear_fn): Delete.
-       (init_block_move_fn): Likewise.
-       (init_block_clear_fn): Likewise.
-       (emit_block_move_via_libcall): Likewise.
-       (set_storage_via_libcall): Add default parameter value.
-       * libfuncs.h (enum libfunc_index): Remove obsolete values.
-       (abort_libfunc): Delete.
-       (memcpy_libfunc): Likewise.
-       (memmove_libfunc): Likewise.
-       (memcmp_libfunc): Likewise.
-       (memset_libfunc): Likewise.
-       (setbits_libfunc): Likewise.
-       (setjmp_libfunc): Likewise.
-       (longjmp_libfunc): Likewise.
-       (profile_function_entry_libfunc): Likewise.
-       (profile_function_exit_libfunc): Likewise.
-       (gcov_flush_libfunc): Likewise.
-       * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
-       and DECL_VISIBILITY on the declaration.
-       (init_optabs): Do not initialize obsolete libfuncs.
-       * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
-       * tree-core.h (ECF_RET1): Define.
-       (ECF_TM_PURE): Adjust.
-       (ECF_TM_BUILTIN): Likewise.
-       * tree.c (set_call_expr_flags): Deal with ECF_RET1.
-       (build_common_builtin_nodes): Initialize abort builtin.
-       Add ECF_RET1 on memcpy, memmove and memset builtins.
-       Pass final flags for alloca and alloca_with_align builtins.
-       * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
-       obsolete builtins.
-       * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
-       * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
-       set_storage_via_libcall and call emit_block_copy_via_libcall.
- 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*call_got_x32): Change operand 0 to
-       DImode before it is passed to ix86_output_call_operand.
-       (*call_value_got_x32): Ditto for operand 1.
- 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
-       PR rtl-optimization/70904
-       * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
-       reload for wide mode.
- 2016-05-12  Marek Polacek  <polacek@redhat.com>
-       PR c/70756
-       * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
-       * langhooks.c (lhd_incomplete_type_error): Add location parameter.
-       * langhooks.h (incomplete_type_error): Likewise.
-       * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
-       parameter, pass it down to incomplete_type_error.
-       * tree.h (size_in_bytes): New inline overload.
-       (size_in_bytes_loc): Renamed from size_in_bytes.
- 2016-05-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71059
-       * tree-ssa-pre.c (phi_translate_1): Fully fold translated
-       nary before looking up or entering the expression into the VN
-       hashes.
-       * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
-       Make sure to re-use NARYs without result as inserted by
-       phi-translation.
- 2016-05-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71062
-       * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
-       field.
-       * tree-ssa-structalias.c (set_uids_in_ptset): Set
-       vars_contains_restrict if the var is a restrict tag.
-       * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
-       do not disambiguate pointers against it.
-       (dump_points_to_solution): Re-structure and adjust for new
-       vars_contains_restrict flag.
-       * gimple-pretty-print.c (pp_points_to_solution): Likewise.
- 2016-05-12  Martin Liska  <mliska@suse.cz>
-       * doc/invoke.texi: Explain connection between
-       -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
- 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR tree-optimization/71006
-       * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
-       consider COND_EXPR as a mask producer.
- 2016-05-12  Marek Polacek  <polacek@redhat.com>
-       PR driver/71063
-       * opts.c (common_handle_option): Detect missing argument for --help^.
- 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/70830
-       * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
-       when popping the PC and within an interrupt handler routine.
-       Add missing tab to output of "ldmfd".
-       (output_return_instruction): Output LDMFD with SP update rather
-       than POP when returning from interrupt handler.
- 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.md (isa): Add x64_avx512dq, enable if
-       TARGET_64BIT && TARGET_AVX512DQ.
-       * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
-       (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
-       (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
-       *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
-       (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
-       (*vec_extractv4si_zext): Add avx512dq alternative.
-       (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
-       use v instead of x constraint in other alternatives where possible.
-       * config/i386/sse.md (sse2_loadld): Use v instead of x
-       constraint in alternatives 0,1,4.
-       * config/i386/sse.md (pinsr_evex_isa): New mode attr.
-       (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
-       v constraints instead of x and <pinsr_evex_isa> isa attribute.
-       PR target/71019
-       * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
-       <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
-       is not emitted unless TARGET_AVX512BW.
-       (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
-       Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
-       for the result operand.
-       * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
-       constraint instead of x in avx alternatives.  Use maybe_evex instead
-       of vex prefix.
-       * config/i386/constraints.md (Yv): New constraint.
-       * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
-       TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
-       * config/i386/i386.md (avx512fvecmode): New mode attr.
-       (*pushtf): Use v constraint instead of x.
-       (*movtf_internal): Likewise.  For TARGET_AVX512VL and
-       xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
-       (*absneg<mode>2): Use Yv constraint instead of x constraint.
-       (*absnegtf2_sse): Likewise.
-       (copysign<mode>3_const, copysign<mode>3_var): Likewise.
-       * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
-       avx512f alternatives.
-       (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
- 2016-05-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71060
-       * tree-data-ref.c (initialize_data_dependence_relation): Do not
-       require exact match of DR_BASE_OBJECT but only matching address and
-       type.
- 2016-05-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70986
-       * cfganal.c: Include cfgloop.h.
-       (dfs_find_deadend): Prefer to take edges exiting loops.
- 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * gcc.target/powerpc/pr70963.c: Require at least power8 at both
-       compile and run time.
- 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
-       PR c/43651
-       * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
- 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (legitimize_pic_address): Use
-       copy_to_suggested_reg instead of gen_movsi.
- 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * config/rs6000/predicates.md (quad_memory_operand): Move most of
-       the code into quad_address_p and call it to share code with
-       vsx_quad_dform_memory_operand.
-       (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
-       d-form support.
-       * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
-       bit instead of being a separate word.  Split -mpower9-dform into
-       two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
-       * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
-       for the register class supporting 128-bit quad word memory offsets.
-       (mode_supports_vsx_dform_quad): Helper function to return if the
-       register class uses quad word memory offsets.
-       (rs6000_debug_addr_mask): Add support for quad word memory offsets.
-       (rs6000_debug_reg_global): Always print if we are using LRA or not.
-       (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
-       instructions are enabled, set up the appropriate addr_masks for
-       128-bit types.
-       (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
-       -mpower9-dform-scalar, instead of -mpower9-dform.
-       (rs6000_option_override_internal): Split -mpower9-dform into two
-       switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
-       -mpower9-dform switch sets or clears both.  If we are not using
-       the LRA register allocator, do not enable -mpower9-dform-vector by
-       default.  If we are using LRA, enable -mpower9-dform-vector and
-       -mvsx-timode if it is appropriate.  Issue a warning if either
-       -mpower9-dform-vector or -mvsx-timode are explicitly used without
-       enabling LRA.
-       (quad_address_offset_p): New helper function to return if the
-       offset is legal for quad word memory instructions.
-       (quad_address_p): New function to determin if GPR or vector
-       register quad word memory addresses are legal.
-       (mem_operand_gpr): Validate quad word address offsets.
-       (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
-       d-form (register + offset) instructions.
-       (offsettable_ok_by_alignment): Likewise.
-       (rs6000_legitimate_offset_address_p): Likewise.
-       (legitimate_lo_sum_address_p): Likewise.
-       (rs6000_legitimize_address): Likewise.
-       (rs6000_legitimize_reload_address): Add more debug statements for
-       -mdebug=addr.
-       (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
-       d-form instructions.
-       (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
-       d-form instructions.  Distinguish different cases in debug
-       output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
-       d-form instructions.
-       (rs6000_preferred_reload_class): Likewise.
-       (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
-       instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
-       of the ISA 2.06 indexed memory instructions.
-       (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
-       use them to save/restore the saved vector registers instead of
-       using Altivec instructions.
-       (rs6000_emit_epilogue): Likewise.
-       (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
-       (rs6000_opt_masks): Split -mpower9-dform into
-       -mpower9-dform-scalar and -mpower9-dform-vector.
-       (rs6000_print_options_internal): Print -mno-<switch> if <switch>
-       was not selected.
-       * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
-       ISA 3.0 vector indexed memory instructions, and fold the code into
-       the normal mov<mode> patterns.
-       (p9_vecstore_<mode>): Likewise.
-       (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
-       instructions.
-       (vsx_movti_64bit): Likewise.
-       (vsx_movti_32bit): Likewise.
-       * config/rs6000/constraints.md (wO constraint): New constraint for
-       ISA 3.0 vector d-form support.
-       * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
-       -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
-       include -mpower9-dform-vector until we switch over to LRA.
-       (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
-       switches, -mpower9-dform-scalar and -mpower9-dform-vector.
-       * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
-       * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
-       for -mpower9-dform and -mlra.
-       * doc/md.texi (wO constraint): Document wO constraint.
- 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
-       * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
-       'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
-       * genautomata.c (output_internal_insn_code_evaluation): Simplify.
-       Move handling of non-insn arguments inline into the sole user:
-       (output_trans_func): ...here.
-       (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
-       in emitted function prototype.
-       (output_internal_insn_latency_func): Ditto.  Simplify.
-       (output_internal_maximal_insn_latency_func): Ditto.  Delete
-       always-unused argument.
-       (output_insn_latency_func): Ditto.
-       (output_maximal_insn_latency_func): Ditto.
- 2016-05-11  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71055
-       * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
-       sth with precision not equal to access size verify we don't chop
-       off bits.
- 2016-05-11  Richard Biener  <rguenther@suse.de>
-       PR debug/71057
-       * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
-       (dwarf2out_finish): Move retry_incomplete_types call ...
-       (dwarf2out_early_finish): ... here.
- 2016-05-11  Richard Biener  <rguenther@suse.de>
-       PR middle-end/71002
-       * alias.c (reference_alias_ptr_type): Preserve alias-set zero
-       if the langhook insists on it.
-       * fold-const.c (make_bit_field_ref): Add arg for the original
-       reference and preserve its alias-set.
-       (decode_field_reference): Take exp by reference and adjust it
-       to the original memory reference.
-       (optimize_bit_field_compare): Adjust callers.
-       (fold_truth_andor_1): Likewise.
-       * gimplify.c (gimplify_expr): Adjust in-SSA form test.
- 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR middle-end/70807
-       * cfgrtl.h (delete_insn_and_edges): Now return bool.
-       * cfgrtl.c (delete_insn_and_edges): Likewise.
-       * config/i386/i386.c (convert_scalars_to_vector): Remove
-       redundant code.
-       * cse.c (cse_insn): Compute cse_cfg_altered.
-       (delete_trivially_dead_insns): Likewise.
-       (cse_cc_succs): Likewise.
-       (rest_of_handle_cse): Free dominance info if required.
-       (rest_of_handle_cse2): Likewise.
-       (rest_of_handle_cse_after_global_opts): Likewise.
- 2016-05-11  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (is_complex_IBM_long_double,
-       abi_v4_pass_in_fpr): New functions.
-       (rs6000_function_arg_boundary): Exclude complex IBM long double
-       from 64-bit alignment when ABI_V4.
-       (rs6000_function_arg, rs6000_function_arg_advance_1,
-       rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
- 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
-       PR rtl-optimization/71028
-       * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
-       jump with just a return in the fallthrough block if the branch
-       block contains just a return as well.
- 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
-       * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
-       * match.pd ((X & Y) ^ Y): ... this.
-       ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
-       | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
- 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
-       * read-md.c (require_char_ws): New function.
-       (read_string): Simplify using require_char_ws.
-       (handle_constants): Likewise.
-       (handle_enum): Likewise.
-       (handle_file): Likewise.
-       * read-md.h (require_char_ws): New declaration.
-       * read-rtl.c (read_conditions): Simplify using require_char_ws.
-       (read_mapping): Likewise.
-       (read_rtx_code): Likewise.
-       (read_nested_rtx): Likewise.
- 2016-05-10  James Norris  <jnorris@codesourcery.com>
-       * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
-       if offloading is enabled and -fopenacc or -fopenmp is specified.
-       (CRTOFFLOADEND): Likewise.
-       (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
-       (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
- 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
-       gotoff_operand code paths.  Use copy_to_suggested_regs and
-       expand_simple_binop where appropriate.  Cleanup.
- 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR target/70799
-       * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
-       integer constants.
-       (dimode_scalar_chain::vector_const_cost): New.
-       (dimode_scalar_chain::compute_convert_gain): Handle constants.
-       (dimode_scalar_chain::convert_op): Likewise.
-       (dimode_scalar_chain::convert_insn): Likewise.
- 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
-       * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
-       unary operation, not a binary one.
- 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR middle-end/70877
-       * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
-       calls with type casted fndecl.
- 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
-       PR tree-optimization/70786
-       * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
-       * calls.c (initialize_argument_information): Bind bounds
-       with corresponding args passed by reference.
- 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
-       PR target/70927
-       * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
-       *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
-       use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
-       accordingly.
- 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       PR target/70963
-       * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
-       code for a zero scale factor.
-       (vsx_xvcvdpuxds_scale): Likewise.
- 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
-       * diagnostic-show-locus.c (layout::layout): Call show_ruler
-       if show_ruler_p was set on the context.
-       (layout::show_ruler): New method.
-       * diagnostic.h (struct diagnostic_context): Add field
-       "show_ruler_p".
- 2016-05-10  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/71039
-       * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
-       (chk_uses): New function.
-       (propagate_with_phi): Verify we can safely replicate the lhs of an
-       aggregate assignment on all incoming edges.
- 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
-       Forward declare.
-       (rx_atomic_sequence): New class.
-       * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
-       (is_interrupt_func, is_fast_interrupt_func): Make non-static and
-       non-inline.
-       (rx_atomic_sequence::rx_atomic_sequence,
-       rx_atomic_sequence::~rx_atomic_sequence): New functions.
-       * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
-       CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
-       CTRLREG_INTB): New constants.
-       (FETCHOP): New code iterator.
-       (fethcop_name, fetchop_name2): New iterator code attributes.
-       (QIHI): New mode iterator.
-       (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
-       atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
-       atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
- 2016-05-10  Martin Liska  <mliska@suse.cz>
-       * tree-inline.c (remap_dependence_clique): Do not remap
-       debugging statements.
- 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
-       ("*fixuns_truncdfdi2_z13")
-       ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
-       ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
-       ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
- 2016-05-10  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70497
-       PR tree-optimization/28367
-       * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
-       split out from ...
-       (visit_reference_op_load): ... here.
-       (vn_reference_lookup_3): Use it to handle subreg-like accesses
-       with simplified BIT_FIELD_REFs.
-       * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
-       * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
-       correctly.
- 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
-       * dwarf2out.c (add_abstract_origin_attribute): Adjust
-       documentation comment.  For BLOCK nodes, add a
-       DW_AT_abstract_origin attribute that points to the DIE generated
-       for the origin BLOCK.
-       (gen_lexical_block_die): Call add_abstract_origin_attribute for
-       blocks from inlined functions.
- 2016-05-10  Alan Modra  <amodra@gmail.com>
-       PR target/70947
-       * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
-       regrename modifying insns saving lr before __morestack call.
-       * config/rs6000/rs6000.md (split_stack_return): Similarly for
-       insns restoring lr after __morestack call.
- 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
-       lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
-       expanders.
-       * config/i386/sse.md (vec_interleave_high<mode>,
-       vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
-       <avx512>_vpermt2var<mode>3_maskz): Likewise.
- 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
-       function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
-       parallel reassociation for power8 and forward.
- 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (absneg splitters with general regs): Use
-       general_reg_operand predicate.
-       (btsq peephole2): Use x86_64_immediate_operand to check if new
-       value is suitable for immediate operand.  Generate emitted insn
-       using RTL expressions.
-       (btcq peephole2): Ditto.
-       (btrq peephole2): Ditto.  Generate correct immediate operand
-       for AND masking.
- 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
-       * cfgexpand.c (expand_debug_expr): Fix address offset for negative
-       bitpos.
- 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree-affine.c (wide_int_constant_multiple_p): Add missing
-       pointer dereference.
- 2016-05-09  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70985
-       * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
-       op0 isn't a gimple register.
- 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
-       * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
-       (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
-       (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
-       (i6400_fpu_mult): New cpu units.
-       (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
-       (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
-       (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
-       (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
-       (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
-       (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
-       (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
-       (i6400_msa_long_float4, i6400_msa_long_float5)
-       (i6400_msa_long_float8, i6400_msa_fdiv_df)
-       (i6400_msa_fdiv_sf): New reservations.
-       * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
-       (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
-       (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
-       (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
-       (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
-       (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
-       (msa_short_cmp, msa_short_float2, msa_short_logic3)
-       (msa_short_store4, msa_long_load, msa_short_store)
-       (msa_long_logic, msa_long_float2, msa_long_float4)
-       (msa_long_float5, msa_long_float8, msa_long_mult)
-       (msa_long_fdiv, msa_long_div): New reservations.
- 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
-           Sameera Deshpande  <sameera.deshpande@imgtec.com>
-           Matthew Fortune  <matthew.fortune@imgtec.com>
-           Graham Stott  <graham.stott@imgtec.com>
-           Chao-ying Fu  <chao-ying.fu@imgtec.com>
-       * config.gcc: Add MSA header file for mips*-*-* target.
-       * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
-       (Ubv8i, Urv8):  New constraints.
-       * config/mips/mips-ftypes.def: Add function types for MSA
-       builtins.
-       * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
-       (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
-       * config/mips/mips-msa.md: New file.
-       * config/mips/mips-protos.h
-       (mips_split_128bit_const_insns): New prototype.
-       (mips_msa_idiv_insns): Likewise.
-       (mips_split_128bit_move): Likewise.
-       (mips_split_128bit_move_p): Likewise.
-       (mips_split_msa_copy_d): Likewise.
-       (mips_split_msa_insert_d): Likewise.
-       (mips_split_msa_fill_d): Likewise.
-       (mips_expand_msa_branch): Likewise.
-       (mips_const_vector_same_val_p): Likewise.
-       (mips_const_vector_same_bytes_p): Likewise.
-       (mips_const_vector_same_int_p): Likewise.
-       (mips_const_vector_shuffle_set_p): Likewise.
-       (mips_const_vector_bitimm_set_p): Likewise.
-       (mips_const_vector_bitimm_clr_p): Likewise.
-       (mips_msa_vec_parallel_const_half): Likewise.
-       (mips_msa_output_division): Likewise.
-       (mips_ldst_scaled_shift): Likewise.
-       (mips_expand_vec_cond_expr): Likewise.
-       * config/mips/mips.c (enum mips_builtin_type): Add
-       MIPS_BUILTIN_MSA_TEST_BRANCH.
-       (mips_gen_const_int_vector_shuffle): New prototype.
-       (mips_const_vector_bitimm_set_p): New function.
-       (mips_const_vector_bitimm_clr_p): Likewise.
-       (mips_const_vector_same_val_p): Likewise.
-       (mips_const_vector_same_bytes_p): Likewise.
-       (mips_const_vector_same_int_p): Likewise.
-       (mips_const_vector_shuffle_set_p): Likewise.
-       (mips_symbol_insns): Forbid loading symbols via immediate for
-       MSA.
-       (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
-       stores.
-       (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
-       MSA.
-       (mips_lx_address_p): Add support load indexed address for MSA.
-       (mips_address_insns): Add calculation of instructions needed for
-       stores and loads for MSA.
-       (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
-       CONST_VECTOR for MSA and let it fall through.
-       (mips_ldst_scaled_shift): New function.
-       (mips_subword_at_byte): Likewise.
-       (mips_msa_idiv_insns): Likewise.
-       (mips_legitimize_move): Validate MSA moves.
-       (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
-       calculation of costs for MSA division.
-       (mips_split_move_p): Check if MSA moves need splitting.
-       (mips_split_move): Split MSA moves if necessary.
-       (mips_split_128bit_move_p): New function.
-       (mips_split_128bit_move): Likewise.
-       (mips_split_msa_copy_d): Likewise.
-       (mips_split_msa_insert_d): Likewise.
-       (mips_split_msa_fill_d): Likewise.
-       (mips_output_move): Handle MSA moves.
-       (mips_expand_msa_branch): New function.
-       (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
-       Reinstate 'y' modifier.
-       (mips_file_start): Add MSA .gnu_attribute.
-       (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
-       FPRs.
-       (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
-       (mips_class_max_nregs): Add register size for MSA supported mode.
-       (mips_cannot_change_mode_class): Allow conversion between MSA
-       vector modes and TImode.
-       (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
-       instruction.
-       (mips_secondary_reload_class): Force MSA loads/stores via memory.
-       (mips_preferred_simd_mode): Add preffered modes for MSA.
-       (mips_vector_mode_supported_p): Add MSA supported modes.
-       (mips_autovectorize_vector_sizes): New function.
-       (mips_msa_output_division): Likewise.
-       (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
-       (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
-       (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
-       (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
-       (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
-       (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
-       (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
-       (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
-       (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
-       (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
-       (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
-       (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
-       (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
-       (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
-       (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
-       (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
-       (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
-       (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
-       (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
-       (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
-       (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
-       (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
-       (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
-       (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
-       (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
-       (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
-       (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
-       (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
-       (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
-       (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
-       (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
-       (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
-       (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
-       (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
-       (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
-       (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
-       (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
-       (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
-       (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
-       (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
-       (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
-       (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
-       (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
-       (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
-       (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
-       (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
-       (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
-       (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
-       (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
-       (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
-       (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
-       (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
-       (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
-       (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
-       (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
-       (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
-       (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
-       (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
-       (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
-       (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
-       (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
-       (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
-       (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
-       (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
-       (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
-       (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
-       (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
-       (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
-       (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
-       (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
-       (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
-       (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
-       (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
-       (CODE_FOR_msa_ldi_d): New code_aliasing macros.
-       (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
-       slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
-       srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
-       srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
-       srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
-       srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
-       bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
-       bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
-       bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
-       binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
-       binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
-       binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
-       addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
-       subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
-       max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
-       max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
-       maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
-       mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
-       mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
-       min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
-       ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
-       clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
-       clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
-       clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
-       clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
-       clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
-       st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
-       sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
-       adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
-       adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
-       ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
-       aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
-       aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
-       subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
-       subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
-       subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
-       asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
-       maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
-       msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
-       div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
-       hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
-       hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
-       mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
-       dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
-       dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
-       dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
-       sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
-       splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
-       pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
-       ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
-       ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
-       ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
-       ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
-       bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
-       fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
-       pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
-       nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
-       copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
-       insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
-       bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
-       fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
-       fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
-       fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
-       fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
-       fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
-       fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
-       fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
-       fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
-       fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
-       fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
-       mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
-       msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
-       fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
-       flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
-       ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
-       ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
-       ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
-       move_v builtins.
-       (mips_get_builtin_decl_index): New array.
-       (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
-       (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
-       (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
-       (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
-       (mips_init_builtins): Initialize mips_get_builtin_decl_index
-       array.
-       (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
-       hook.
-       (mips_expand_builtin_insn): Prepare operands for
-       CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
-       CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
-       CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
-       CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
-       CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
-       CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
-       CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
-       CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
-       CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
-       CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
-       CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
-       CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
-       CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
-       CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
-       CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
-       CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
-       CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
-       CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
-       CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
-       CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
-       CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
-       CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
-       CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
-       CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
-       CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
-       CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
-       CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
-       CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
-       CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
-       CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
-       CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
-       CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
-       CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
-       CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
-       CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
-       CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
-       CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
-       CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
-       CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
-       CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
-       CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
-       (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
-       (mips_set_compression_mode): Disallow MSA with MIPS16 code.
-       (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
-       These are set implicitly and an error is reported if overridden.
-       (mips_expand_builtin_msa_test_branch): New function.
-       (mips_expand_msa_shuffle): Likewise.
-       (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
-       (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
-       (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
-       (mips_expand_vec_unpack): Add support for MSA.
-       (mips_expand_vector_init): Likewise.
-       (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
-       instead of const0_rtx.
-       (mips_msa_vec_parallel_const_half): New function.
-       (mips_gen_const_int_vector): Likewise.
-       (mips_gen_const_int_vector_shuffle): Likewise.
-       (mips_expand_msa_cmp): Likewise.
-       (mips_expand_vec_cond_expr): Likewise.
-       * config/mips/mips.h
-       (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
-       (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
-       specified.
-       (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
-       (ISA_HAS_MSA): New macro.
-       (UNITS_PER_MSA_REG): Likewise.
-       (BITS_PER_MSA_REG): Likewise.
-       (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
-       (MSA_REG_FIRST): New macro.
-       (MSA_REG_LAST): Likewise.
-       (MSA_REG_NUM): Likewise.
-       (MSA_REG_P): Likewise.
-       (MSA_REG_RTX_P): Likewise.
-       (MSA_SUPPORTED_MODE_P): Likewise.
-       (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
-       (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
-       * config/mips/mips.md: Include mips-msa.md.
-       (alu_type): Add simd_add.
-       (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
-       (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
-       simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
-       simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
-       simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
-       simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
-       simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
-       simd_move, simd_load, simd_store.  Choose "multi" for moves
-       for "qword_mode".
-       (qword_mode): New attribute.
-       (insn_count): Add instruction count for quad moves.
-       Increase the count for MIPS SIMD division.
-       (UNITMODE): Add UNITMODEs for vector types.
-       (addsub): New code iterator.
-       * config/mips/mips.opt (mmsa): New option.
-       * config/mips/msa.h: New file.
-       * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
-       specified.
-       * config/mips/mti-linux.h: Likewise.
-       * config/mips/predicates.md
-       (const_msa_branch_operand): New constraint.
-       (const_uimm3_operand): Likewise.
-       (const_uimm4_operand): Likewise.
-       (const_uimm5_operand): Likewise.
-       (const_uimm8_operand): Likewise.
-       (const_imm5_operand): Likewise.
-       (aq10b_operand): Likewise.
-       (aq10h_operand): Likewise.
-       (aq10w_operand): Likewise.
-       (aq10d_operand): Likewise.
-       (const_m1_operand): Likewise.
-       (reg_or_m1_operand): Likewise.
-       (const_exp_2_operand): Likewise.
-       (const_exp_4_operand): Likewise.
-       (const_exp_8_operand): Likewise.
-       (const_exp_16_operand): Likewise.
-       (const_vector_same_val_operand): Likewise.
-       (const_vector_same_simm5_operand): Likewise.
-       (const_vector_same_uimm5_operand): Likewise.
-       (const_vector_same_uimm6_operand): Likewise.
-       (const_vector_same_uimm8_operand): Likewise.
-       (par_const_vector_shf_set_operand): Likewise.
-       (reg_or_vector_same_val_operand): Likewise.
-       (reg_or_vector_same_simm5_operand): Likewise.
-       (reg_or_vector_same_uimm6_operand): Likewise.
-       * doc/extend.texi (MIPS SIMD Architecture Functions): New
-       section.
-       * doc/invoke.texi (-mmsa): Document new option.
- 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
-       * configure: Regenerate.
-       * config.in: Regenerate.
-       * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
-       on -fvtable-verify.
-       * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
-       (ENDFILE_VTV_SPEC): Define.
- 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
-       * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
-       registers in all interrupt handlers if necessary.
-       (rl78_option_override): Add warning.
-       (MUST_SAVE_MDUC_REGISTERS): New macro.
-       (rl78_expand_epilogue): Restore the MDUC registers if necessary.
-       * config/rl78/rl78.c (check_mduc_usage): New function.
-       (mduc_regs): New structure to hold MDUC register data.
-       * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
-       (mulsi3_g13): Add is_g13_muldiv_insn attribute.
-       (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
-       (mulhi3_g13): Add is_g13_muldiv_insn attribute.
-       * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
-       * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
- 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
-       * tree-if-conv.c (tree-ssa-loop.h): Include header file.
-       (tree-ssa-loop-niter.h): Ditto.
-       (idx_within_array_bound, ref_within_array_bound): New functions.
-       (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
-       Factor out check on writable base object to ...
-       (base_object_writable): ... here.
- 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * config/arm/arm.md (probe_stack): Add modes to set source
-       and destination.
- 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
-       * regrename.c (base_reg_class_for_rename): New static function.
-       (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
- 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
-       * cgraph.c (thunk_adjust): Export.
-       * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
-       * cgraphunit.c (thunk_adjust): Export.
-       (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
-       thunks.
-       * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
-       inlinable.
-       * tree-inline.c (expand_call_inline): Expand thunks inline.
- 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/70998
-       * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
-       (*sse2_vd_cvtss2sd): Ditto.
-       * config/i386/i386.md
-       (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
-       Generate *sse2_vd_cvtsd2ss pattern.
-       (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
-       Generate *sse2_vd_cvtss2sd pattern.
- 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
-       * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
-       users.
- 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
-       * config/sh/sh.c: Define and declare variables on first use throughout
-       the file.
-       (current_function_interrupt): Change to bool type.
-       (frame_insn): Rename to emit_frame_insn and update users.
-       (push_regs): Use bool for 'interrupt_handler' argument.
-       (save_schedule_s): Remove.
-       (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
-       (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
-       targetm.asm_out.unaligned_op.di.
-       (gen_far_branch): Remove redundant forward declaration.
-       (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
-       MAX_TEMPS, save_schedule_ssave_schedule): Remove.
-       (sh_set_return_address, sh_function_ok_for_sibcall,
-       scavenge_reg): Update comments.
-       (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
-       (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
-       (sh_attr_renesas_p): Remove unnecessary parentheses.
-       (branch_dest): Simplify.
-       * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
-       Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
-       (CUMULATIVE_ARGS): Change macro to typedef.
-       (current_function_interrupt): Change to bool type.
-       (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
-       Surround with __cplusplus ifdef.
-       (sh_compare_op0, sh_compare_op1): Remove.
-       (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
- 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
-       * config/arm/arm.md: (arch): Add neon.
-       (arch_enabled): Return yes for arch neon when TARGET_NEON.
-       * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
-       neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
-       Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
-       attributes for alt renumbering.  Mark alt 3 as non-predicable.
-       (thumb2_movdf_vfp): Likewise.
- 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
-       to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
-       (*andqi_1): Add preferred_for_speed attribute to disparage
-       alternative 2 for TARGET_PARTIAL_REG_STALL targets.
-       (*<code>qi_1): Ditto.
-       (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
-       alternative 1 for TARGET_PARTIAL_REG_STALL targets.
-       (*ashlqi3_1): Ditto.
-       (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
-       Add preferred_for_size attribute to disparage alternative 0 and
-       preferred_for_speed attribute to disparage alternative 1 for
-       TARGET_PARTIAL_REG_STALL targets.
- 2016-05-07  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/70956
-       * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
-       def.
- 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
-       * config/sh/sh.c (sh_cbranch_distance): Implement it.
-       * config/sh/sh.md (branch_zero): Remove define_attr.
-       (define_delay): Disable delay slot if branch distance is one insn.
- 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (LEAMODE): New mode attribute.
-       (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
-       (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
-       and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
-       operand 2 predicate.
-       (*lea<mode>_general_2): Use VOIDmode for const248_operand.
-       (*lea<mode>_general_3): Ditto.
-       (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
- 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
-       * genmddump.c (main): Convert argv from char ** to const char **.
- 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
-       * coretypes.h (OVERRIDE): New macro.
-       (FINAL): New macro.
- 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
-       allow coalescing if the types are compatible.
- 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
-       * pass_manager.h (pass_manager::register_pass_name): New method.
-       (pass_manager::get_pass_by_name): New method.
-       (pass_manager::create_pass_tab): New method.
-       (pass_manager::m_name_to_pass_map): New field.
-       * passes.c (name_to_pass_map): Delete global in favor of field
-       "m_name_to_pass_map" of pass_manager.
-       (register_pass_name): Rename from a function to...
-       (pass_manager::register_pass_name): ...this method, updating
-       for renaming of global "name_to_pass_map" to field
-       "m_name_to_pass_map".
-       (create_pass_tab): Rename from a function to...
-       (pass_manager::create_pass_tab): ...this method, updating
-       for renaming of global "name_to_pass_map" to field.
-       (get_pass_by_name): Rename from a function to...
-       (pass_manager::get_pass_by_name): ...this method.
-       (enable_disable_pass): Convert use of get_pass_by_name to
-       a method call, locating the pass_manager singleton.
- 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
-       * genattr-common.c (main): Convert argv from char ** to const char **.
-       * genattr.c (main): Likewise.
-       * genattrtab.c (main): Likewise.
-       * genautomata.c (initiate_automaton_gen): Likewise.
-       (main): Likewise.
-       * gencodes.c (main): Likewise.
-       * genconditions.c (main): Likewise.
-       * genconfig.c (main): Likewise.
-       * genconstants.c (main): Likewise.
-       * genemit.c (main): Likewise.
-       * genenums.c (main): Likewise.
-       * genextract.c (main): Likewise.
-       * genflags.c (main): Likewise.
-       * genmddeps.c (main): Likewise.
-       * genopinit.c (main): Likewise.
-       * genoutput.c (main): Likewise.
-       * genpeep.c (main): Likewise.
-       * genpreds.c (main): Likewise.
-       * genrecog.c (main): Likewise.
-       * gensupport.c (init_rtx_reader_args_cb): Likewise.
-       (init_rtx_reader_args): Likewise.
-       * gensupport.h (init_rtx_reader_args_cb): Likewise.
-       (init_rtx_reader_args): Likewise.
-       * gentarget-def.c (main): Likewise.
-       * read-md.c (read_md_files): Likewise.
-       * read-md.h (read_md_files): Likewise.
- 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
-       instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
-       * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
-       Remove unused predicate.
-       (register_and_not_fp_reg_operand): Ditto.
- 2016-05-06  Martin Liska  <mliska@suse.cz>
-       * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
-       instead of vec as the vector is local to the function.
- 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
-       avx512bw alternative.
-       * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
-       before the ashr<mode>3 pattern.
-       * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
-       v instead of x in vex or maybe_vex alternatives, use
-       maybe_evex instead of vex in prefix.
-       * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
-       *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
-       vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
-       in vex or maybe_vex alternatives, use maybe_evex instead of vex
-       in prefix.
-       * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
-       v instead of x in vex or maybe_vex alternatives, use
-       maybe_evex instead of vex in prefix.
-       * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
-       sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
-       sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
-       sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
-       alternatives, use maybe_evex instead of vex in prefix.
-       * config/i386/sse.md (vec_interleave_lowv4sf,
-       *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
-       v instead of x in vex or maybe_vex alternatives, use
-       maybe_evex instead of vex in prefix.
-       * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
-       v instead of x in vex or maybe_vex alternatives, use
-       maybe_evex instead of vex in prefix.
-       * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
-       v constraint instead of x.
- 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
-       * gimple.c (gimple_call_same_target_p): Unique functions are eq.
-       * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
-       equality first.
- 2016-05-06  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70948
-       * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
-       Properly clobber all fields of va_list for __builtin_va_start.
- 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR debug/70935
-       * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
-       loop latch destination.
- 2016-05-06  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-uninit.c: Apply manual changes
-       to the GNU coding style.
-       (prune_uninit_phi_opnds): Rename from
-       prune_uninit_phi_opnds_in_unrealizable_paths.
- 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
-       mspace): Remove deprecated options.
-       * doc/invoke.texi (SH options): Remove -mspace.
- 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
- 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
-       corresponding combine split pattern.
- 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/58219
-       * config/sh/predicates.md (long_displacement_mem_operand): New.
-       * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
-       Add movi20, movi20s alternatives.  Adjust length attribute for
-       alternatives.
-       (movsi_ie): Allow for any FPU.  Adjust length attribute for
-       alternatives.
-       (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
-       attribute for alternatives.
-       (*mov<mode>): Use long_displacement_mem_operand for length attribute.
-       (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
-       length attribute for alternatives.
- 2016-05-06  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70960
-       * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
- 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/52933
-       * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
-       * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
- 2016-05-06  Marek Polacek  <polacek@redhat.com>
-       PR sanitizer/70875
-       * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
- 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/54089
-       * config/sh/sh.md (*rotcr): Add another variant.
- 2016-05-06  Richard Biener  <rguenther@suse.de>
-       PR middle-end/70931
-       * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
- 2016-05-06  Richard Biener  <rguenther@suse.de>
-       PR middle-end/70941
-       * fold-const.c (split_tree): Always convert to the original type
-       before negating.
- 2016-05-06  Richard Biener  <rguenther@suse.de>
-       * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
-       (fwprop_addr): Likewise.
- 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/70873
-       * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
-       New prototype.
-       * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
-       * config/i386/i386.md (push mem splitter): Use find_constant_src in
-       the splitter condition.
-       (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
-       the splitter condition.
-       (FP float_extend load splitter): Ditto.
- 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (peehole2 patterns): Change true_regnum
-       to REGNO in all peephole2 patterns.
-       (post-reload splitters): Change true_regnum to REGNO in
-       post-reload splitters.
-       (zero_extend splitters): Use general_reg_operand and
-       nonimmediate_gr_operand predicates.
- 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
-       v constraint instead of x.
- 2016-05-05  Alan Modra  <amodra@gmail.com>
-       PR target/68662
-       * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
-       set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
-       TARGET_NO_FP_IN_TOC for -mrelocatable.
-       (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
-       TARGET_RELOCATABLE test.
-       (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
-       (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
-       * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
-       (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
-       (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
-       * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
-       (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
-       (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
-       * config/rs6000/predicates.md (easy_fp_constant): Likewise.
-       * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
-       Likewise.
-       (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
-       (rs6000_stack_info): Likewise.
-       (rs6000_elf_asm_out_constructor): Likewise.
-       (rs6000_elf_asm_out_destructor): Likewise.
-       (rs6000_elf_declare_function_name): Likewise.
-       * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
-       * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
-       Don't define.
- 2016-05-05  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
- 2016-05-05  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
-       out-of-line gpr restore for one or two regs if that would add
-       a save of lr.
- 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/70873
-       * config/i386/i386.md
-       (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
-       Change to post-epilogue_completed late splitter.  Use sse_reg_operand
-       as operand 0 predicate.
-       (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
-       Ditto.
-       (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
-       Ditto.  Emit the pattern using RTX.
-       (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
-       Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
-       the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
-       (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
-       Ditto.
-       (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
-       sse_reg_operand as operand 0 predicate.
-       (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
-       Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
-       instead of gen_rtx_REG.
-       (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
-       Ditto.
- 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
-       * function.c (emit_use_return_register_into_block): Delete.
-       (gen_return_pattern): Delete.
-       (emit_return_into_block): Delete.
-       (active_insn_between): Delete.
-       (convert_jumps_to_returns): Delete.
-       (emit_return_for_exit): Delete.
-       (thread_prologue_and_epilogue_insns): Delete all code dealing with
-       simple_return for shrink-wrapped blocks.
-       * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
-       end of blocks that need one.
-       (get_unconverted_simple_return): Delete.
-       (convert_to_simple_return): Delete.
-       * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
-       (convert_to_simple_return): Ditto.
- 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
-       * cfgcleanup.c (bb_is_just_return): New function.
-       (try_optimize_cfg): Simplify jumps to return, branches to return,
-       and branches around return.
- 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
-       * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
-       branch to a return.
- 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/70906
-       PR c++/70933
-       * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
-       * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
-       assert flags & OEP_HASH_CHECK, instead of asserting it
-       never happens.  Handle TARGET_EXPR.
-       * fold-const.c (operand_equal_p): For hash verification,
-       or in OEP_HASH_CHECK into flags.
- 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
-       comment.
-       (compute_samebase_partition_bases): Fix typo.
- 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/sse.md (vec_interleave_highv8sf,
-       vec_interleave_lowv8sf, vec_interleave_highv4df,
-       vec_interleave_lowv4df): Remove constraints from expanders.
-       * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
- 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-inline.c (expand_call_inline): Fix path dealing with
-       making lhs of call statement undefined.
- 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
-       * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
-       Check availability on NODE, too.
-       * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
-       (cgraph_node::call_for_symbol_and_aliases): Likewise.
-       (varpool_node::call_for_symbol_and_aliase): Likewise.
-       * ipa-pure-const.c (add_new_function): Analyze all bodies.
-       (propagate_pure_const): Propagate across interposable functions, too.
-       (skip_function_for_local_pure_const): Do not skip interposable bodies
-       with aliases.
-       (pass_local_pure_const::execute): Update.
- 2016-05-04  Marek Polacek  <polacek@redhat.com>
-       * doc/invoke.texi: Document -Wdangling-else.
- 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-       * config.gcc: Error out when conflicting multilib is detected.  Do not
-       loop over multilibs since no combination is legal.
- 2016-05-04  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
-       * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
-       * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
-       Align .toc.
- 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
-       * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
-       Clean up p5600 comments.
- 2016-05-04  Richard Biener  <rguenther@suse.de>
-       * match.pd: Add BIT_FIELD_REF canonicalizations and vector
-       constructor simplifications.
-       * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
- 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
-       * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
-       result.set_rtx is null instead of aborting.
-       * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
-       Always enable.
-       (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
-       * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
-       *mov<mode>_store_postinc): New patterns.
- 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
-       * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
-       as commutative.  Check both conversions are NOP.
-       ((A & B) OP (C & B)): Remove.
- 2016-05-04  Alan Modra  <amodra@gmail.com>
-       * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
- 2016-05-04  Alan Modra  <amodra@gmail.com>
-       PR target/70866
-       * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
-       when cr2,3,4 are all fixed regs.
- 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
-       PR rtl-optimization/57193
-       * opts.c (default_options_table): Revert OPT_frename_registers change.
-       * doc/invoke.texi (-frename-registers, -O2): Likewise.
- 2016-05-03  Martin Sebor  <msebor@redhat.com>
-       PR c++/66561
-       * builtins.c (fold_builtin_FILE): New function.
-       (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
-       (fold_builtin_0): Call them.
-       * gimplify.c (gimplify_call_expr): Remove the handling of
-       BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
-       PR c++/66561
-       * doc/extend.texi (Other Builtins): Update __builtin_FILE,
-       __builtin_FUNCTION, and __builtin_LINE to reflect they yield
-       constants.
-       PR c++/66639
-       * doc/extend.texi (Function Names as Strings): Update __func__,
-       __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
-       constants.
- 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
-           Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70916
-       * tree-if-conv.c: Include cfganal.h.
-       (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
-       and remove_fake_exit_edges around the optimization pass.
- 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
-       * cgraph.c (symbol_table::create_edge): Set inline_failed.
-       (cgraph_edge::make_direct): Likewise.
-       (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
-       * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
-       * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
-       (CIF_THUNK): New code.
-       * ipa-inline-analysis.c (initialize_inline_failed): Preserve
-       CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
-       (compute_inline_parameters): Set inline_failed for thunks.
-       (inline_analyze_function): Cleanup.
-       * ipa-inline.c (can_inline_edge_p): Do not deal with
-       call_stmt_cannot_inline_p.
-       (can_early_inline_edge_p): Likewise.
-       (early_inliner): Initialize inline_failed.
-       * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
- 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
-       from nonimm_ssenomem_operand.
-       (nonimm_ssenomem_operand): New predicate.
-       * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
-       as operand 0 predicate.
-       (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
-       Disable unsupported alternatives using "enabled" attribute.
-       Use register_ssemem_operand as operand 0 predicate.
-       (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
- 2016-05-03  Marek Polacek  <polacek@redhat.com>
-       PR c/70859
-       * input.c (expansion_point_location): New function.
-       * input.h (expansion_point_location): Declare.
- 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
-       * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
-       occurence with frame_offset_ ones.
- 2016-05-03  Alan Modra  <amodra@gmail.com>
-       PR rtl-optimization/70890
-       * ira.c (combine_and_move_insns): When moving def_insn, remove
-       equivs on use_insn.
- 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
-       ("*r<noxa>sbg_<mode>_srl"): New define_insns.
-       ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
-       ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
- 2016-05-03  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
-       for SAVE_MULTIPLE/STORE_MULTIPLE.
- 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
-       * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
-       *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
- 2016-05-03  Richard Biener  <rguenther@suse.de>
-       * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
-       default true.
-       (gimplify_arg): Likewise.
-       * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
-       re-writing the result to a decl if required.
-       (internal_get_tmp_var): Add allow_ssa parameter
-       and override into_ssa with it.
-       (get_formal_tmp_var): Adjust.
-       (get_initialized_tmp_var): Add allow_ssa parameter.
-       (gimplify_arg): Add allow_ssa parameter and avoid generating
-       SSA names for the result false.
-       (gimplify_call_expr): If the call may return twice do not
-       gimplify parameters into SSA.
-       (prepare_gimple_addressable): Do not allow an SSA name as temporary.
-       (gimplify_modify_expr): Adjust assert.  For noreturn calls
-       with a SSA name LHS adjust its def.
-       (gimplify_save_expr): Do not allow an SSA name as save-expr result.
-       (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
-       (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
-       (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
-       an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
-       (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
-       for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
-       (optimize_target_teams): Do not allow SSA names for clause operands.
-       (gimplify_expr): Likewise for where we mark the result addressable.
-       * passes.def (pass_init_datastructures): Remove.
-       * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
-       (rewrite_stmt): Likewise.
-       * tree-inline.c (initialize_cfun): Properly transfer SSA state.
-       (replace_locals_op): Replace SSA names.
-       (copy_gimple_seq_and_replace_locals): Init src_cfun.
-       * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
-       * cgraph.c (release_function_body): Free CFG annotations only
-       when we have a CFG.  Simplify.
-       * gimple-fold.c (gimplify_and_update_call_from_tree): Use
-       force_gimple_operand instead of get_initialized_tmp_var.
-       * tree-pass.h (make_pass_init_datastructures): Remove.
-       * tree-ssa.c (execute_init_datastructures): Remove.
-       (pass_data_init_datastructures): Likewise.
-       (class pass_init_datastructures): Likewise.
-       (make_pass_init_datastructures): Likewise.
-       * omp-low.c (create_omp_child_function): Init SSA data structures.
-       (grid_expand_target_grid_body): Likewise.
-       * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
-       name before adding it to names_to_release.
-       (remove_bb): Always release SSA defs.
-       * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
-       before dereferencing it.
-       * cgraphunit.c (init_lowered_empty_function): Always
-       int SSA data structures.
-       * tree-ssanames.c (release_defs): Remove assert that we are in
-       SSA form.
-       * trans-mem.c (diagnose_tm_1): Handle SSA name function.
- 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
-           Uros Bizjak  <ubizjak@gmail.com>
-       PR rtl-optimization/70467
-       * config/i386/predicates.md (x86_64_hilo_int_operand,
-       x86_64_hilo_general_operand): New predicates.
-       * config/i386/constraints.md (Wd): New constraint.
-       * config/i386/i386.md (mode attr di): Use Wd instead of e.
-       (general_hilo_operand): New mode attr.
-       (add<mode>3, sub<mode>3): Use <general_hilo_operand>
-       instead of <general_operand>.
-       (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
-       x86_64_hilo_general_operand instead of <general_operand>.
- 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/70916
-       * tree-if-conv.c (constant_or_ssa_name): Removed.
-       (fold_build_cond_expr): Use is_gimple_val instead of
-       constant_or_ssa_name.
-       PR tree-optimization/70916
-       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
-       if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
-       PR target/49244
-       * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
-       (optimize_atomic_bit_test_and): New function.
-       (pass_fold_builtins::execute): Use it.
-       * optabs.def (atomic_bit_test_and_set_optab,
-       atomic_bit_test_and_complement_optab,
-       atomic_bit_test_and_reset_optab): New optabs.
-       * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
-       ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
-       * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
-       * builtins.c (expand_ifn_atomic_bit_test_and): New function.
-       * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
-       expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
-       expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
-       * doc/md.texi (atomic_bit_test_and_set@var{mode},
-       atomic_bit_test_and_complement@var{mode},
-       atomic_bit_test_and_reset@var{mode}): Document.
-       * config/i386/sync.md (atomic_bit_test_and_set<mode>,
-       atomic_bit_test_and_complement<mode>,
-       atomic_bit_test_and_reset<mode>): New expanders.
-       (atomic_bit_test_and_set<mode>_1,
-       atomic_bit_test_and_complement<mode>_1,
-       atomic_bit_test_and_reset<mode>_1): New insns.
- 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
-       PR rtl-optimization/70687
-       * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
-       instead of unsigned HOST_WIDE_INT.
- 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
-       PR rtl-optimization/44281
-       * hard-reg-set.h (struct target_hard_regs): New field
-       x_fixed_nonglobal_reg_set.
-       (fixed_nonglobal_reg_set): New macro.
-       * reginfo.c (init_reg_sets_1): Initialize it.
-       * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
-       of fixed_reg_set.
-       * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
- 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/56541
-       * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
-       * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
-       * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
-       (any_complicated_phi): new static variable.
-       (aggressive_if_conv): delete.
-       (if_convertible_phi_p): support phis with more than two arguments.
-       (if_convertible_bb_p): remvoe check on aggressive_if_conv and
-       critical pred edges.
-       (ifcvt_split_critical_edges): support phis with more than two
-       arguments by checking new parameter.  only split critical edges
-       if needed.
-       (tree_if_conversion): handle simd pragma marked loop using new
-       local variable aggressive_if_conv.  check any_complicated_phi.
- 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
-       before using it.
- 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
-       cbase.
- 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
-       (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
-       define_insn_and_split.
-       (mulsi3_i): New define_insn_and_split.
-       (mulsi3_call): Convert to define_insn.
-       (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
-       Remove constraints.
- 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       * machmode.h (mode_complex): Add support to give the complex mode
-       for a given mode.
-       (GET_MODE_COMPLEX_MODE): Likewise.
-       * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
-       stored by build_complex_type and gfc_build_complex_type instead of
-       trying to figure out the appropriate mode based on the size. Raise
-       an assertion error, if the type was not set.
-       * genmodes.c (struct mode_data): Add field for the complex type of
-       the given type.
-       (blank_mode): Likewise.
-       (make_complex_modes): Remember the complex mode created in the
-       base type.
-       (emit_mode_complex): Write out the mode_complex array to map a
-       type mode to the complex version.
-       (emit_insn_modes_c): Likewise.
-       * tree.c (build_complex_type): Set the complex type to use before
-       calling layout_type.
-       * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
-       support for __float128 complex datatypes.
-       (rs6000_hard_regno_mode_ok): Likewise.
-       (rs6000_setup_reg_addr_masks): Likewise.
-       (rs6000_complex_function_value): Likewise.
-       * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
-       __float128 and __ibm128 complex.
-       (FLOAT128_IBM_P): Likewise.
-       (ALTIVEC_ARG_MAX_RETURN): Likewise.
-       * doc/extend.texi (Additional Floating Types): Document that
-       -mfloat128 must be used to enable __float128.  Document complex
-       __float128 and __ibm128 support.
- 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
-       PR target/49244
-       * gimple.c (gimple_builtin_call_types_compatible_p): Allow
-       char/short arguments promoted to int because of promote_prototypes.
- 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (register_ssemem_operand): New predicate.
-       * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
-       *cmpi<FPCMP:unord><MODEF:mode>_mixed and
-       *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
-       alternatives using "enabled" attribute.  Use register_ssemem_operand
-       as operand 1 predicate.
-       (*cmpi<unord>xf_i387): Split XFmode pattern from
-       *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
-       (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
-       *absneg<mode>2_i387.  Disable unsupported alternatives using
-       "enabled" attribute.
-       (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
- 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
-       * omp-low.c (lower_oacc_head_tail): Assert there is at least one
-       marker.
-       (oacc_loop_process): Check mask for loop termination.
- 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
-       * cif-code.def (CIF_THUNK): Add.
-       * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
-       accidental change.
- 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
-       * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
-       (dump_inline_summary): Dump it.
-       (fp_expression_p): New predicate.
-       (estimate_function_body_sizes): Use it.
-       (inline_merge_summary): Merge fp_expressions.
-       (inline_read_section): Read fp_expressions.
-       (inline_write_summary): Write fp_expressions.
-       * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
-       codegen boundary if either caller or callee is !fp_expressions.
-       * ipa-inline.h (inline_summary): Add fp_expressions.
-       * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
-       to fp_expressions be sure the fp generation flags are updated.
- 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/70467
-       * cse.c (cse_insn): Handle no-op MEM moves after folding.
-       PR rtl-optimization/70467
-       * ipa-pure-const.c (check_call): Handle internal calls even in
-       ipa mode like in local mode.
- 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
- 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
-       * match.pd (X u< X, X u> X): New transformations.
- 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
-       * flag-types.h (enum warn_strict_overflow_code): Move ...
-       * coretypes.h: ... here.
-       * fold-const.h (fold_overflow_warning): Declare.
-       * fold-const.c (fold_overflow_warning): Make non-static.
-       (fold_comparison): Move the transformation of X +- C1 CMP C2
-       into X CMP C2 -+ C1 ...
-       * match.pd: ... here.
-       * gimple-fold.c (fold_stmt_1): Protect with
-       fold_defer_overflow_warnings.
- 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
-       * omp-low.c (struct oacc_loop): Add 'inner' field.
-       (new_oacc_loop_raw): Initialize it to zero.
-       (oacc_loop_fixed_partitions): Initialize it.
-       (oacc_loop_auto_partitions): Partition outermost loop to outermost
-       available partitioning.
- 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
-       register_operand.
-       (umulsidi3): Likewise.
-       (indirect_jump): Fix jump instruction assembly patterns.
- 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
-       PR target/70860
-       * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
-       (nvptx_function_value): Assert non-NULL cfun.
- 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
-       PR rtl-optimization/70886
-       * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
-       * cselib.h (rtx_equal_for_cselib_1): Declare.
-       (rtx_equal_for_cselib_p: New inline function.
-       * cselib.c (rtx_equal_for_cselib_p): Delete.
-       (rtx_equal_for_cselib_1): Make public.
- 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
-       (register_mixssei387nonimm_operand): Remove predicate.
-       * config/i386/i386.md (*fop_<mode>_comm): Merge from
-       *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
-       alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
-       for TARGET_MIX_SSE_I387 alternatives.
-       (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
-       Disable unsupported alternatives using "enabled" attribute.  Use
-       nonimm_ssenomem_operand as operand 1 predicate.  Also check
-       X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
- 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree.c (cst_and_fits_in_hwi): Simplify.
- 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
-       * tree.h (wi::to_wide): New function.
-       * expr.c (expand_expr_real_1): Use wi::to_wide.
-       * fold-const.c (int_const_binop_1): Likewise.
-       (extract_muldiv_1): Likewise.
- 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
-       * wide-int.h: Update offset_int and widest_int documentation.
-       (WI_SIGNED_SHIFT_RESULT): New macro.
-       (wi::binary_shift): Define signed_shift_result_type for
-       shifts on offset_int- and widest_int-like types.
-       (generic_wide_int): Support <<= and >>= if << and >> are supported.
-       * tree.h (int_bit_position): Use shift operators instead of wi::
-        shifts.
-       * alias.c (adjust_offset_for_component_ref): Likewise.
-       * expr.c (get_inner_reference): Likewise.
-       * fold-const.c (fold_comparison): Likewise.
-       * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
-       * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
-       * tree-dfa.c (get_ref_base_and_extent): Likewise.
-       * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
-       (stmt_kills_ref_p): Likewise.
-       * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
-       * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
-       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
-       (ao_ref_init_from_vn_reference): Likewise.
- 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
-       * wide-int.h: Update offset_int and widest_int documentation.
-       (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
-       (wi::binary_traits): Allow ordered comparisons between offset_int and
-       offset_int, between widest_int and widest_int, and between either
-       of these types and basic C types.
-       (operator <, <=, >, >=): Define for the same combinations.
-       * tree.h (tree_int_cst_lt): Use comparison operators instead
-       of wi:: comparisons.
-       (tree_int_cst_le): Likewise.
-       * gimple-fold.c (fold_array_ctor_reference): Likewise.
-       (fold_nonarray_ctor_reference): Likewise.
-       * gimple-ssa-strength-reduction.c (record_increment): Likewise.
-       * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
-       * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
-       * tree-sra.c (completely_scalarize): Likewise.
-       * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
-       * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
-       * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
-       (check_for_binary_op_overflow): Likewise.
-       (search_for_addr_array): Likewise.
-       * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
- 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
-       (arc_save_restore): Likewise.
-       (arc_dwarf_register_span): Likewise.
-       (arc_output_pic_addr_const): Initialize suffix variable.
- 2016-05-02  Martin Liska  <mliska@suse.cz>
-       * symbol-summary.h (function_summary::function_summary):
-       Remove checking assert for all cgraph nodes.
-       (function_summary::get): Check summary_uid.
-       (symtab_insertion): Check summary_uid.
- 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
-       * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
-       bmaskn instruction.
-       (arc_dwarf_register_span): Remove enum keyword.
-       (compact_memory_operand_p): New function.
-       * config/arc/arc.h (reg_class): Add code density register classes.
-       (REG_CLASS_NAMES): Likewise.
-       (REG_CLASS_CONTENTS): Likewise.
-       * config/arc/arc.md (*movqi_insn): Add code density instructions.
-       (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
-       (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
-       (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
-       * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
-       constraints.
-       (h, Rcd, Rsd, Rzd): New register constraints.
-       (T): Use compact_memory_operand_p function.
-       * config/arc/predicates.md (compact_load_memory_operand): Remove.
- 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.md (*negnegt, *movtt): Remove.
- 2016-05-02  Marek Polacek  <polacek@redhat.com>
-           Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/70700
-       * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
-       bigger than FIRST_REF_NODE.
- 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/52898
-       * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
-       TARGET_CMPEQDI_T.
-       (prepare_cbranch_operands): Don't use scratch register.  Assume that
-       function is used when pseudos can be created.
-       (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
-       * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
-       (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
-       define_expand.  Allow it only when pseudos can be created.
-       * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
- 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/constraints.md (BC): Only allow -1 operands.
-       * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
-       Add "enabled" attribute.  Update XI mode attribute calculation.
-       * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
-       (*movoi_internal_avx): Update XI mode attribute calculation.
-       (*movti_internal): Ditto.
- 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
-       cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
- 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
-       statement on instruction code.  Remove trailing spaces.
-       (altivec_expand_stv_builtin): Likewise.
- 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
-       (TARGET_FPU_DOUBLE): Simplify.
-       (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
-       'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
-       * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
-       with 'TARGET_FPU_DOUBLE'.
-       * config/sh/sh.md: Likewise.
- 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
-       * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
-       SH_DIV_STR_FOR_SIZE): Remove.
-       * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
-       SH_DIV_STR_FOR_SIZE): Remove.
- 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/predicates.md (any_register_operand, zero_extend_operand,
-       logical_reg_operand): Delete.
-       (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
-       arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
-       logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
-       match_operand and match_test.
-       (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
-       variables on their first use.  Return bool values.
-       * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
-       * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
-       arith_reg_operand for input operand.  Remove empty constraints.
-       (xorsi3): Delete.
-       (*xorsi3_compact): Rename to xorsi3.
-       (zero_extend<mode>si2): Use arith_reg_operand for input operand.
-       (*zero_extend<mode>si2_disp_mem): Update comment.
-       (mov_nop): Delete.
- 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/t-sh: Remove SH5 support.
-       * config.gcc: Likewise.
-       * configure: Likewise.
- 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
- 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
-       * config/sh/sh.c (register_sh_passes, sh_option_override,
-       sh_print_operand, prepare_move_operands,
-       sh_can_follow_jump): Remove TARGET_SH1 checks.
-       * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
-       PROMOTE_MODE): Likewise.
-       * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
-       movdi): Likewise.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
-       restoring when fixed_reg_p, but allow out-of-line or stmw save.
-       Check for user regs later to avoid unnecessary looping over regs.
-       Merge user reg check with non-saved reg check.  Don't force
-       inline VR restore when static chain used.
-       (rs6000_frame_related): Omit eh_frame info for user regs when
-       saving.
-       (fixed_regs_p): Delete.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
-       (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
-       Update all uses.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       PR target/69645
-       * config/rs6000/rs6000.c (fixed_reg_p): New function.
-       (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
-       Update all uses.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
-       Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
-       flag_pic test for Darwin.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * regs.h (struct reg_info_t): Delete freq_calls_crossed and
-       throw_calls_crossed.
-       (REG_FREQ_CALLS_CROSSED): Delete.
-       (REG_N_THROWING_CALLS_CROSSED): Delete.
-       * regstat.c (regstat_bb_compute_ri): Don't calculate
-       REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
-       (dump_reg_info): Don't print call cross frequency.
-       * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
-       and REG_N_THROWING_CALLS_CROSSED.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * regs.h (struct reg_info_t): Delete live_length.
-       (REG_LIVE_LENGTH): Delete macro.
-       * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
-       local_live, local_processed and local_live_last_luid params.
-       Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
-       Formatting fixes.
-       (regstat_compute_ri): Adjust for above.  Don't set
-       REG_LIVE_LENGTH.
-       (dump_reg_info): Don't print live length.
-       * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
-       with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
-       Localize loop_depth var.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * ira.c (enum valid_equiv): New.
-       (validate_equiv_mem): Return enum.
-       (update_equiv_mem): Create replacement in more cases.
-       (add_store_equivs): Update validate_equiv_mem call.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * ira.c (combine_and_move_insns): Rather than scanning insns,
-       use DF infrastucture to find use and def insns.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       ira.c (combine_and_move_insns): Move invariant conditions..
-       (ira.c): ..to here.  Call combine_and_move_insns before
-       add_store_equivs.  Call grow_reg_equivs later.  Allocate
-       req_equiv later using max_reg_num() rather than global max_regno.
-       (contains_replace_regs): Delete.
-       (add_store_equivs): Remove contains_replace_regs test.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * ira.c (struct equiv_mem_data): New.
-       (equiv_mem, equiv_mem_modified): Delete static vars.
-       (validate_equiv_mem_from_store): Use "data" param to communicate..
-       (validate_equiv_mem): ..from here.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * ira.c (add_store_equivs, combine_and_move_insns): New functions,
-       split out from..
-       (update_reg_equivs): ..here.  Move allocation and freeing of
-       reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
-       end_alias_analysis to..
-       (ira): ..here.
- 2016-04-30  Alan Modra  <amodra@gmail.com>
-       * ira.c (pdx_subregs): Delete.
-       (struct equivalence): Add pdx_subregs field.
-       (set_paradoxical_subreg): Remove pdx_subregs param.  Update
-       pdx_subregs access.
-       (update_equiv_regs): Don't create or free pdx_subregs.  Update
-       pdx_subregs access.
- 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/altivec.h: Change definitions of vec_xl and
-       vec_xst.
-       * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
-       (LD_ELEMREV_V2DI): New.
-       (LD_ELEMREV_V4SF): New.
-       (LD_ELEMREV_V4SI): New.
-       (LD_ELEMREV_V8HI): New.
-       (LD_ELEMREV_V16QI): New.
-       (ST_ELEMREV_V2DF): New.
-       (ST_ELEMREV_V2DI): New.
-       (ST_ELEMREV_V4SF): New.
-       (ST_ELEMREV_V4SI): New.
-       (ST_ELEMREV_V8HI): New.
-       (ST_ELEMREV_V16QI): New.
-       (XL): New.
-       (XST): New.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
-       descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
-       * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
-       TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
-       (altivec_expand_builtin): Add handling for
-       VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
-       (rs6000_invalid_builtin): Add error-checking for
-       RS6000_BTM_P9_VECTOR.
-       (altivec_init_builtins): Define builtins used to implement vec_xl
-       and vec_xst.
-       (rs6000_builtin_mask_names): Define power9-vector.
-       * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
-       (RS6000_BTM_P9_VECTOR): Define.
-       (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
-       * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
-       (vsx_ld_elemrev_v2df): Likewise.
-       (vsx_ld_elemrev_v4sf): Likewise.
-       (vsx_ld_elemrev_v4si): Likewise.
-       (vsx_ld_elemrev_v8hi): Likewise.
-       (vsx_ld_elemrev_v16qi): Likewise.
-       (vsx_st_elemrev_v2df): Likewise.
-       (vsx_st_elemrev_v2di): Likewise.
-       (vsx_st_elemrev_v4sf): Likewise.
-       (vsx_st_elemrev_v4si): Likewise.
-       (vsx_st_elemrev_v8hi): Likewise.
-       (vsx_st_elemrev_v16qi): Likewise.
-       * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
-       grammar.
- 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
-       * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
-       out into ...
-       (simplify_control_stmt_condition_1): ... here.  Recurse into
-       BIT_AND_EXPRs and BIT_IOR_EXPRs.
- 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
-       PR target/69810
-       * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
-       (zero_extendqi<mode>2_dot): Revert earlier conversion from
-       define_insn_and_split to define_insn.
-       (zero_extendqi<mode>2_dot2): Same.
-       (extendqi<mode>2_dot): Same.
-       (extendqi<mode>2_dot2): Same.
- 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
-       (probe_stack): New expander.
-       (probe_stack_<mode>): New insn pattern.
- 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md
-       (operations with memory inputs setting flags peephole2):
-       Remove uneeded REG_P checks.  Cleanup pattern generation.
- 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
-       * tree-vect-loop.c (vect_transform_loop): Fix
-       nb_iterations_upper_bound computation for vectorized loop.
- 2016-04-29  Marek Polacek  <polacek@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/70342
-       * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
-       TARGET_EXPR_SLOT as a base.
- 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
-       * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
-       with 'rCm2' constraints to limit possible immediate size.
-       (*load_zeroextendqisi_update): Likewise.
-       (*load_signextendqisi_update): Likewise.
-       (*loadhi_update): Likewise.
-       (*load_zeroextendhisi_update): Likewise.
-       (*load_signextendhisi_update): Likewise.
-       (*loadsi_update): Likewise.
-       (*loadsf_update): Likewise.
- 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (constm1_operand): Fix comparison.
- 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
-       * testsuite/gcc.target/arc/ieee_eq.c: New test.
- 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
-       * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
-       remaining SH5 related settings.
-       * config/sh/sh-protos.h (shmedia_cleanup_truncate,
-       shmedia_prepare_call_address): Delete.
-       * config/sh/sh.c (sh_print_operand, output_stack_adjust,
-       DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
-       * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
-       UNSUPPORTED_SH2A): Remove m5 checks.
-       (sh_divide_strategy_e): Remove SH5 division strategies.
-       (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
-       * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
- 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390.c (s390_rtx_costs): Update documentation.
- 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
-       * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
-       Change lder to ldr.
-       * config/s390/vector.md ("mov<mode>"): Likewise.
- 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
-       * config/s390/constraints.md ("U", "W"): Invoke
-       s390_mem_constraint with "ZR" and "ZT".
-       * config/s390/s390.c (s390_check_qrst_address): Reject invalid
-       addresses when using LRA.  Accept also short displacements for S
-       and T constraints.  Do not check for long displacement target for
-       S and T constraints.
-       (s390_mem_constraint): Remove handling of U and W constraints.
-       * config/s390/s390.md (various patterns): Remove the short
-       displacement constraints (Q and R) if a long displacement
-       constraint is present.  Add longdisp as required CPU capability.
-       * config/s390/vector.md: Likewise.
-       * config/s390/vx-builtins.md: Likewise.
- 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
-       PR target/60040
-       * reload1.c (reload): Call finish_spills before
-       restarting reload loop. Skip select_reload_regs
-       if update_eliminables_and_spill returns true.
- 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
-       * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
-       (umulhisi3_imm): Update predicates and constraint letters.
-       (umulhisi3_reg): Declare instruction as commutative.
-       * config/arc/constraints.md (J12, J16): New constraints.
-       * config/arc/predicates.md (short_unsigned_const_operand): New
-       predicate.
-       (arc_short_operand): Likewise.
-       * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
- 2016-04-29  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/13962
-       PR tree-optimization/65686
-       * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
-       * tree-ssa-alias.c (ptrs_compare_unequal): New function
-       using PTA to compare pointers.
-       * match.pd: Add pattern for pointer equality compare simplification
-       using ptrs_compare_unequal.
- 2016-04-29  Richard Biener  <rguenther@suse.de>
-       * stor-layout.c (layout_type): Do not build a pointer-to-element
-       type for arrays.
- 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
-       Use SWI mode iterator.  Use general_reg_operand predicate.
-       (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
-       peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
-       predicates.
- 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/70843
-       * fold-const.c (operand_equal_p): Don't verify hash value equality
-       if arg0 == arg1.
-       * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
-       and OMP_CLAUSE.
- 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
-       PR target/70858
-       * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
-       to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
-       (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
-       __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
-       __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
- 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
-       to info.  Don't initialize separate fields to 0.  Clean up
-       formatting a bit.
- 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (peephole2s for operations with memory inputs):
-       Use SWI mode iterator.
-       (peephole2s for operations with memory outputs): Ditto.
-       Do not check for stack checking probe.
-       (probe_stack): Remove expander.
- 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
-           Andrew Burgess  <andrew.burgess@embecosm.com>
-       * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
-       operands as 32-bits.
- 2016-04-28  Jason Merrill  <jason@redhat.com>
-       * gdbinit.in: Skip line-map.h.
- 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
-           Andrew Burgess  <andrew.burgess@embecosm.com>
-       * config/arc/arc.c (arc_conditional_register_usage): Take
-       TARGET_RRQ_CLASS into account.
-       (arc_print_operand): Support printing 'p' and 's' operands.
-       * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
-       as 0.
-       (TARGET_RRQ_CLASS): Define.
-       (IS_POWEROF2_OR_0_P): Define.
-       * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
-       alternatives.
-       (*tst_movb): New define_insn.
-       (*tst): Avoid recognition if it could prevent '*tst_movb'
-       combination; replace c/CnL with c/Chs alternative.
-       (*tst_bitfield_tst): New define_insn.
-       (*tst_bitfield_asr): New define_insn.
-       (*tst_bitfield): New define_insn.
-       (andsi3_i): Add Rrq variant.
-       (extzv): New define_expand.
-       (insv): New define_expand.
-       (*insv_i): New define_insn.
-       (*movb): New define_insn.
-       (*movb_signed): New define_insn.
-       (*movb_high): New define_insn.
-       (*movb_high_signed): New define_insn.
-       (*movb_high_signed + 1): New define_split pattern.
-       (*mrgb): New define_insn.
-       (*mrgb + 1): New define_peephole2 pattern.
-       (*mrgb + 2): New define_peephole2 pattern.
-       * config/arc/arc.opt (mbitops): New option for nps400, uses
-       TARGET_NPS_BITOPS_DEFAULT.
-       * config/arc/constraints.md (q): Make register class conditional.
-       (Rrq): New register constraint.
-       (Chs): New constraint.
-       (Clo): New constraint.
-       (Chi): New constraint.
-       (Cbf): New constraint.
-       (Cbn): New constraint.
-       (C18): New constraint.
-       (Cbi): New constraint.
- 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
-       * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
-       dst->popcount.
-       (bitmap_intersection_of_preds): Ditto.
-       (bitmap_union_of_succs): Ditto.
-       (bitmap_union_of_preds): Ditto.
-       * sbitmap.c (do_popcount): Delete.
-       (BITMAP_DEBUGGING): Delete.
-       (sbitmap_verify_popcount): Delete.
-       (sbitmap_alloc): Don't initialize the popcount field.
-       (sbitmap_alloc_with_popcount): Delete.
-       (sbitmap_resize): Don't resize the popcount array.
-       (sbitmap_vector_alloc): Don't initialize the popcount field.
-       (bitmap_copy): Don't copy the popcount array.
-       (bitmap_clear): Don't clear the popcount array.
-       (bitmap_clear): Delete the popcount array handling.
-       (bitmap_ior_and_compl): Delete the popcount assert.
-       (bitmap_not): Ditto.
-       (bitmap_and_compl): Ditto.
-       (bitmap_and): Delete the popcount array handling.
-       (bitmap_xor): Ditto.
-       (bitmap_ior): Ditto.
-       (bitmap_or_and): Delete the popcount assert.
-       (bitmap_and_or): Ditto.
-       (popcount_table): Delete.
-       (sbitmap_elt_popcount): Delete.
-       * sbitmap.h (simple_bitmap_def): Delete the popcount field.
-       (bitmap_set_bit): Delete the popcount assert.
-       (bitmap_clear_bit): Ditto.
-       (sbitmap_free): Don't free the popcount array.
-       (sbitmap_alloc_with_popcount): Delete declaration.
-       (sbitmap_popcount): Ditto.
- 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
-           Andrew Burgess  <andrew.burgess@embecosm.com>
-       * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
-       (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
-       * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
-       (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
-       * config/arc/arc.opt (mcmem): New option.
-       * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
-       supply length for r/m alternative.
-       (*extendqisi2_ac): Likewise.
-       (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
-       r/Uex alternative.
-       (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
-       (movhi_insn): Likewise.
-       (movsi_insn): Add r/Ucm,Ucm/w alternatives.
-       (*zero_extendqihi2_i): Add r/Ucm alternative.
-       (*zero_extendqisi2_ac): Likewise.
-       (*zero_extendhisi2_i): Likewise.
-       * config/arc/constraints.md (Uex): New memory constraint.
-       (Ucm): New define_constraint.
-       * config/arc/predicates.md (long_immediate_loadstore_operand):
-       Return 0 for MEM with cmem_address address.
-       (cmem_address_0): New predicates.
-       (cmem_address_1): Likewise.
-       (cmem_address_2): Likewise.
-       (cmem_address): Likewise.
- 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
-       * config/rs6000/rs6000.c (machine_function): Rename
-       insn_chain_scanned_p to spe_insn_chain_scanned_p.
-       (rs6000_stack_info): Adjust.
- 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
-           Andrew Burgess  <andrew.burgess@embecosm.com>
-       * config/arc/constraints.md (Usd): Convert to define_constraint.
-       (Us<): Likewise.
-       (Us>): Likewise.
- 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
-       PR target/70821
-       * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
-       Add new peephole2 where the first insn is *mov<mode>_or instead of
-       *mov<mode>_internal.
- 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
-       * tracer.c (bb_seen): Make static.
- 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+       * config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt.
+       (nds32le-*-*, nds32be-*-*): Integrate checking process.
+       (nds32*-*-*): Add glibc and uclibc conditions.
+       * common/config/nds32/nds32-common.c (nds32_except_unwind_info): New.
+       (TARGET_EXCEPT_UNWIND_INFO): Define.
+       * config/nds32/elf.h: New file.
+       * config/nds32/linux.h: New file.
+       * config/nds32/nds32-elf.opt: New file.
+       * config/nds32/nds32-linux.opt: New file.
+       * config/nds32/nds32-fp-as-gp.c
+       (pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI.
+       * config/nds32/nds32.c (nds32_conditional_register_usage): Consider
+       TARGET_LINUX_ABI.
+       (nds32_asm_file_end): Ditto.
+       (nds32_print_operand): Ditto.
+       (nds32_insert_attributes): Ditto.
+       (nds32_init_libfuncs): New function.
+       (TARGET_HAVE_TLS): Define.
+       (TARGET_INIT_LIBFUNCS): Define.
+       * config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax
+       spec content.
+       (TARGET_ELF): Apply different mcmodel setting.
+       (LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has
+       been migrated into elf.h and linux.h files.
+       * config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI.
+       * config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI.
+       (mcmodel): The content has been migrated into nds32-elf.opt and
+       nds32-linux.opt files.
+       * config/nds32/t-elf: New file.
+       * config/nds32/t-linux: New file.
+ 2018-06-02  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Shiva Chen  <shiva0217@gmail.com>
+       * config/nds32/constants.md (unspec_volatile_element): Add
+       UNSPEC_VOLATILE_OMIT_FP_BEGIN and UNSPEC_VOLATILE_OMIT_FP_END.
+       * config/nds32/nds32-fp-as-gp.c: New implementation of fp_as_gp
+       optimization.
+       * config/nds32/nds32-protos.h (nds32_naked_function_p): Declare.
+       (make_pass_nds32_fp_as_gp): Declare.
+       * config/nds32/nds32.c (nds32_register_passes): Add fp_as_gp as one
+       optmization pass.
+       (nds32_asm_function_end_prologue): Remove unused asm output.
+       (nds32_asm_function_begin_epilogue): Remove unused asm output.
+       (nds32_asm_file_start): Output necessary fp_as_gp information.
+       (nds32_option_override): Adjust register usage.
+       (nds32_expand_prologue): Consider fp_as_gp situation.
+       (nds32_expand_prologue_v3push): Consider fp_as_gp situation.
+       * config/nds32/nds32.md (prologue): Check fp_as_gp_p and naked_p.
+       (epilogue): Ditto.
+       (return): Ditto.
+       (simple_return): Ditto.
+       (omit_fp_begin): Output special directive for fp_as_gp.
+       (omit_fp_end): Output special directive for fp_as_gp.
+       * config/nds32/nds32.opt (mfp-as-gp, mno-fp-as-gp, mforce-fp-as-gp,
+       mforbid-fp-as-gp): New options.
+ 2018-06-01  Mark Wielaard  <mark@klomp.org>
+       * dwarf2out.c (dwarf2out_finish): Remove generation of
+       DW_AT_loclists_base.
+ 2018-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+       * gimple-ssa-store-merging.c: Include gimple-fold.h.
+       (struct store_immediate_info): Document BIT_INSERT_EXPR stores.
+       (struct merged_store_group): Add bit_insertion field.
+       (dump_char_array): Use standard hexadecimal format.
+       (merged_store_group::merged_store_group): Set bit_insertion to false.
+       (merged_store_group::apply_stores): Use optimal buffer size.  Deal
+       with BIT_INSERT_EXPR stores.  Move up code updating the mask and
+       also print the mask in the dump file.
+       (pass_store_merging::gate): Minor tweak.
+       (imm_store_chain_info::coalesce_immediate): Fix wrong association
+       of stores with groups in dump.  Allow coalescing of BIT_INSERT_EXPR
+       stores with INTEGER_CST stores.
+       (count_multiple_uses) <BIT_INSERT_EXPR>: New case.
+       (imm_store_chain_info::output_merged_store): Add try_bitpos variable
+       and use it throughout.  Generate bit insertion sequences if need be.
+       (pass_store_merging::process_store): Remove redundant condition.
+       Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR.
+ 2018-06-01  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of
+       the 128-bit floating point types.  Fix function comment.
+ 2018-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
-       support, setup defaults.
-       * config/arc/arc-opts.h (enum processor_type): Add NPS400.
-       * config/arc/arc.c (arc_init): Add NPS400 support.
-       * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
-       (TARGET_ARC700): NPS400 is also an ARC700.
-       * config/arc/arc.opt: Add NPS400 options to -mcpu=.
+       * config/aarch64/aarch64-simd.md
+       (aarch64_simd_vec_unpack<su>_lo_<mode>): Use UXTL and SXTL assembler
+       mnemonics.
+       (aarch64_simd_vec_unpack<su>_hi_<mode>): Use UXTL2 and SXTL2 assembler
+       mnemonics.
  
- 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
+ 2018-06-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/70668
-       * config/nds32/nds32.md (casesi): Don't access the operands array
-       out of bounds.
+       PR tree-optimization/85989
+       * gimple-ssa-backprop.c (backprop::m_visited_phis): New member
+       variable.
+       (backprop::intersect_uses): Check it when deciding whether this
+       is a backedge reference.
+       (backprop::process_block): Add each phi to m_visited_phis
+       after visiting it, then clear it at the end.
+ 2018-06-01  Richard Biener  <rguenther@suse.de>
+       * tree-vectorizer.h (vect_dr_stmt): New function.
+       (vect_get_load_cost): Adjust.
+       (vect_get_store_cost): Likewise.
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
+       Use vect_dr_stmt instead of DR_SMTT.
+       (vect_record_base_alignments): Likewise.
+       (vect_calculate_target_alignment): Likewise.
+       (vect_compute_data_ref_alignment): Likewise and make static.
+       (vect_update_misalignment_for_peel): Likewise.
+       (vect_verify_datarefs_alignment): Likewise.
+       (vector_alignment_reachable_p): Likewise.
+       (vect_get_data_access_cost): Likewise.  Pass down
+       vinfo to vect_get_load_cost/vect_get_store_cost instead of DR.
+       (vect_get_peeling_costs_all_drs): Likewise.
+       (vect_peeling_hash_get_lowest_cost): Likewise.
+       (vect_enhance_data_refs_alignment): Likewise.
+       (vect_find_same_alignment_drs): Likewise.
+       (vect_analyze_data_refs_alignment): Likewise.
+       (vect_analyze_group_access_1): Likewise.
+       (vect_analyze_group_access): Likewise.
+       (vect_analyze_data_ref_access): Likewise.
+       (vect_analyze_data_ref_accesses): Likewise.
+       (vect_vfa_segment_size): Likewise.
+       (vect_small_gap_p): Likewise.
+       (vectorizable_with_step_bound_p): Likewise.
+       (vect_prune_runtime_alias_test_list): Likewise.
+       (vect_analyze_data_refs): Likewise.
+       (vect_supportable_dr_alignment): Likewise.
+       * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise.
+       (vect_gen_prolog_loop_niters): Likewise.
+       * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
+       * tree-vect-patterns.c (vect_recog_bool_pattern): Do not
+       modify DR_STMT.
+       (vect_recog_mask_conversion_pattern): Likewise.
+       (vect_try_gather_scatter_pattern): Likewise.
+       * tree-vect-stmts.c (vect_model_store_cost): Pass stmt_info
+       to vect_get_store_cost.
+       (vect_get_store_cost): Get stmt_info instead of DR.
+       (vect_model_load_cost): Pass stmt_info to vect_get_load_cost.
+       (vect_get_load_cost): Get stmt_info instead of DR.
+ 2018-06-01  Richard Biener  <rguenther@suse.de>
+       PR middle-end/86017
+       * gimple-fold.c (var_decl_component_p): Also allow offsetted
+       vars wrapped in MEM_REFs.
+ 2018-06-01  Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
+       Fix subreg tests so that we only return a choice between
+       GENERAL_REGS and FP_REGS if the original classes included both.
+ 2018-06-01  Richard Biener  <rguenther@suse.de>
+       PR ipa/85960
+       * tree-ssa-structalias.c (get_function_part_constraint):
+       Handle NULL fi->decl.
+       (find_func_aliases_for_call): Properly handle indirect
+       fi from direct call.
+       (find_func_clobbers): Likewise.
+       (ipa_pta_execute): Likewise.
+       (create_variable_info_for): For functions that are ifunc_resolver
+       resolve to a varinfo that contains the result of the resolver call.
+       (associate_varinfo_to_alias): Do not treat ifunc resolvers as
+       aliases.
+ 2018-05-31  Michael Collison  <michael.collison@arm.com>
+       * config/aarch64/aarch64.md:
+       (*fix_to_zero_extenddfdi2): New pattern.
+       * gcc.target/aarch64/fix_extend1.c: New testcase.
+ 2018-05-31  Qing Zhao <qing.zhao@oracle.com>
+       PR middle-end/78809
+       PR middle-end/83026
+       * builtins.c (expand_builtin): Add the handling of BUILT_IN_STRCMP_EQ
+       and BUILT_IN_STRNCMP_EQ.
+       * builtins.def: Add new builtins BUILT_IN_STRCMP_EQ and
+       BUILT_IN_STRNCMP_EQ.
+       * gimple-fold.c (gimple_fold_builtin_string_compare): Add the
+       handling of BUILTIN_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ.
+       (gimple_fold_builtin): Likewise.
+       * tree-ssa-strlen.c (compute_string_length): New function.
+       (determine_min_obsize): New function.
+       (handle_builtin_string_cmp): New function to handle calls to
+       string compare functions.
+       (strlen_optimize_stmt): Add handling to builtin string compare
+       calls.
+       * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
+       Add the handling of BUILT_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ.
+       * tree.c (build_common_builtin_nodes): Add new defines of
+       BUILT_IN_STRNCMP_EQ and BUILT_IN_STRCMP_EQ.
  
- 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-05-31  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
-       (or $-1,reg peephole2): Ditto.
-       (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
+       PR target/85984
+       * bb-reorder.c (pass_partition_blocks::gate): Return false for
+       functions with naked attribute.
  
- 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
+ 2018-05-31  Uros Bizjak  <ubizjak@gmail.com>
  
-       * doc/extend.texi (Common Function Attributes) [optimize]:
-       Discourage use of the optimize attribute.
+       * config/i386/sse.md (avx_vec_concat<mode>):
+       Substitute concat_tg_mode mode attribute with xtg_mode.
+       (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto.
+       (concat_tg_mode): Remove mode attribute.
  
- 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
+ 2018-05-31  Martin Sebor  <msebor@redhat.com>
  
-       * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
-       special case builtin.
-       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
-       ALTIVEC_BUILTIN_VEC_ADDE.
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
-       support for ALTIVEC_BUILTIN_VEC_ADDE.
-       * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
-       for __builtin_vec_adde.
+       PR c/82063
+       * calls.c (alloc_max_size): Correct a logic error/typo.
+       Treat excessive arguments as infinite.  Warn for invalid arguments.
+       * doc/invoke.texi (-Walloc-size-larger-than): Update.
  
- 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-31  H.J. Lu  <hongjiu.lu@intel.com>
  
-       * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
-       * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
+       PR target/85829
+       * config/i386/x86-tune.def: Re-enable partial_reg_dependency
+       and movx for Haswell.
  
- 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 2018-05-31  Chung-Lin Tang  <cltang@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
  
-       PR testsuite/70595
-       * doc/sourcebuild.texi (Effective-Target Keywords, Other
-       attributes): Document cilkplus_runtime.
+       PR middle-end/85879
+       * gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true'
+       when emitting error on private/firstprivate reductions.
+       * omp-low.c (lower_omp_target): Avoid reference-type processing
+       on pointers for firstprivate clause.
  
- 2016-04-28  Martin Jambor  <mjambor@suse.cz>
+ 2018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org>
  
-       * tree-cfg.c (verify_expr): Verify that local declarations belong to
-       this function.  Call verify_expr on MEM_REFs and bases of other
-       handled_components.
+       * config/aarch64/aarch64-simd-builtins.def (ld1x3): New.
+       (st1x2): Likewise.
+       (st1x3): Likewise.
+       * config/aarch64/aarch64-simd.md
+       (aarch64_ld1x3<VALLDIF:mode>): New pattern.
+       (aarch64_ld1_x3_<mode>): Likewise
+       (aarch64_st1x2<VALLDIF:mode>): Likewise
+       (aarch64_st1_x2_<mode>): Likewise
+       (aarch64_st1x3<VALLDIF:mode>): Likewise
+       (aarch64_st1_x3_<mode>): Likewise
+       * config/aarch64/arm_neon.h (vld1_u8_x3): New function.
+       (vld1_s8_x3): Likewise.
+       (vld1_u16_x3): Likewise.
+       (vld1_s16_x3): Likewise.
+       (vld1_u32_x3): Likewise.
+       (vld1_s32_x3): Likewise.
+       (vld1_u64_x3): Likewise.
+       (vld1_s64_x3): Likewise.
+       (vld1_f16_x3): Likewise.
+       (vld1_f32_x3): Likewise.
+       (vld1_f64_x3): Likewise.
+       (vld1_p8_x3): Likewise.
+       (vld1_p16_x3): Likewise.
+       (vld1_p64_x3): Likewise.
+       (vld1q_u8_x3): Likewise.
+       (vld1q_s8_x3): Likewise.
+       (vld1q_u16_x3): Likewise.
+       (vld1q_s16_x3): Likewise.
+       (vld1q_u32_x3): Likewise.
+       (vld1q_s32_x3): Likewise.
+       (vld1q_u64_x3): Likewise.
+       (vld1q_s64_x3): Likewise.
+       (vld1q_f16_x3): Likewise.
+       (vld1q_f32_x3): Likewise.
+       (vld1q_f64_x3): Likewise.
+       (vld1q_p8_x3): Likewise.
+       (vld1q_p16_x3): Likewise.
+       (vld1q_p64_x3): Likewise.
+       (vst1_s64_x2): Likewise.
+       (vst1_u64_x2): Likewise.
+       (vst1_f64_x2): Likewise.
+       (vst1_s8_x2): Likewise.
+       (vst1_p8_x2): Likewise.
+       (vst1_s16_x2): Likewise.
+       (vst1_p16_x2): Likewise.
+       (vst1_s32_x2): Likewise.
+       (vst1_u8_x2): Likewise.
+       (vst1_u16_x2): Likewise.
+       (vst1_u32_x2): Likewise.
+       (vst1_f16_x2): Likewise.
+       (vst1_f32_x2): Likewise.
+       (vst1_p64_x2): Likewise.
+       (vst1q_s8_x2): Likewise.
+       (vst1q_p8_x2): Likewise.
+       (vst1q_s16_x2): Likewise.
+       (vst1q_p16_x2): Likewise.
+       (vst1q_s32_x2): Likewise.
+       (vst1q_s64_x2): Likewise.
+       (vst1q_u8_x2): Likewise.
+       (vst1q_u16_x2): Likewise.
+       (vst1q_u32_x2): Likewise.
+       (vst1q_u64_x2): Likewise.
+       (vst1q_f16_x2): Likewise.
+       (vst1q_f32_x2): Likewise.
+       (vst1q_f64_x2): Likewise.
+       (vst1q_p64_x2): Likewise.
+       (vst1_s64_x3): Likewise.
+       (vst1_u64_x3): Likewise.
+       (vst1_f64_x3): Likewise.
+       (vst1_s8_x3): Likewise.
+       (vst1_p8_x3): Likewise.
+       (vst1_s16_x3): Likewise.
+       (vst1_p16_x3): Likewise.
+       (vst1_s32_x3): Likewise.
+       (vst1_u8_x3): Likewise.
+       (vst1_u16_x3): Likewise.
+       (vst1_u32_x3): Likewise.
+       (vst1_f16_x3): Likewise.
+       (vst1_f32_x3): Likewise.
+       (vst1_p64_x3): Likewise.
+       (vst1q_s8_x3): Likewise.
+       (vst1q_p8_x3): Likewise.
+       (vst1q_s16_x3): Likewise.
+       (vst1q_p16_x3): Likewise.
+       (vst1q_s32_x3): Likewise.
+       (vst1q_s64_x3): Likewise.
+       (vst1q_u8_x3): Likewise.
+       (vst1q_u16_x3): Likewise.
+       (vst1q_u32_x3): Likewise.
+       (vst1q_u64_x3): Likewise.
+       (vst1q_f16_x3): Likewise.
+       (vst1q_f32_x3): Likewise.
+       (vst1q_f64_x3): Likewise.
+       (vst1q_p64_x3): Likewise.
+ 2018-05-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+       * config/msp430/msp430.c (msp430_output_labelref): Prepend
+       user_label_prefix to name.
+       * tree-core.h: Update comment about the format of NAME string
+       passed to handler in attribute_spec.
+       * config/msp430/msp430.md: Remove erroneous subreg expression from
+       zero_extendqisi2 insn pattern. Remove msp430x ISA restriction on
+       zero_extend{q,h}isi2.
+ 2018-05-30  Borislav Petkov  <bp@suse.de>
+       * doc/extend.texi: Document some architecture specific
+       constraints and sort entries.
+ 2018-05-30  Martin Sebor  <msebor@redhat.com>
+       PR middle-end/85369
+       * builtins.c (expand_builtin_stpcpy_1): New function.
+       (expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg
+       only if the former succeeds.
+ 2018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org>
+       * config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4
+       in saphira.
+ 2018-05-30  Jan Hubicka  <hubicka@ucw.cz>
+       * doc/invoke.texi (-flinker-output): Document
+ 2018-05-30  Jan Hubicka  <hubicka@ucw.cz>
+       * passes.c (ipa_write_summaries): Only modify statements if body
+       is in memory.
+       * cgraphunit.c (ipa_passes): Also produce intermeidate code when
+       incrementally linking.
+       (ipa_passes): Likewise.
+       * lto-cgraph.c (lto_output_node): When incrementally linking do not
+       pass down resolution info.
+       * common.opt (flag_incremental_link): Update info.
+       * gcc.c (plugin specs): Turn flinker-output=* to
+       -plugin-opt=-linker-output-known
+       * toplev.c (compile_file): Also cut compilation when doing incremental
+       link.
+       * flag-types. (enum lto_partition_model): Add
+       LTO_LINKER_OUTPUT_NOLTOREL.
+       (invoke.texi): Add -flinker-output docs.
+       * ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental
+       link same way as WPA; do not stream in dead initializers.
+       * dwarf2out.c (dwarf2out_die_ref_for_decl,
+       darf2out_register_external_decl): Support incremental link.
+ 2018-05-30  Jan Hubicka  <hubicka@ucw.cz>
+       * lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_.
+ 2018-05-30  Jan Hubicka  <hubicka@ucw.cz>
+       * lto-wrapper.c (debug_objcopy): Add rename parameter; pass
+       it down to simple_object_copy_lto_debug_sections.
+       (run_gcc): Determine incremental LTO link time and configure
+       lto1 into non-wpa mode, disable renaming of debug sections.
+ 2018-05-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove
+       descriptions of various incorrectly documented functions.
+ 2018-05-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
- 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       Revert:
+       * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make
+       address check not strict.
+ 2018-05-30  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/85964
+       * tracer.c (better_p): Drop initialized count check, we only
+       call the function with initialized counts now.
+       (find_best_successor): Do find a best edge if one
+       has uninitialized count.
+       (find_best_predecessor): Likewise.  Do BB frequency check only
+       if count is initialized.
+ 2017-05-30  Jackson Woodruff  <jackson.woodruff@arm.com>
+       * config/aarch64/aarch64.c (aarch64_host_wide_int_compare): New.
+       (aarch64_ldrstr_offset_compare): New.
+       (aarch64_operands_adjust_ok_for_ldpstp): Update to consider all
+       load/store orderings.
+       (aarch64_gen_adjusted_ldpstp): Likewise.
+ 2018-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
+       * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
+       Check for subset of GENERAL_REGS and FP_REGS.
+       * config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of
+       r=w alternative.
+ 2018-05-30  Richard Sandiford  <richard.sandiford@linaro.org>
+       * alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p
+       and wi::to_poly_offset.  Add the current offset and then check
+       whether the sum fits, rather than using an unchecked addition of
+       a checked term.  Check for a shwi rather than a uhwi.
+       * expr.c (get_bit_range): Use tree_to_poly_uint64.
+       (store_constructor): Use poly_int_tree_p.
+       (expand_expr_real_1): Likewise.
+       * function.c (assign_temp): Likewise.
+       * fold-const.c (const_binop): Use poly_int_tree_p and
+       wi::to_poly_offset.
+       (fold_indirect_ref_1): Likewise.  Use multiple_p to attempt an exact
+       division.
+       * ipa-icf-gimple.c (func_checker::compare_operand): Use
+       to_poly_offset for MEM offsets.
+       * ipa-icf.c (sem_variable::equals): Likewise.
+       * stor-layout.c (compute_record_mode): Use poly_int_tree_p.
+       * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
+       wi::to_poly_offset for BIT_FIELD_REF offsets.
+       (vn_reference_maybe_forwprop_address): Use poly_int_tree_p and
+       wi::to_poly_offset.
+       * var-tracking.c (emit_note_insn_var_location): Use
+       tree_to_poly_uint64.
+ 2018-05-29  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo.
+ 2018-05-29  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/85950
+       * config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2):
+       Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q}
+       sequence.
+       (sse4_1_round<mode>2): Use nonimmediate_operand
+       for operand 1 predicate.
+ 2018-05-29  Martin Sebor  <msebor@redhat.com>
+           Richard Biener  <rguenther@suse.de>
  
-       * internal-fn.c (expand_arith_overflow): Convert preprocessor check
-       for WORD_REGISTER_OPERATIONS to runtime check.
+       PR testsuite/85888
+       * calls.c (get_size_range): Call determine_value_range instead
+       of get_value_range..
+       * tree-vrp.h (determine_value_range): Declared new function.
+       * tree-vrp.c (determine_value_range_1, determine_value_range): New.
  
- 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
+ 2018-05-29  Richard Biener  <rguenther@suse.de>
  
-       * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
+       * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make
+       sure to use non-pattern stmts for get_earlier_stmt arguments.
+       * tree-vectorizer.h (get_earlier_stmt): Assert we do not get
+       called on pattern stmts.
+       (get_later_stmt): Likewise.
  
- 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
+ 2018-05-29  Martin Liska  <mliska@suse.cz>
  
-       * config/arc/arc.c (arc_process_double_reg_moves): Fix for
-       big-endian compilation.
-       * config/arc/arc.md (addf3): Likewise.
-       (subdf3): Likewise.
-       (muldf3): Likewise.
+       PR gcov-profile/85759
+       * doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR
+       env variables.
  
- 2016-04-28  Richard Biener  <rguenther@suse.de>
+ 2018-05-29  Jakub Jelinek  <jakub@redhat.com>
  
-       PR tree-optimization/70840
-       * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
-       Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
-       Mark x * pow(x,c) -> pow(x,c+1) commutative.
-       Add powi(x,y) * powi(z,y) -> powi(x*z,y).
+       * tree-cfg.c (verify_gimple_assign_unary): Add checking for
+       VEC_UNPACK_*_EXPR.
+       (verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for
+       VEC_PACK_*_EXPR.
  
- 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR target/85918
+       * tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR,
+       VEC_PACK_FLOAT_EXPR): New tree codes.
+       * tree-pretty-print.c (op_code_prio): Handle
+       VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR.
+       (dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR,
+       VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR.
+       * tree-inline.c (estimate_operator_cost): Likewise.
+       * gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR.
+       * fold-const.c (const_binop): Likewise.
+       (const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and
+       VEC_UNPACK_FIX_TRUNC_LO_EXPR.
+       * tree-cfg.c (verify_gimple_assign_unary): Likewise.
+       (verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR.
+       * cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR,
+       VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR.
+       * expr.c (expand_expr_real_2): Likewise.
+       * optabs.def (vec_packs_float_optab, vec_packu_float_optab,
+       vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab,
+       vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New
+       optabs.
+       * optabs.c (expand_widen_pattern_expr): For
+       VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use
+       sign from result type rather than operand's type.
+       (expand_binop_directly): For vec_packu_float_optab and
+       vec_packs_float_optab allow result type to be different from operand's
+       type.
+       * optabs-tree.c (optab_for_tree_code): Handle
+       VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and
+       VEC_PACK_FLOAT_EXPR.  Formatting fixes.
+       * tree-vect-generic.c (expand_vector_operations_1):  Handle
+       VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and
+       VEC_PACK_FLOAT_EXPR.
+       * tree-vect-stmts.c (supportable_widening_operation): Handle
+       FIX_TRUNC_EXPR.
+       (supportable_narrowing_operation): Handle FLOAT_EXPR.
+       * config/i386/i386.md (fixprefix, floatprefix): New code attributes.
+       * config/i386/sse.md (*float<floatunssuffix>v2div2sf2): Rename to ...
+       (float<floatunssuffix>v2div2sf2): ... this.  Formatting fix.
+       (vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New
+       mode attributes.
+       (vec_pack<floatprefix>_float_<mode>): New expander.
+       (vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode
+       attributes.
+       (vec_unpack_<fixprefix>fix_trunc_lo_<mode>,
+       vec_unpack_<fixprefix>fix_trunc_hi_<mode>): New expanders.
+       * doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m},
+       vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m},
+       vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}):
+       Document.
+       * doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR,
+       VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description.
+       (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR,
+       VEC_PACK_FLOAT_EXPR): Document.
+ 2018-05-29  Richard Biener  <rguenther@suse.de>
+       * tree-vectorizer.h (struct vec_info): Add stmt_vec_infos
+       member.
+       (stmt_vec_info_vec): Make pointer.
+       (init_stmt_vec_info_vec): Remove.
+       (free_stmt_vec_info_vec): Likewise.
+       (set_stmt_vec_info_vec): New function.
+       (free_stmt_vec_infos): Likewise.
+       (vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection.
+       (set_vinfo_for_stmt): Likewise.
+       (get_earlier_stmt): Likewise.
+       (get_later_stmt): Likewise.
+       * tree-vectorizer.c (stmt_vec_info_vec): Make pointer.
+       (vec_info::vec_info): Allocate stmt_vec_infos and set the global.
+       (vec_info::~vec_info): Free stmt_vec_infos.
+       (vectorize_loops): Set the global stmt_vec_info_vec to NULL.
+       Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls.
+       (pass_slp_vectorize::execute): Likewise.
+       * tree-vect-stmts.c (init_stmt_vec_info_vec): Remove.
+       (free_stmt_vec_info_vec): Likewise.
+       (set_stmt_vec_info_vec): New function.
+       (free_stmt_vec_infos): Likewise.
+       * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set
+       the global stmt_vec_info_vec.
+       * tree-parloops.c (gather_scalar_reductions): Use
+       set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local
+       vector.
  
-       * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
-       and explain why in a comment.
+ 2018-05-29  Richard Biener  <rguenther@suse.de>
  
- 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
+       * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE.
  
-       * config/arc/arc.md (cpu_facility): Add fpx variant.
-       (subdf3): Prohibit use reverse sub when assist operations option
-       is enabled.
-       * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
-       instructions only when FPX is enabled.
-       * testsuite/gcc.target/arc/trsub.c: New test.
+ 2018-05-29  Martin Liska  <mliska@suse.cz>
+           David Malcolm  <dmalcolm@redhat.com>
  
- 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
+       * vec.c (test_reverse): New.
+       (vec_c_tests): Add new test.
+       * vec.h (vl_ptr>::reverse): New function.
  
-       * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
-       mult_operator when calculating "type" attribute.
-       (*fop_<mode>_1_i387): Ditto.
-       (*fop_xf_1_i387): Ditto.
-       (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
-       Use std::swap to swap operands.  Use RTL expressions to generate
-       converted pattern.
+ 2018-05-29  Gerald Pfeifer  <gerald@pfeifer.com>
  
- 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
-           Joern Rennecke  <joern.rennecke@embecosm.com>
+       * config.gcc: Identify FreeBSD 3.x and 4.x as unsupported.
  
-       * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
-       declaration.
-       (emit_pic_move): Remove.
-       (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
-       * config/arc/arc.c (emit_pic_move): Removed.
-       (TARGET_HAVE_TLS): Define.
-       (arc_conditional_register_usage): Test for arc_tp_regno.
-       (arc_print_operand, arc_print_operand_address): Handle TLS
-       unspecs.
-       (arc_needs_pcl_p): New function.
-       (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
-       (arc_legitimate_pic_addr_p): Handle TLS unspecs.
-       (arc_raw_symbolic_reference_mentioned_p): Likewise.
-       (arc_get_tp, arc_emit_call_tls_get_addr): New function.
-       (arc_legitimize_tls_address): Likewise.
-       (DTPOFF_ZERO_SYM): Define.
-       (arc_legitimize_pic_address): Make it static, handle TLS cases.
-       (arc_output_pic_addr_const): Print TLS unspecs.
-       (prepare_pic_move): New function, replaces emit_pic_move.
-       (arc_legitimate_constant_p): Handle TLS unspecs.
-       (arc_legitimate_address_p): Likewise.
-       (arc_rewrite_small_data_p): Use assert for TLS constants.
-       (prepare_move_operands): Use prepare_pic_move.
-       (arc_legitimize_address): Legitimize tls addresses.
-       (arc_epilogue_uses): Check for arc_tp_regno.
-       (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
-       * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
-       Define.
-       [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
-       Likewise.
-       [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
-       %(arc_tls_extra_start_spec).
-       (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
-       (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
-       (EH_USES): Define.
-       (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
-       * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
-       (UNSPEC_TLS_OFF): Add.
-       (R10_REG): Define.
-       (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
-       (get_thread_pointersi): New patterns.
-       * config/arc/arc.opt (mtp-regno): New option.
-       * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
-       (move_dest_operand): Likewise.
-       * configure: Regenerate.
-       * configure.ac: Add arc*-*-* case to test for tls.
-       * doc/invoke.texi (ARC options): Document mtp-regno.
- 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
-       the new ARC HS SIMD instructions.
-       (arc_preferred_simd_mode): New function.
-       (arc_autovectorize_vector_sizes): Likewise.
-       (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
-       (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
-       (arc_init_reg_tables): Accept new ARC HS SIMD modes.
-       (arc_init_builtins): Add new SIMD builtin types.
-       (arc_split_move): Handle 64 bit vector moves.
-       * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
-       (TARGET_PLUS_QMACW): Define.
-       * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
-       (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
-       (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
-       (VSUBADD4H): New builtins.
-       * config/arc/simdext.md: Add new ARC HS SIMD instructions.
-       * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
- 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
-           Matthias Klose  <doko@debian.org>
-       * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
- 2016-04-28  Richard Biener  <rguenther@suse.de>
-       PR middle-end/70777
-       * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
-       canonicalization.
- 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
-       * common/config/sh/sh-common.c: Remove SH5 support.
-       * config/sh/constraints.md: Likewise.
-       * config/sh/config/sh/elf.h: Likewise.
-       * config/sh/linux.h: Likewise.
-       * config/sh/netbsd-elf.h: Likewise.
-       * config/sh/predicates.md: Likewise.
-       * config/sh/sh-c.c: Likewise.
-       * config/sh/sh-protos.h: Likewise.
-       * config/sh/sh.c: Likewise.
-       * config/sh/sh.h: Likewise.
-       * config/sh/sh.md: Likewise.
-       * config/sh/sh.opt: Likewise.
-       * config/sh/sync.md: Likewise.
-       * config/sh/sh64.h: Delete.
-       * config/sh/shmedia.h: Likewise.
-       * config/sh/shmedia.md: Likewise.
-       * config/sh/sshmedia.h: Likewise.
-       * config/sh/t-netbsd-sh5-64: Likewise.
-       * config/sh/t-sh64: Likewise.
-       * config/sh/ushmedia.h: Likewise.
- 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (sign_extend to memory peephole2s): Use
-       general_reg_operand instead of register_operand predicate.
- 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
- 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
-       * match.pd (A - B > A, A + B < A): New transformations.
- 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
-       * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
-       which defaults to true.  Emit an outer pair of parentheses only if
-       EMIT_PARENS.  When continuing a chain of && or || (or & or |),
-       don't emit parentheses for the right-hand operand.
- 2016-04-27  Jeff Law  <law@redhat.com>
-       * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
- 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
-       (altivec_lvx_<mode>_internal): Document.
-       (altivec_lvx_<mode>_2op): New define_insn.
-       (altivec_lvx_<mode>_1op): Likewise.
-       (altivec_lvx_<mode>_2op_si): Likewise.
-       (altivec_lvx_<mode>_1op_si): Likewise.
-       (altivec_stvx_<mode>): Remove.
-       (altivec_stvx_<mode>_internal): Document.
-       (altivec_stvx_<mode>_2op): New define_insn.
-       (altivec_stvx_<mode>_1op): Likewise.
-       (altivec_stvx_<mode>_2op_si): Likewise.
-       (altivec_stvx_<mode>_1op_si): Likewise.
-       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
-       Expand vec_ld and vec_st during parsing.
-       * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
-       changes.
-       (altivec_expand_stvx_be): Likewise.
-       (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
-       address-masking behavior in RTL.
-       (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
-       address-masking behavior in RTL.
-       (altivec_expand_builtin): Change builtin code arguments for calls
-       to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
-       (insn_is_swappable_p): Avoid incorrect swap optimization in the
-       presence of lvx/stvx patterns.
-       (alignment_with_canonical_addr): New function.
-       (alignment_mask): Likewise.
-       (find_alignment_op): Likewise.
-       (recombine_lvx_pattern): Likewise.
-       (recombine_stvx_pattern): Likewise.
-       (recombine_lvx_stvx_patterns): Likewise.
-       (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
-       stvx patterns from expand.
-       * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
-       expansions.
-       (vector_altivec_store_<mode>): Likewise.
- 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
-       * config/aarch64/aarch64.md
-       (*movhf_aarch64): Add "movi %0, #0" to zero up register and
-       remove the "fp" attributes.
-       (*movsf_aarch64): Add "movi %0, #0" to zero up register and
-       add the "simd" attributes.
-       (*movdf_aarch64): Likewise.
-       (*movtf_aarch64): Remove the "fp" attributes.
-       * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
-       * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
- 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
-       * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
-       rtx to rtx_code_label *.
-       * rtl.h (maybe_set_first_label_num): Likewise.
- 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
-       * df-core.c (df_add_problem): Make the problem param be const.
-       (df_remove_problem): Make local "problem" be const.
-       * df-problems.c (problem_RD): Make const.
-       (problem_LR): Likewise.
-       (problem_LIVE): Likewise.
-       (problem_MIR): Likewise.
-       (problem_CHAIN): Likewise.
-       (problem_WORD_LR): Likewise.
-       (problem_NOTE): Likewise.
-       (problem_MD): Likewise.
-       * df-scan.c (problem_SCAN): Likewise.
-       * df.h (struct df_problem): Make field "dependent_problem" be
-       const.
-       (struct dataflow): Likewise for field "problem".
-       (df_add_problem): Make param const.
- 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
-       inter-unit moves to/from vector registers are enabled.  Do not disable
-       for TARGET_MMX.
- 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
-       * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
-       DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
-       #define to...
-       (enum df_problem_id): ...this new enum.
-       (struct df_problem): Convert field "id" from "int" to
-       enum df_problem_id.
- 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
-       * rtl.def: Update comment for "things in the instruction chain" to
-       reflect the removal of the leading "i" field for INSN_UID in
-       r210360.  Fix bogus apostrophe.
- 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md
-       (lea arith with mem operand + setcc peephole2): Set operator mode.
- 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/70155
-       * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
-       (dimode_scalar_to_vector_candidate_p): This.
-       (timode_scalar_to_vector_candidate_p): New function.
-       (scalar_to_vector_candidate_p): Likewise.
-       (timode_check_non_convertible_regs): Likewise.
-       (timode_remove_non_convertible_regs): Likewise.
-       (remove_non_convertible_regs): Likewise.
-       (remove_non_convertible_regs): Renamed to ...
-       (dimode_remove_non_convertible_regs): This.
-       (scalar_chain::~scalar_chain): Make it virtual.
-       (scalar_chain::compute_convert_gain): Make it pure virtual.
-       (scalar_chain::mark_dual_mode_def): Likewise.
-       (scalar_chain::convert_insn): Likewise.
-       (scalar_chain::convert_registers): Likewise.
-       (scalar_chain::add_to_queue): Make it protected.
-       (scalar_chain::emit_conversion_insns): Likewise.
-       (scalar_chain::replace_with_subreg): Likewise.
-       (scalar_chain::replace_with_subreg_in_insn): Likewise.
-       (scalar_chain::convert_op): Likewise.
-       (scalar_chain::convert_reg): Likewise.
-       (scalar_chain::make_vector_copies): Likewise.
-       (scalar_chain::convert_registers): New pure virtual function.
-       (class dimode_scalar_chain): New class.
-       (class timode_scalar_chain): Likewise.
-       (scalar_chain::mark_dual_mode_def): Renamed to ...
-       (dimode_scalar_chain::mark_dual_mode_def): This.
-       (timode_scalar_chain::mark_dual_mode_def): New function.
-       (timode_scalar_chain::convert_insn): Likewise.
-       (dimode_scalar_chain::convert_registers): Likewise.
-       (scalar_chain::compute_convert_gain): Renamed to ...
-       (dimode_scalar_chain::compute_convert_gain): This.
-       (scalar_chain::replace_with_subreg): Renamed to ...
-       (dimode_scalar_chain::replace_with_subreg): This.
-       (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
-       (dimode_scalar_chain::replace_with_subreg_in_insn): This.
-       (scalar_chain::make_vector_copies): Renamed to ...
-       (dimode_scalar_chain::make_vector_copies): This.
-       (scalar_chain::convert_reg): Renamed to ...
-       (dimode_scalar_chain::convert_reg ): This.
-       (scalar_chain::convert_op): Renamed to ...
-       (dimode_scalar_chain::convert_op): This.
-       (scalar_chain::convert_insn): Renamed to ...
-       (dimode_scalar_chain::convert_insn): This.
-       (scalar_chain::convert): Call convert_registers.
-       (convert_scalars_to_vector): Change to scalar_chain pointer to
-       use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
-       in 32-bit mode.  Delete scalar_chain pointer.  Call
-       free_dominance_info in 64-bit mode.
-       (pass_stv::gate): Remove TARGET_64BIT check.
-       (ix86_option_override): Put the 64-bit STV pass before the CSE
-       pass.
- 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
-       * dwarf2out.h (struct dw_loc_descr_node): Remove the
-       dw_loc_frame_offset field.
-       * dwarf2out.c (new_loc_descr): Likewise.
-       (resolve_args_picking_1): Turn the VISITED hash set into a
-       FRAME_OFFSET hash map. Use it to associate a frame offset to
-       visited nodes. Remove uses of the CHECKING_P macro.
-       (resolve_args_picking): Update call to resolve_args_picking_1.
- 2016-04-27  Martin Liska  <mliska@suse.cz>
-       * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
-       (free_loop_data): Release vuses of groups.
- 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
-       instead of redundant use_id and boolean have_use_for.
-       (struct iv_use): Change sub_id into group_id.  Remove field next.
-       Move fields: related_cands, n_map_members, cost_map and selected
-       to ...
-       (struct iv_group): ... here.  New structure.
-       (struct iv_common_cand): Use structure declaration directly.
-       (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
-       (MAX_CONSIDERED_USES): Rename macro to ...
-       (MAX_CONSIDERED_GROUPS): ... here.
-       (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
-       (dump_iv, dump_use, dump_cand): Refactor format of dump information.
-       (dump_uses): Rename to ...
-       (dump_groups): ... here.  Update all uses.
-       (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
-       (find_induction_variables): Refactor format of dump information.
-       (record_sub_use): Delete.
-       (record_use): Update all uses.
-       (record_group): New function.
-       (record_group_use, find_interesting_uses_op): Call above functions.
-       Update all uses.
-       (find_interesting_uses_cond): Ditto.
-       (group_compare_offset): New function.
-       (split_all_small_groups): Rename to ...
-       (split_small_address_groups_p): ... here.  Update all uses.
-       (split_address_groups):  Update all uses.
-       (find_interesting_uses): Refactor format of dump information.
-       (add_candidate_1): Update all uses.  Remove redundant check on iv,
-       base and step.
-       (add_candidate, record_common_cand): Remove redundant assert.
-       (add_iv_candidate_for_biv): Update use.
-       (add_iv_candidate_derived_from_uses): Update all uses.
-       (add_iv_candidate_for_groups, record_important_candidates): Ditto.
-       (alloc_use_cost_map): Ditto.
-       (set_use_iv_cost, get_use_iv_cost): Rename to ...
-       (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
-       (determine_use_iv_cost_generic): Ditto.
-       (determine_group_iv_cost_generic): Ditto.
-       (determine_use_iv_cost_address): Ditto.
-       (determine_group_iv_cost_address): Ditto.
-       (determine_use_iv_cost_condition): Ditto.
-       (determine_group_iv_cost_cond): Ditto.
-       (determine_use_iv_cost): Ditto.
-       (determine_group_iv_cost): Ditto.
-       (set_autoinc_for_original_candidates): Update all uses.
-       (find_iv_candidates): Update all uses.  Refactor dump information.
-       (determine_use_iv_costs): Ditto.
-       (determine_iv_costs): Ditto.
-       (iv_ca_cand_for_use): Rename to ...
-       (iv_ca_cand_for_group): ... here.  Update all uses.
-       (iv_ca_add_use, iv_ca_add_group): Ditto.
-       (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
-       (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
-       (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
-       (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
-       (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
-       (create_new_iv, adjust_iv_update_pos): Ditto.
-       (rewrite_use_address): Delete.
-       (rewrite_use_address_1): Rename to ...
-       (rewrite_use_address): ... here.
-       (rewrite_use_compare): Update all uses.
-       (rewrite_use): Delete.
-       (rewrite_uses): Rename to ...
-       (rewrite_groups): ... here.  Update all uses.
-       (remove_unused_ivs, free_loop_data): Update all uses.
-       (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
- 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       * rtlanal.c (nonzero_bits1): Convert preprocessor check
-       for WORD_REGISTER_OPERATIONS to runtime check.
- 2016-04-27  Richard Biener  <rguenther@suse.de>
-       PR ipa/70760
-       * tree-ssa-structalias.c (find_func_aliases_for_call): Use
-       aggregate_value_p to determine if a function result is
-       returned by reference.
-       (ipa_pta_execute): Functions having their address taken are
-       not automatically nonlocal.
- 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/70683
-       * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
-       * fold-const.c (operand_equal_p): If flag_checking and
-       OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
-       and if it returns non-zero, assert iterative_hash_expr on both
-       args is the same.
- 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
-       * doc/invoke.texi (-frename-registers): Also enabled at -Os.
- 2016-04-27  Nick Clifton  <nickc@redhat.com>
-       PR middle-end/49889
-       * varasm.c (merge_weak): Generate an error if an attempt is made
-       to convert a non-weak static function into a weak, public function.
- 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
-       * params.def (MAX_PARTITION_SIZE): New param.
-       * doc/invoke.texi: Document lto-max-partition.
- 2016-04-27  Richard Biener  <rguenther@suse.de>
-       PR ipa/70785
-       * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
-       function cummulating used_from_other_partition, externally_visible
-       and force_output from aliases.
-       (refered_from_nonlocal_var): Likewise.
-       (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
-       node flags properly.
- 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
-       * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
-       (-Wmemset-elt-size): New item.
- 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
-       PR ada/70759
-       * stor-layout.h (internal_reference_types): Delete.
-       * stor-layout.c (reference_types_internal): Likewise.
-       (internal_reference_types): Likewise.
-       (layout_type) <REFERENCE_TYPE>: Adjust.
- 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/70683
-       * tree.h (inchash::add_expr): Add FLAGS argument.
-       * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
-       use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
-       For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
-       Formatting fix.  Adjust recursive calls.  For tcc_comparison,
-       if swap_tree_comparison (code) is smaller than code, hash that
-       and arguments in the other order.  Hash CONVERT_EXPR the same
-       as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
-       of ADDR_EXPR of decl as the decl itself.  Add or remove
-       OEP_ADDRESS_OF from recursive flags as needed.  For
-       FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
-       operands commutatively and only the third one normally.
-       For internal CALL_EXPR hash in CALL_EXPR_IFN.
+       * config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5
+       and later.
  
- 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 2018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
  
-       * config/rtems.h (LIB_SPEC): Add -latomic.
+       * tree-dump.c (dump_node): Use splay_tree_delete_pointers.
  
- 2016-04-27  Joel Sherrill  <joel@rtems.org>
+ 2018-05-28  Richard Biener  <rguenther@suse.de>
  
-       * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
-       xilink.ld and flags not relevant to RTEMS.
+       PR tree-optimization/85933
+       * tree-vect-data-refs.c (vect_record_base_alignments): Only
+       look at stmts marked as vectorizable.
  
- 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
+ 2018-05-28  Richard Biener  <rguenther@suse.de>
  
-       * toplev.c (backend_init_target): Avoid calling init_reload when using
-       LRA.
+       PR tree-optimization/85934
+       * tree-vect-generic.c (expand_vector_operations_1): Hoist
+       vector boolean check before scalar optimization.
  
- 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-28  Jakub Jelinek  <jakub@redhat.com>
  
-       * reorg.c (try_merge_delay_insns): Declare i and j inside the
-       for loops rather than one for the whole function.
+       * doc/invoke.texi (ARM Options): Use @item instead of @itemx
+       for armv5te.
  
- 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
+ 2018-05-28  Mark Wielaard  <mark@klomp.org>
  
-       * match.pd (X + CST CMP X): New transformation.
+       * dwarf2asm.c (dw2_asm_output_delta_uleb128): Add brackets around lab2
+       if it is an expression containing a minus sign.
  
- 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
+ 2018-05-27  John David Anglin  <danglin@gcc.gnu.org>
  
-       * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
-       * fold-const.c (fold_binary_loc): Remove 2 transformations
-       superseded by match.pd.
-       * match.pd (x+x -> x*2): Generalize to integers.
+       * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
  
- 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-05-27  Paul Koning  <ni1d@arrl.net>
  
-       * config/i386/i386.md (operation on memory peephole): Duplicate an
-       existing peephole and adapt it to match lea rather than an operation
-       that clobbers CC.
+       * config/pdp11/pdp11.md (truncsihi2): Remove.
  
-       PR rtl-optimization/57193
-       * opts.c (default_options_table): Add OPT_frename_registers at -O2
-       and above.
-       * doc/invoke.texi (-frename-registers, -O2): Update documentation.
- 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
-       * tree-if-conv.c (any_pred_load_store): New static variable.
-       (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
-       any_pred_load_store instead of and_mask_load_store.
-       (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
-       (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
-       (combine_blocks, tree_if_conversion): Ditto.
- 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/70771
-       PR tree-optimization/70775
-       * tree-if-conv.c (if_convertible_phi_p): Remove check on special
-       virtual PHI nodes.  Delete parameter.
-       (if_convertible_loop_p_1): Delete argument to above function.
-       (predicate_all_scalar_phis): Delete code handling single-argument
-       PHIs.
-       (tree_if_conversion): Mark and update virtual SSA.
- 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       PR target/61821
-       * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
-       (x86_elf_aligned_common): Rename to ...
-       (x86_elf_aligned_decl_common): ... this.
-       Add decl arg.  Switch to .lbss for largecomm object.  Use
-       LARGECOMM_SECTION_ASM_OP.
-       * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
-       renaming.
-       * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
-       (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
-       Pass new decl arg.
-       * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
-       [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
- 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       PR target/59407
-       * config/i386/i386.c (SECTION_LARGE): Define.
-       (x86_64_elf_select_section): Set it for large data/bss sections.
-       Only clear SECTION_WRITE for .lrodata.
-       (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
-       data/bss sections.
-       * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
-       * varasm.c (default_elf_asm_named_section): Grow flagchars.
-       [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
-       SECTION_MACH_DEP.
-       * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
-       * doc/tm.texi: Regenerate.
+ 2018-05-27  Monk Chiang  <sh.chiang04@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
+       * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns
+       implementation.
+       (unaligned_store_dw): Ditto.
+       * config/nds32/nds32-memory-manipulation.c
+       (nds32_expand_movmemsi_loop_known_size): Refactoring implementation.
+       (nds32_gen_dup_4_byte_to_word_value): Rename to ...
+       (nds32_gen_dup_4_byte_to_word_value_aux): ... this.
+       (emit_setmem_word_loop): Rename to ...
+       (emit_setmem_doubleword_loop): ... this.
+       (nds32_gen_dup_4_byte_to_word_value): New function.
+       (nds32_gen_dup_8_byte_to_double_word_value): New function.
+       (nds32_expand_setmem_loop): Refine implementation.
+       (nds32_expand_setmem_loop_v3m): Ditto.
+       * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New
+       pattern.
  
-       PR bootstrap/70704
-       * configure.ac (--enable-checking): Document extra flag, for
-       non-release builds default to --enable-checking=yes,extra.
-       If misc checking and extra checking, define CHECKING_P to 2 instead
-       of 1.
-       * common.opt (fchecking=): Add.
-       * doc/invoke.texi (-fchecking=): Document.
-       * doc/install.texi: Document --enable-checking changes.
-       * configure: Regenerated.
-       * config.in: Regenerated.
- 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
-       attribute instead of which_alternative.
-       * config/i386/sse.md (*mov<mode>_internal): Ditto.
-       Use EXT_REX_SSE_REG_P where appropriate.
- 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/predicates.md (const0_operand): Do not match
-       const_wide_int code.
-       (const1_operand): Ditto.
- 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
-       for SSE constm1 operands and TARGET_AVX512VL.
-       (*movti_internal): Ditto.
-       (*mov<mode>_or): Use constm1_operand predicate.
-       * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
-       for SSE vector_all_ones operands and TARGET_AVX512VL.
-       * config/i386/predicates.md (constm1_operand): New predicate.
-       * config/i386/i386.c (standard_sse_constant_opcode): Simplify
-       emission of constant -1 load.
- 2016-04-25  Jason Merrill  <jason@redhat.com>
-       * gdbinit.in: Skip is-a.h.
-       * attribs.c (register_scoped_attributes): Fix logic.
-       * attribs.h: Declare register_scoped_attributes.
- 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000-builtin.def: Correct pasto error for
-       stxvd2x and stxvw4x built-in functions.
- 2016-04-25  DJ Delorie  <dj@redhat.com>
-       * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
-       (ashrhi3): Likewise.
-       (lshrhi3): Likewise.
- 2016-04-25  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70780
-       * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
-       wasn't visited yet.
-       (compute_antic): Mark blocks with abnormal preds as visited as
-       they have a final empty antic-in solution already.
- 2016-04-25  Michael Collison  <michael.collison@linaro.org>
-       * ChangeLog(2016-04-25): Fix ChangeLog formatting.
- 2016-04-25  Michael Collison  <michael.collison@linaro.org>
-       * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
-       mode is VQI to improve mixed mode vectorization.
-       * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
-       define_insn to match low half of signed vaddw.
-       * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
-       define_insn to match high half of signed vaddw.
-       * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
-       define_insn to match low half of unsigned vaddw.
-       * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
-       define_insn to match high half of unsigned vaddw.
-       * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
-       (arm_simd_check_vect_par_cnst_half_p): Likewise.
-       * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
-       for new function.
-       (arm_simd_check_vect_par_cnst_half_p): Likewise.
-       * config/arm/predicates.md (vect_par_constant_high): Support
-       big endian and simplify by calling
-       arm_simd_check_vect_par_cnst_half
-       (vect_par_constant_low): Likewise.
- 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
-       predicate for operand 2.
- 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
-           H.J. Lu  <hongjiu.lu@intel.com>
-       * config/i386/i386-protos.h (standard_sse_constant_p): Add
-       machine_mode argument.
-       * config/i386/i386.c (standard_sse_constant_p): Return 2 for
-       constm1_rtx operands.  For VOIDmode constants, get mode from
-       pred_mode.  Check mode size if the mode is supported by ABI.
-       (standard_sse_constant_opcode): Do not use standard_constant_p.
-       Strictly check ABI support for all-ones operands.
-       (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
-       immediates. Update calls to standard_sse_constant_p.
-       (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
-       (ix86_rtx_costs): Ditto.
-       * config/i386/i386.md (*movxi_internal_avx512f): Use
-       nonimmediate_or_sse_const_operand instead of vector_move_operand.
-       Use (v,BC) alternative instead of (v,C). Use register_operand
-       checks instead of MEM_P.
-       (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
-       of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
-       isa attribute.  Use register_operand checks instead of MEM_P.
-       (*movti_internal): Use nonimmediate_or_sse_const_operand for
-       TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
-       alternative and corresponding sse2 isa attribute.
-       (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
-       to standard_sse_constant_p.
-       (FP constant splitters): Ditto.
-       * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
-       (C): Ditto.
-       * config/i386/predicates.md (constm1_operand): Remove.
-       (nonimmediate_or_sse_const_operand): Rewrite using RTX.
-       * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
-       vector_all_ones_operand instead of constm1_operand.
- 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * print-rtl.c (print_rtx_insn_vec): New function.
-       * print-rtl.h: New prototype.
-       * store-motion.c (struct st_expr): Make avail_stores a vector.
-       (st_expr_entry): Adjust.
-       (free_st_expr_entry): Likewise.
-       (print_store_motion_mems): Likewise.
-       (find_moveable_store): Likewise.
-       (compute_store_table): Likewise.
-       (delete_store): Likewise.
-       (build_store_vectors): Likewise.
- 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
- 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
-       * vec.h (vec_safe_contains): New function.
-       (vec::contains): Likewise.
-       (vec::begin): Likewise.
-       (vec::end): Likewise.
- 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
-       PR sanitizer/70712
-       * cfgexpand.c (expand_stack_vars): Fix typo.
- 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-       * system.h (list, map, set, vector): Include conditionally.
-       * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
-       * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
-       * ipa-icf.c (INCLUDE_LIST): Define.
-       * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
-       * config/sh/sh.c (INCLUDE_VECTOR): Define.
-       * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
-       (INCLUDE_LIST, INCLUDE_VECTOR): Define.
-       * cp/logic.cc (INCLUDE_LIST): Define.
-       * fortran/trans-common.c (INCLUDE_MAP): Define.
- 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-       * auto-profile.c: Remove <string.h> include.
-       * ipa-icf-gimple.c: Remove <list> include.
-       * diagnostic.c: Remove <new> include.
-       * genmatch.c: Likewise.
-       * pretty-print.c: Likewise.
-       * toplev.c: Likewise
-       * c/c-objc-common.c: Likewise.
-       * cp/error.c: Likewise.
-       * fortran/error.c: Likewise.
- 2016-04-22  Richard Biener  <rguenther@suse.de>
-       * lto-streamer-in.c (input_ssa_names): Do not allocate
-       GIMPLE_NOP for all SSA names.
-       * lto-streamer-out.c (output_ssa_names): Do not output
-       SSA names that should have been released.
- 2016-04-22  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70740
-       * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
-       VDEF.
- 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/70750
-       * config/i386/predicates.md (call_insn_operand): Replace
-       sibcall_memory_operand with memory_operand.
- 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
-       * tree-vrp.c (register_edge_assert_for_2): Remove redundant
-       has_single_use() tests.
-       (register_edge_assert_for_1): Likewise.
-       (find_assert_locations_1): Check the liveness bitmap instead of
-       checking has_single_use().
+ 2018-05-27  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
+       * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns.
  
-       PR target/70728
-       * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
-       Extract AVX-512BW constraint from AVX.
+ 2018-05-27  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-04-21  Richard Biener  <rguenther@suse.de>
+       * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue".
+       (nds32_init_machine_status): Initialize machine->attr_naked_p and
+       machine->attr_no_prologue_p.
+       (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes.
+       (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes.
+       (nds32_expand_epilogue): Consider attr_naked_p.
+       (nds32_expand_epilogue_v3pop): Likewise.
+       (nds32_can_use_return_insn): Likewise.
+       * config/nds32/nds32.h (machine_function): Add attr_naked_p and
+       attr_no_prologue_p fields.
+       * config/nds32/nds32.opt (mret-in-naked-func): New option.
  
-       PR tree-optimization/70725
-       * tree-if-conv.c (if_convertible_phi_p): Adjust guard
-       for phi_convertible_by_degenerating_args.
-       (predicate_all_scalar_phis): Handle single-argument PHIs.
+ 2018-05-27  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-04-21  Richard Biener  <rguenther@suse.de>
+       PR target/85918
+       * config/i386/i386.md (fixunssuffix, floatunssuffix): New code
+       attributes.
+       * config/i386/sse.md
+       (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>):
+       Rename to ...
+       (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
+       ... this.
+       (<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>):
+       Rename to ...
+       (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
+       ... this.
+       (*<floatsuffix>floatv2div2sf2): Rename to ...
+       (*float<floatunssuffix>v2div2sf2): ... this.
+       (<floatsuffix>floatv2div2sf2_mask): Rename to ...
+       (float<floatunssuffix>v2div2sf2_mask): ... this.
+       (*<floatsuffix>floatv2div2sf2_mask_1): Rename to ...
+       (*float<floatunssuffix>v2div2sf2_mask_1): ... this.
+       (<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename
+       to ...
+       (fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
+       ... this.
+       (<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
+       Rename to ...
+       (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
+       ... this.
+       (<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
+       Rename to ...
+       (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
+       ... this.
+       (<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ...
+       (fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this.
+       (vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of
+       gen_ufix_truncv8dfv8si2.
+       * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask,
+       __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask,
+       __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask,
+       __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask,
+       __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask,
+       __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask,
+       __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask):
+       Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names.
+ 2018-05-24  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/85900
+       PR target/85345
+       * varasm.c (assemble_alias): Lookup ifunc attribute on error.
+ 2018-05-25  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv-protos.h (riscv_epilogue_uses): New.
+       * config/riscv/riscv.c (struct machine_function): Add
+       interrupt_handler_p and attribute_checked_p fields.
+       (riscv_attribute_table): Add interrupt.
+       (riscv_interrupt_type_p): New.
+       (riscv_save_reg_p): Save extra regs for interrupt handler.
+       (riscv_use_save_libcall): Return false  for interrupt handler.
+       (riscv_first_stack_step): Add forward declaration.
+       (riscv_compute_frame_info): New local interrupt_save_t1.  Set it
+       for interrupt handler with large frame.  Use it for saved reg list.
+       (riscv_expand_prologue): Move flag_stack_usage_info support to
+       eliminate duplication.
+       (riscv_expand_epilogue): Generate mret for interrupt handler.
+       (riscv_epilogue_uses): New.
+       (riscv_can_use_return_insn): Return false for interrupt handler.
+       (riscv_function_ok_for_sibcall): Likewise.
+       (riscv_set_current_function): Add interrupt handler support.
+       * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses.
+       * config/riscv/riscv.md (UNSPECV_MRET): New.
+       (GP_REGNUM): New.
+       (riscv_frflags, riscv_fsflags): Use tab after opcode.
+       (riscv_mret): New.
+       * doc/extend.texi (RISC-V Function Attributes) <interrupt>: New.
+ 2018-05-25  Bill Schmidt  <wschmidt@linux.ibm.com>
+       PR tree-optimization/85712
+       * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
+       this candidate has already been replaced in-situ by a copy.
+ 2018-05-25  Jason Merrill  <jason@redhat.com>
+       PR c++/80485 - inline function non-zero address.
+       * symtab.c (nonzero_address): Check DECL_COMDAT.
+ 2018-05-25  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/83628
+       * config/alpha/alpha.md (ashlsi3): New insn pattern.
+       (*ashlsi_se): Rename from *ashldi_se.  Define as sign
+       extension of SImode operation.  Use const123_operand predicate.
+       (*saddsi_1): Remove.
+       (*saddl_se_1): Ditto.
+       (*ssubsi_1): Ditto.
+       (*ssubl_se_1): Ditto.
+       * config/alpha/predicates.md (const123_operand): New predicate.
+       * config/alpha/constraints.md (P): Use IN_RANGE.
+ 2018-05-25  Richard Biener  <rguenther@suse.de>
+       * tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter,
+       defaulted to true.
+       (ref_maybe_used_by_stmt_p): Likewise.
+       (stmt_may_clobber_ref_p): Likewise.
+       (stmt_may_clobber_ref_p_1): Likewise.
+       * tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter
+       and pass it along.
+       (ref_maybe_used_by_stmt_p): Likewise.
+       (stmt_may_clobber_ref_p): Likewise.
+       (stmt_may_clobber_ref_p_1): Likewise.
+       * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use
+       the alias oracle to disambiguate DRs with stmts DR analysis
+       couldn't handle.
+       (vect_analyze_data_refs): Do not give up on not analyzable
+       DRs for BB vectorization.  Remove code truncating the dataref
+       vector.
  
-       PR middle-end/70747
-       * fold-const.c (fold_comparison): Return properly typed
-       constant boolean.
+ 2018-05-25  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85832
+       * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
+       Add (=Yk,v,C) variant using vptestm insn.  Use TARGET_AVX512BW
+       in test instead of TARGET_AVX512F for VI12_AVX512VL iterator.
+ 2018-05-25  Richard Biener  <rguenther@suse.de>
+       * tree-vect-data-refs.c (vect_find_stmt_data_reference): New
+       function, combining stmt data ref gathering and fatal analysis
+       parts.
+       (vect_analyze_data_refs): Remove now redudnant code and simplify.
+       * tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from
+       vect_analyze_loop_2 and use vect_find_stmt_data_reference.
+       * tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference.
+       * tree-vectorizer.h (vect_find_stmt_data_reference): Declare.
+ 2018-05-25  Bin Cheng  <bin.cheng@arm.com>
+       PR tree-optimization/85720
+       * tree-loop-distribution.c (break_alias_scc_partitions): Don't merge
+       SCC if all partitions are builtins.
+       (version_loop_by_alias_check): New parameter.  Generate cancelable
+       runtime alias check if all partitions are builtins.
+       (distribute_loop): Update call to above function.
+ 2018-05-25  Bin Cheng  <bin.cheng@arm.com>
+       * tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files.
+       (create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c.
+       (parm_default_def_partition_arg): Ditto.
+       (set_parm_default_def_partition): Ditto.
+       (get_parm_default_def_partitions): Ditto and make it static.
+       (get_undefined_value_partitions): Ditto and make it static.
+       (remove_ssa_form): Refactor call to init_var_map here.
+       * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range
+       computation for loop region.
+       (coalesce_partitions, compute_optimized_partition_bases): Ditto.
+       (register_default_def): Delete.
+       (for_all_parms, create_default_def): Move to tree-outof-ssa.c.
+       (parm_default_def_partition_arg): Ditto.
+       (set_parm_default_def_partition): Ditto.
+       (get_parm_default_def_partitions): Ditto and make it static.
+       (get_undefined_value_partitions): Ditto and make it static.
+       (coalesce_with_default, coalesce_with_default): Update comment.
+       (create_coalesce_list_for_region): New func factored out from
+       create_outofssa_var_map.
+       (populate_coalesce_list_for_outofssa): New func factored out from
+       create_outofssa_var_map and coalesce_ssa_name.
+       (create_outofssa_var_map): Delete.
+       (coalesce_ssa_name): Refactor to support live range computation.
+       * tree-ssa-coalesce.h (coalesce_ssa_name): Change decl.
+       (get_parm_default_def_partitions): Delete.
+       (get_undefined_value_partitions): Ditto.
+       * tree-ssa-live.c (init_var_map, delete_var_map): Support live range
+       computation for loop region.
+       (new_tree_live_info, loe_visit_block): Ditto.
+       (live_worklist, set_var_live_on_entry): Ditto.
+       (calculate_live_on_exit, verify_live_on_entry): Ditto.
+       * tree-ssa-live.h (struct _var_map): New fields.
+       (init_var_map): Change decl.
+       (region_contains_p): New.
+ 2018-05-25  Bin Cheng  <bin.cheng@arm.com>
+       * tree-ssa-live.h (live_merge_and_clear): Delete.
+ 2018-05-25  Richard Biener  <rguenther@suse.de>
+       PR c++/85912
+       * tree-dump.c (dequeue_and_dump): Remove access to removed
+       operand 2 of a SWITCH_EXPR.
+ 2018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
+       * doc/sourcebuild.texi (vect_double_cond_arith): Include
+       multiplication and division.
+       * doc/md.texi (cond_mul@var{m}, cond_div@var{m}, cond_mod@var{m})
+       (cond_udiv@var{m}, cond_umod@var{m}): Document.
+       * optabs.def (cond_smul_optab, cond_sdiv_optab, cond_smod_optab)
+       (cond_udiv_optab, cond_umod_optab): New optabs.
+       * internal-fn.def (IFN_COND_MUL, IFN_COND_DIV, IFN_COND_MOD)
+       (IFN_COND_RDIV): New internal functions.
+       * internal-fn.c (get_conditional_internal_fn): Handle TRUNC_DIV_EXPR,
+       TRUNC_MOD_EXPR and RDIV_EXPR.
+       * match.pd (UNCOND_BINARY, COND_BINARY): Handle them.
+       * config/aarch64/iterators.md (UNSPEC_COND_MUL, UNSPEC_COND_DIV):
+       New unspecs.
+       (SVE_INT_BINARY): Include mult.
+       (SVE_COND_FP_BINARY): Include UNSPEC_MUL and UNSPEC_DIV.
+       (optab, sve_int_op): Handle mult.
+       (optab, sve_fp_op, commutative): Handle UNSPEC_COND_MUL and
+       UNSPEC_COND_DIV.
+       * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New pattern
+       for SVE_INT_BINARY_SD.
+ 2018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/iterators.md (SVE_INT_BINARY_SD): New code iterator.
+       (optab, sve_int_op): Handle div and udiv.
+       * config/aarch64/aarch64-sve.md (<optab><mode>3): New expander
+       for SVE_INT_BINARY_SD.
+       (*<optab><mode>3): New insn for the same.
+ 2018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-vect-patterns.c: Include predict.h.
+       (vect_recog_divmod_pattern): Restrict check for division support
+       to when optimizing for size.
+ 2018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
+       * doc/sourcebuild.texi (vect_double_cond_arith: Document.
+       * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4.
+       (gimple_match_op::gimple_match_op): Add an overload for 4 operands.
+       (gimple_match_op::set_op): Likewise.
+       (gimple_resimplify4): Declare.
+       * genmatch.c (get_operand_type): Handle CFN_COND_* functions.
+       (expr::gen_transform): Likewise.
+       (decision_tree::gen): Generate a simplification routine for 4 operands.
+       * gimple-match-head.c (gimple_simplify): Add an overload for
+       4 operands.  In the top-level function, handle up to 4 call
+       arguments and call gimple_resimplify4.
+       (gimple_resimplify4): New function.
+       (build_call_internal): Pass a fourth operand.
+       (maybe_push_to_seq): Likewise.
+       * match.pd (UNCOND_BINARY, COND_BINARY): New operator lists.
+       Fold VEC_COND_EXPRs of an operation and a default value into
+       an IFN_COND_* function if possible.
+       * config/aarch64/iterators.md (UNSPEC_COND_MAX, UNSPEC_COND_MIN):
+       New unspecs.
+       (SVE_COND_FP_BINARY): Include them.
+       (optab, sve_fp_op): Handle them.
+       (SVE_INT_BINARY_REV): New code iterator.
+       (SVE_COND_FP_BINARY_REV): New int iterator.
+       (commutative): New int attribute.
+       * config/aarch64/aarch64-protos.h (aarch64_sve_prepare_conditional_op):
+       Declare.
+       * config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): New
+       function.
+       * config/aarch64/aarch64-sve.md (cond_<optab><mode>): Use it.
+       (*cond_<optab><mode>): New patterns for reversed operands.
  
- 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
+ 2018-05-25  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/70715
-       * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
-       after expanding BASE using expand_simple_operations.
+       * tree-vectorizer.h (STMT_VINFO_GROUP_*, GROUP_*): Remove.
+       (DR_GROUP_*): New, assert we have non-NULL ->data_ref_info.
+       (REDUC_GROUP_*): New, assert we have NULL ->data_ref_info.
+       (STMT_VINFO_GROUPED_ACCESS): Adjust.
+       * tree-vect-data-refs.c (everywhere): Adjust users.
+       * tree-vect-loop.c (everywhere): Likewise.
+       * tree-vect-slp.c (everywhere): Likewise.
+       * tree-vect-stmts.c (everywhere): Likewise.
+       * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise.
  
- 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
+ 2018-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
-       * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
-       New transformations.
+       * configure.ac (gcc_cv_as_section_has_e): Move to common section.
+       Rename to...
+       (gcc_cv_as_section_exclude): ... this.
+       Try Solaris as #exclude syntax.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * config/i386/i386.c (i386_solaris_elf_named_section): Handle
+       SECTION_EXCLUDE.
+       * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section)
+       [HAVE_GAS_SECTION_EXCLUDE]: Handle SECTION_EXCLUDE.
+       * varasm.c (default_elf_asm_named_section): Don't check if
+       HAVE_GAS_SECTION_EXCLUDE is defined.
+ 2018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
+       * doc/md.texi: Update the documentation of the cond_* optabs
+       to mention the new final operand.  Fix GET_MODE_NUNITS call.
+       Describe the scalar case too.
+       * internal-fn.def (IFN_EXTRACT_LAST): Change type to fold_left.
+       * internal-fn.c (expand_cond_unary_optab_fn): Expect 3 operands
+       instead of 2.
+       (expand_cond_binary_optab_fn): Expect 4 operands instead of 3.
+       (get_conditional_internal_fn): Update comment.
+       * tree-vect-loop.c (vectorizable_reduction): Pass the original
+       accumulator value as a final argument to conditional functions.
+       * config/aarch64/aarch64-sve.md (cond_<optab><mode>): Turn into
+       a define_expand and add an "else" operand.  Assert for now that
+       the else operand is equal to operand 2.  Use SVE_INT_BINARY and
+       SVE_COND_FP_BINARY instead of SVE_COND_INT_OP and SVE_COND_FP_OP.
+       (*cond_<optab><mode>): New patterns.
+       * config/aarch64/iterators.md (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX)
+       (UNSPEC_COND_SMIN, UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR)
+       (UNSPEC_COND_EOR): Delete.
+       (optab): Remove associated mappings.
+       (SVE_INT_BINARY): New code iterator.
+       (sve_int_op): Remove int attribute and add "minus" to the code
+       attribute.
+       (SVE_COND_INT_OP): Delete.
+       (SVE_COND_FP_OP): Rename to...
+       (SVE_COND_FP_BINARY): ...this.
  
- 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
+ 2018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       * match.pd (min(int_max, x), max(int_min, x)): New transformations.
+       * optabs.c (can_reuse_operands_p): New function.
+       (maybe_legitimize_operands): Try to reuse the results for
+       earlier operands.
  
- 2016-04-20  Jan Hubicka  <jh@suse.cz>
+ 2018-05-24  Uros Bizjak  <ubizjak@gmail.com>
  
-       * ipa-inline.c (can_inline_edge_p): Pass caller info to
-       ultiimate_alias_target.
-       (update_callee_keys): Likewise.
-       (lookup_recursive_calls): Likewise.
-       (speculation_useful_p): Likewise.
- 2016-04-20  Jan Hubicka  <jh@suse.cz>
-       PR ipa/70018
-       * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
-       (set_nothrow_flag_1): ... this; handle interposition correctly;
-       recurse on aliases and thunks.
-       (cgraph_node::set_nothrow_flag): New.
-       * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
-       functions compiled with non-call exceptions that binds to current
-       def.
-       (propagate_nothrow): Be safe WRT interposition.
-       * cgraph.h (set_nothrow_flag): Update prototype.
- 2016-04-18  Jan Hubicka  <jh@suse.cz>
-       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
-       max_loop_iterations_int.
-       (tree_unswitch_outer_loop): Likewise.
- 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/69489
-       * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
-       (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
-       Revise dump message.
-       (if_convertible_bb_p): Remove check on edge count of basic block's
-       predecessors.
- 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/56625
-       PR tree-optimization/69489
-       * tree-data-ref.h (DR_INNERMOST): New macro.
-       * tree-if-conv.c (innermost_loop_behavior_hash): New class for
-       hashing struct innermost_loop_behavior.
-       (ref_DR_map): Remove.
-       (innermost_DR_map): New map.
-       (baseref_DR_map): Revise comment.
-       (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
-       to innermost_DR_map accroding to its innermost loop behavior.
-       (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
-       to its innermost loop behavior.
-       (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
-       Add initialization for innermost_DR_map.  Record memory reference
-       in DR_BASE_ADDRESS if the reference is compound one or it doesn't
-       have innermost loop behavior.
-       (if_convertible_loop_p): Remove release for ref_DR_map.  Release
-       innermost_DR_map.
- 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.md (*lea<mode>_general_1): Rename from
-       *lea_general_1.  Use explicit SWI12 mode interator.
-       (*lea<mode>_general_2): Rename from *lea_general_2.
-       Use explicit SWI12 mode interator.
-       (*lea<mode>_general_3): Rename from *lea_general_3.
-       Use explicit SWI12 mode interator.
-       (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
-       Use explicit SWI12 mode interator.
-       (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
-       Use explicit SWI48 mode interator.
- 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
-       * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
-       Short-cut unaligned load and store cases.  Handle all integer
-       vector modes.
-       (ix86_expand_vector_move_misalign): Short-cut unaligned load
-       and store cases.  Call ix86_avx256_split_vector_move_misalign
-       directly without checking mode class.
- 2016-04-20  Andrew Pinski  <apinski@cavium.com>
-           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>):
+       Add {q} suffix to insn mnemonic.
  
-       PR target/64971
-       * config/aarch64/aarch64.md (sibcall): Force call
-       address to be DImode for ILP32.
-       (sibcall_value): Likewise.
- 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
-       * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
- 2016-04-20  Richard Biener  <rguenther@suse.de>
-       * gimple-match.h (maybe_build_generic_op): Adjust prototype.
-       * gimple-match-head.c (maybe_build_generic_op): Pass all ops
-       by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
-       (maybe_push_res_to_seq): Adjust.
-       * gimple-fold.c (maybe_build_generic_op): Likewise.
- 2016-04-20  Marek Polacek  <polacek@redhat.com>
-       * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
-       rather than true.
- 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
-       * config/i386/sse.md (vec_unpacks_lo_hi): Always
-       use kmovw to support AVX512F target.
- 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
-       * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
- 2016-04-20  Marek Polacek  <polacek@redhat.com>
-       PR tree-optimization/70725
-       * tree-if-conv.c (is_false_predicate): New function.
-       (predicate_mem_writes): Use it.
- 2016-04-20  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70726
-       * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
-       shift amounts from a pattern stmt operand.
- 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       PR target/70674
-       * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
-       stack_restore_from_fpr pattern when restoring r15.
-       (s390_optimize_prologue): Strip away the memory barrier in the
-       parallel when trying to get rid of restore insns.
-       * config/s390/s390.md ("stack_restore_from_fpr"): New insn
-       definition for loading the stack pointer from an FPR.  Compared to
-       the normal move insn this pattern includes a full memory barrier.
- 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
-       PR middle-end/70680
-       * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
-       implicitly linear or lastprivate iterator on the outer context.
- 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
-       * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
-       alignment check.
-       * config/i386/i386.md (ssememalign): Removed.
-       * config/i386/sse.md: Remove ssememalign attribute from patterns.
- 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/69201
-       * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
-       const short * to __builtin_ia32_loaddquhi512_mask.
-       (_mm512_maskz_loadu_epi16): Likewise.
-       (_mm512_mask_storeu_epi16): Pass short * to
-       __builtin_ia32_storedquhi512_mask.
-       (_mm512_mask_loadu_epi8): Pass const char * to
-       __builtin_ia32_loaddquqi512_mask.
-       (_mm512_maskz_loadu_epi8): Likewise.
-       (_mm512_mask_storeu_epi8): Pass char * to
-       __builtin_ia32_storedquqi512_mask.
-       * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
-       const double * to __builtin_ia32_loadupd512_mask.
-       (_mm512_mask_loadu_pd): Likewise.
-       (_mm512_maskz_loadu_pd): Likewise.
-       (_mm512_storeu_pd): Pass double * to
-       __builtin_ia32_storeupd512_mask.
-       (_mm512_mask_storeu_pd): Likewise.
-       (_mm512_loadu_ps): Pass const float * to
-       __builtin_ia32_loadups512_mask.
-       (_mm512_mask_loadu_ps): Likewise.
-       (_mm512_maskz_loadu_ps): Likewise.
-       (_mm512_storeu_ps): Pass float * to
-       __builtin_ia32_storeups512_mask.
-       (_mm512_mask_storeu_ps): Likewise.
-       (_mm512_mask_loadu_epi64): Pass const long long * to
-       __builtin_ia32_loaddqudi512_mask.
-       (_mm512_maskz_loadu_epi64): Likewise.
-       (_mm512_mask_storeu_epi64): Pass long long *
-       to __builtin_ia32_storedqudi512_mask.
-       (_mm512_loadu_si512): Pass const int * to
-       __builtin_ia32_loaddqusi512_mask.
-       (_mm512_mask_loadu_epi32): Likewise.
-       (_mm512_maskz_loadu_epi32): Likewise.
-       (_mm512_storeu_si512): Pass int * to
-       __builtin_ia32_storedqusi512_mask.
-       (_mm512_mask_storeu_epi32): Likewise.
-       * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
-       char * to __builtin_ia32_storedquqi256_mask.
-       (_mm_mask_storeu_epi8): Likewise.
-       (_mm256_mask_loadu_epi16): Pass const short * to
-       __builtin_ia32_loaddquhi256_mask.
-       (_mm256_maskz_loadu_epi16): Likewise.
-       (_mm_mask_loadu_epi16): Pass const short * to
-       __builtin_ia32_loaddquhi128_mask.
-       (_mm_maskz_loadu_epi16): Likewise.
-       (_mm256_mask_loadu_epi8): Pass const char * to
-       __builtin_ia32_loaddquqi256_mask.
-       (_mm256_maskz_loadu_epi8): Likewise.
-       (_mm_mask_loadu_epi8): Pass const char * to
-       __builtin_ia32_loaddquqi128_mask.
-       (_mm_maskz_loadu_epi8): Likewise.
-       (_mm256_mask_storeu_epi16): Pass short * to.
-       __builtin_ia32_storedquhi256_mask.
-       (_mm_mask_storeu_epi16): Pass short * to.
-       __builtin_ia32_storedquhi128_mask.
-       * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
-       const double * to __builtin_ia32_loadupd256_mask.
-       (_mm256_maskz_loadu_pd): Likewise.
-       (_mm_mask_loadu_pd): Pass onst double * to
-       __builtin_ia32_loadupd128_mask.
-       (_mm_maskz_loadu_pd): Likewise.
-       (_mm256_mask_storeu_pd): Pass double * to
-       __builtin_ia32_storeupd256_mask.
-       (_mm_mask_storeu_pd): Pass double * to
-       __builtin_ia32_storeupd128_mask.
-       (_mm256_mask_loadu_ps): Pass const float * to
-       __builtin_ia32_loadups256_mask.
-       (_mm256_maskz_loadu_ps): Likewise.
-       (_mm_mask_loadu_ps): Pass const float * to
-       __builtin_ia32_loadups128_mask.
-       (_mm_maskz_loadu_ps): Likewise.
-       (_mm256_mask_storeu_ps): Pass float * to
-       __builtin_ia32_storeups256_mask.
-       (_mm_mask_storeu_ps): ass float * to
-       __builtin_ia32_storeups128_mask.
-       (_mm256_mask_loadu_epi64): Pass const long long * to
-       __builtin_ia32_loaddqudi256_mask.
-       (_mm256_maskz_loadu_epi64): Likewise.
-       (_mm_mask_loadu_epi64): Pass const long long * to
-       __builtin_ia32_loaddqudi128_mask.
-       (_mm_maskz_loadu_epi64): Likewise.
-       (_mm256_mask_storeu_epi64): Pass long long * to
-       __builtin_ia32_storedqudi256_mask.
-       (_mm_mask_storeu_epi64): Pass long long * to
-       __builtin_ia32_storedqudi128_mask.
-       (_mm256_mask_loadu_epi32): Pass const int * to
-       __builtin_ia32_loaddqusi256_mask.
-       (_mm256_maskz_loadu_epi32): Likewise.
-       (_mm_mask_loadu_epi32): Pass const int * to
-       __builtin_ia32_loaddqusi128_mask.
-       (_mm_maskz_loadu_epi32): Likewise.
-       (_mm256_mask_storeu_epi32): Pass int * to
-       __builtin_ia32_storedqusi256_mask.
-       (_mm_mask_storeu_epi32): Pass int * to
-       __builtin_ia32_storedqusi128_mask.
-       * config/i386/i386-builtin-types.def (PCSHORT): New.
-       (PINT64): Likewise.
-       (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
-       (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
-       (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
-       (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
-       (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
-       (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
-       (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
-       (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
-       (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
-       (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
-       (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
-       (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
-       (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
-       (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
-       (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
-       (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
-       (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
-       (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
-       (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
-       (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
-       (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
-       (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
-       (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
-       (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
-       (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
-       (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
-       (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
-       (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
-       (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
-       (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
-       (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
-       (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
-       (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
-       (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
-       (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
-       (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
-       (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
-       (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
-       (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
-       (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
-       (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
-       (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
-       (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
-       (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
-       (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
-       (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
-       (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
-       (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
-       * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
-       use UNSPEC_STOREU.
-       (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
-       (ix86_avx256_split_vector_move_misalign): Don't use unaligned
-       load nor store.
-       (ix86_expand_vector_move_misalign): Likewise.
-       (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
-       to scalar function prototype for unaligned load/store builtins.
-       (ix86_expand_special_args_builtin): Updated.
-       * config/i386/sse.md (UNSPEC_LOADU): Removed.
-       (UNSPEC_STOREU): Likewise.
-       (VI_ULOADSTORE_BW_AVX512VL): Likewise.
-       (VI_ULOADSTORE_F_AVX512VL): Likewise.
-       (ssescalarsize): Handle V4TI, V2TI and V1TI.
-       (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
-       (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
-       (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
-       (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
-       (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
-       (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
-       (sse2_avx_avx512f>_storedqu<mode>): Likewise.
-       (<avx512>_storedqu<mode>_mask): Likewise.
-       (*sse4_2_pcmpestr_unaligned): Likewise.
-       (*sse4_2_pcmpistr_unaligned): Likewise.
-       (*mov<mode>_internal): Renamed to ...
-       (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
-       misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
-       (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
-       (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
- 2016-04-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70171
-       * tree-ssa-phiprop.c: Include stor-layout.h.
-       (phiprop_insert_phi): Handle the aggregate copy case.
-       (propagate_with_phi): Likewise.
- 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
-       instead of simplify_gen_subreg (... , 0).
-       (ix86_delegitimize_address): Ditto.
-       (ix86_split_divmod): Ditto.
-       (ix86_split_copysign_const): Ditto.
-       (ix86_split_copysign_var): Ditto.
-       (ix86_expand_args_builtin): Ditto.
-       (ix86_expand_round_builtin): Ditto.
-       (ix86_expand_special_args_builtin): Ditto.
-       * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
-       (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
-       (udivmodqi4): Ditto.
-       (absneg splitters): Ditto.
-       (*jcc_bt<mode>_1): Ditto.
- 2016-04-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70724
-       * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
-       restoring out from ...
-       (free_scc_vn): ... here.
-       * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
-       * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
-       tail merging.
-       (pass_fre::execute): Restore SSA info.
- 2016-04-19  Richard Biener  <rguenther@suse.de>
-       * gimple-walk.h (struct walk_stmt_info): Add stmt member.
-       * gimple-walk.c (walk_gimple_op): Initialize it.
-       (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
-       * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
-       remapping SSA names of defs.
-       (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
-       adjustment.
- 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
-       PR middle-end/70689
-       * lra-constraints.c (equiv_substition_p): New.
-       (process_alt_operands): Use it.
-       (swap_operands): Swap it.
-       (curr_insn_transform): Update it.
- 2016-04-18  Michael Matz  <matz@suse.de>
-       * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
-       (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
-       * tree-core.h (tree_type_common.align): Use bit-field.
-       (tree_type_common.spare): New.
-       (tree_decl_common.off_align): Make smaller.
-       (tree_decl_common.align): Use bit-field.
-       * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
-       * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
-       (scan_sharing_clauses): Ditto.
-       (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
-       (omp_finish_file): Ditto.
-       * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
-       (layout_decl): Ditto.
-       (relayout_decl): Ditto.
-       (finalize_record_size): Use SET_TYPE_ALIGN.
-       (finalize_type_size): Ditto.
-       (finish_builtin_struct): Ditto.
-       (layout_type): Ditto.
-       (initialize_sizetypes): Ditto.
-       * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
-       * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
-       (lookup_field_for_decl): Use SET_DECL_ALIGN.
-       (get_chain_field): Ditto.
-       (get_trampoline_type): Ditto.
-       (get_nl_goto_field): Ditto.
-       * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
-       SET_DECL_ALIGN.
-       (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
-       * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
-       * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
-       (build_qualified_type): Use SET_TYPE_ALIGN.
-       (build_aligned_type, build_range_type_1): Ditto.
-       (build_atomic_base): Ditto.
-       (build_common_tree_nodes): Ditto.
-       * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
-       (expand_one_stack_var_at): Ditto.
-       * coverage.c (build_var): Use SET_DECL_ALIGN.
-       * except.c (init_eh): Ditto.
-       * function.c (assign_parm_setup_block): Ditto.
-       * symtab.c (increase_alignment_1): Ditto.
-       * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
-       * tree-vect-stmts.c (ensure_base_align): Ditto.
-       * varasm.c (align_variable): Ditto.
-       (assemble_variable): Ditto.
-       (build_constant_desc): Ditto.
-       (output_constant_def_contents): Ditto.
-       * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
-       * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
-       * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
-       * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
-       * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
- 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/70708
-       * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
-       replace %vmovsd with "%vmovq".
-       (vec_concatv2df): Likewise.
- 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
-       (*vec_extractv2si_0): Ditto.
-       * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
-       (zero_extended_scalar_load_operand splitters): Ditto.
-       (vec_extract splitters): Ditto.
-       (*vec_extractv4si_0_zext): Ditto.
-       (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
-       and lowpart_subreg.
-       (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
-       (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
-       (*sse4_1_extractps): Use lowpart_subreg.
-       * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
- 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-       * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
-       gld requirements.
-       (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
-       Mention Solaris 11 packaging changes.
-       Update gas and gld requirements.
-       Remove reference to pre-Solaris 10 bug.
-       (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
-       systems and bugs.
-       (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
-       with cc.
- 2016-04-17  Jan Hubicka  <jh@suse.cz>
-       * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
-       max_loop_iterations_int.
- 2016-04-18  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/43434
-       * tree-ssa-structalias.c (struct vls_data): New.
-       (visit_loadstore): Handle all pointer-based accesses.
-       (compute_dependence_clique): Compute a bitmap of restrict tags
-       assigned bases and pass it to visit_loadstore.
- 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
-       PR target/70711
-       * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
-       armv8.1-a and armv8.1-a+crc.
- 2016-04-18  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70701
-       * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
-       references after translating through a memcpy.
- 2016-04-18  Richard Biener  <rguenther@suse.de>
-       * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
-       (compute_antic): ... here.  For partial antic use regular
-       postorder and scrap iteration.
-       (compute_partial_antic_aux): Remove unused return value.
-       (init_pre): Do not allocate postorder.
-       (fini_pre): Do not free postorder.
- 2016-04-18  Richard Biener  <rguenther@suse.de>
-       PR middle-end/37870
-       * expmed.c (extract_bit_field_1): Remove broken case
-       using a wider MODE_INT mode.
- 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
-       * has-brig.c (lendian16): Don't try to use __builtin_bswap16
-       unless compiling with at least GCC-4.8.
- 2016-04-17  Jan Hubicka  <jh@suse.cz>
-       PR bootstrap/70706
-       * graphite.c (graphite_finalize): Update call to
-       tree_estimate_probability.
-       * predict.h (tree_estimate_probability): Update prototype.
- 2016-04-17  Jan Hubicka  <jh@suse.cz>
-       * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
-       (tree_estimate_probability): Likewise.
-       (pass_profile::execute): Update.
-       (report_predictor_hitrates): New function.
-       * profile.c (compute_branch_probabilities): Use it.
-       * predict.h (report_predictor_hitrates): Declare.
- 2016-04-17  Jan Hubicka  <jh@suse.cz>
-       PR ipa/70018
-       * cgraph.h (cgraph_node::set_const_flag,
-       cgraph_node::set_pure_flag): Update prototype to return bool;
-       update comment.
-       * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
-       of interposable symbol are interposable, too.
-       (cgraph_set_const_flag_1): Rename to ...
-       (set_const_flag_1): ... this one; change to self recursive function
-       instead of call_for_symbol_thunks_and_aliases. Handle correctly
-       clearnig the flag in all variants and also virtual thunks of const
-       functions are pure; track if any change was done.
-       (cgraph_node::set_const_flag): Update.
-       (struct set_pure_flag_info): New struct.
-       (cgraph_set_pure_flag_1): Rename to ...
-       (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
-       rather than pointer encoded flags; track if any changes was done;
-       handle correctly clearning flag and setting flag of aliases already
-       declared const.
-       (cgraph_node::set_pure_flag): Update.
-       (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
+ 2018-05-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
  
-       PR other/70433
-       * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
-       backslash in label.
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
-       * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
-       '{}<> ' as escape-for-record.
+       * config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define.
+       (msp430_warn_func_return): New.
  
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
+ 2018-05-24  Roger Sayle  <roger@nextmovesoftware.com>
  
-       * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
-       structure.
+       * fold-const.c (tree_nonzero_bits): New function.
+       * fold-const.h (tree_nonzero_bits): Likewise.
+       * match.pd (POPCOUNT): New patterns to fold BUILTIN_POPCOUNT and
+       friends.  POPCOUNT(x&1) => x&1, POPCOUNT(x)==0 => x==0, etc.
  
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
+ 2018-05-24  H.J. Lu  <hongjiu.lu@intel.com>
  
-       PR other/70185
-       * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
-       * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
-       * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
-       * passes.c (finish_optimization_passes): Only call
-       finish_graph_dump_file if dfi->graph_dump_initialized.
-       (execute_function_dump, pass_init_dump_file): Use
-       dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/70256
-       * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
-       (debug_varmap): New function.
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
-       PR other/70183
-       * passes.c (pass_manager::register_pass): Propagate pflags.
- 2016-04-17  Tom de Vries  <tom@codesourcery.com>
-       PR other/68875
-       * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
-       * passes.c (pass_manager::pass_manager): Declare and init p_start in
-       INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
-       check if it's equal to p_start.
-       * passes.def: Add arguments to TERMINATE_PASS_LISTs.
- 2016-04-15  Jan Hubicka  <jh@suse.cz>
-       PR ipa/70018
-       * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
-       function does not bind to current def.
-       * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
-       handle conservatively calls to functions that does not need to bind
-       to current def.
-       (check_call): Update call of worse_state.
-       (ignore_edge_for_nothrow): Update.
-       (ignore_edge_for_pure_const): Likewise.
-       (propagate_pure_const): Update calls to worse_state.
-       (skip_function_for_local_pure_const): Reformat comments.
- 2016-04-15  Jan Hubicka  <jh@suse.cz>
-       PR ipa/70018
-       * cgraph.c (cgraph_node::get_availability): Add REF parameter.
-       (cgraph_node::function_symbol): Likewise.
-       (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
-       * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
-       (symtab_node::ultimate_alias_target): Add REF parameter.
-       (symtab_node::binds_to_current_def_p): Declare.
-       (symtab_node;:ultimate_alias_target_1): Add REF parameter.
-       (cgraph_node::function_symbol): Likewise.
-       (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
-       (cgraph_node::get_availability): Likewise.
-       (cgraph_edge::binds_to_current_def_p): New inline function.
-       (varpool_node::get_availability): Add REF parameter.
-       (varpool_node::ultimate_alias_target): Likewise.
-       * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
-       (symtab_node::binds_to_current_def_p): Likewise.
-       * varpool.c (varpool_node::get_availability): Likewise.
- 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
-       PR target/70662
-       * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
-       Fix mode size check.
- 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
-       * BASE-VER: Set to 7.0.0.
+       PR target/85900
+       PR target/85345
+       * varasm.c (assemble_alias): Check ifunc_resolver only on
+       FUNCTION_DECL.
  
- 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
+ 2018-05-24  Uros Bizjak  <ubizjak@gmail.com>
  
-       * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
+       PR target/85903
+       * config/i386/sse.md (movdi_to_sse): Do not generate pseudo
+       when memory input operand is handled.
  
- 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-05-24  Luis Machado  <luis.machado@linaro.org>
  
-       * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
-       architecture revisions.
+       * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static
+       global.
+       (qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table.
  
- 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-05-24  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
-       * config/i386/i386.c (ix86_using_red_zone): No longer static.
-       * config/i386/i386.md (stack decrement to push peepholes): Guard
-       with !x86_using_red_zone ().
+       * match.pd: Delay FMA folds until after vectorization.
  
- 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/70675
-       * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
-       to dump_generic_node.
-       (NIY): Pass also flags to do_niy.
- 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
-       * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
-       (simd_clone_vector_of_formal_parm_types)
-       (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
-       (simd_clone_mangle, simd_clone_create)
-       (simd_clone_adjust_return_type, create_tmp_simd_array)
-       (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
-       (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
-       (ipa_simd_modify_function_body, simd_clone_linear_addend)
-       (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
-       (pass_data_omp_simd_clone, class pass_omp_simd_clone)
-       (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
-       * omp-simd-clone.c: ... this new file.
-       (simd_clone_vector_of_formal_parm_types): Make it static.
-       * Makefile.in (OBJS): Add omp-simd-clone.o.
- 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
+ 2018-05-24  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
-       PR target/70662
-       * config/i386/sse.md: Use proper memory operand modifiers.
- 2016-04-15  Richard Biener  <rguenther@suse.de>
-       Alan Modra  <amodra@gmail.com>
-       PR tree-optimization/70130
-       * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
-       when alignment stays not the same and no not use the realign
-       scheme then.
- 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/70669
-       * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
-       direct move handlers for KFmode. Change TFmode handlers test from
-       FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
- 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/70594
-       * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
-       * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
-       (inlined_polymorphic_ctor_dtor_block_p): Use it.
-       * tree-ssa-live.c (remove_unused_scope_block_p): When
-       in_ctor_dtor_block, avoid discarding not just BLOCKs with
-       BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
-       block_ultimate_origin is FUNCTION_DECL.
-       (remove_unused_locals): If current_function_decl is
-       polymorphic_ctor_dtor_p, pass initial true to
-       remove_unused_scope_block_p' is_ctor_dtor_block.
+       PR target/83009
+       * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make
+       address check not strict.
  
- 2016-04-14  Martin Sebor  <msebor@redhat.com>
+ 2018-05-24  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR c++/69517
-       PR c++/70019
-       PR c++/70588
-       * doc/extend.texi (Variable Length): Revert.
+       * gimple-match.h (gimple_match_op): New class.
+       (mprts_hook): Replace parameters with a gimple_match_op *.
+       (maybe_build_generic_op): Likewise.
+       (gimple_simplified_result_is_gimple_val): Replace parameters with
+       a const gimple_match_op *.
+       (gimple_simplify): Replace code_helper * and tree * parameters with
+       a gimple_match_op * parameter.
+       (gimple_resimplify1): Replace code_helper *, tree and tree *
+       parameters with a gimple_match_op * parameter.
+       (gimple_resimplify2): Likewise.
+       (gimple_resimplify3): Likewise.
+       (maybe_push_res_to_seq): Replace code_helper, tree and tree *
+       parameters with a gimple_match_op * parameter.
+       * gimple-match-head.c (gimple_simplify): Change prototypes of
+       auto-generated functions to take a gimple_match_op * instead of
+       separate code_helper * and tree * parameters.  Make the same
+       change in the top-level overload and update calls to the
+       gimple_resimplify routines.  Update calls to the auto-generated
+       functions and to maybe_push_res_to_seq in the publicly-facing
+       operation-specific gimple_simplify overloads.
+       (gimple_match_op::MAX_NUM_OPS): Define.
+       (gimple_resimplify1): Replace rcode and ops with a single res_op
+       parameter.  Update call to gimple_simplify.
+       (gimple_resimplify2): Likewise.
+       (gimple_resimplify3): Likewise.
+       (mprts_hook): Replace parameters with a gimple_match_op *.
+       (maybe_build_generic_op): Likewise.
+       (build_call_internal): Replace type, nargs and ops with
+       a gimple_match_op *.
+       (maybe_push_res_to_seq): Replace res_code, type and ops parameters
+       with a single gimple_match_op *.  Update calls to mprts_hook,
+       build_call_internal and gimple_simplified_result_is_gimple_val.
+       Factor out code that is common to the tree_code and combined_fn cases.
+       * genmatch.c (expr::gen_transform): Replace tem_code and
+       tem_ops with a gimple_match_op called tem_op.  Update calls
+       to the gimple_resimplify functions and maybe_push_res_to_seq.
+       (dt_simplify::gen_1): Manipulate res_op instead of res_code and
+       res_ops.  Update call to the gimple_resimplify functions.
+       (dt_simplify::gen): Pass res_op instead of res_code and res_ops.
+       (decision_tree::gen): Make the functions take a gimple_match_op *
+       called res_op instead of separate res_code and res_ops parameters.
+       Update call accordingly.
+       * gimple-fold.c (replace_stmt_with_simplification): Replace rcode
+       and ops with a single res_op parameter.  Update calls to
+       maybe_build_generic_op and maybe_push_res_to_seq.
+       (fold_stmt_1): Update calls to gimple_simplify and
+       replace_stmt_with_simplification.
+       (gimple_fold_stmt_to_constant_1): Update calls to gimple_simplify
+       and gimple_simplified_result_is_gimple_val.
+       * tree-cfgcleanup.c (cleanup_control_expr_graph): Update call to
+       gimple_simplify.
+       * tree-ssa-sccvn.c (vn_lookup_simplify_result): Replace parameters
+       with a gimple_match_op *.
+       (vn_nary_build_or_lookup): Likewise.  Update call to
+       vn_nary_build_or_lookup_1.
+       (vn_nary_build_or_lookup_1): Replace rcode, type and ops with a
+       gimple_match_op *.  Update calls to the gimple_resimplify routines
+       and to gimple_simplified_result_is_gimple_val.
+       (vn_nary_simplify): Update call to vn_nary_build_or_lookup_1.
+       Use gimple_match_op::MAX_NUM_OPS instead of a hard-coded 3.
+       (vn_reference_lookup_3): Update call to vn_nary_build_or_lookup.
+       (visit_nary_op): Likewise.
+       (visit_reference_op_load): Likewise.
  
- 2016-04-14  Marek Polacek  <polacek@redhat.com>
-           Jan Hubicka  <hubicka@ucw.cz>
+ 2018-05-23  Luis Machado  <luis.machado@linaro.org>
  
-       PR c++/70029
-       * tree.c (verify_type): Disable the canonical type of main variant
-       check.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Use correct type
+       modifier for printing the step amount.
  
- 2016-04-14  Jason Merrill  <jason@redhat.com>
+ 2018-05-23  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
  
-       * cfgexpand.c, expr.c: Revert previous change.
+       PR target/78849
+       * gcc/tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN
+       types.
  
- 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
+ 2018-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR middle-end/70643
-       * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
-       when building a mem ref for the incoming reduction variable.
+       * doc/sourcebuild.texi (Endianness): New subsubsection.
  
- 2016-04-14  Richard Biener  <rguenther@suse.de>
+ 2018-05-23  Luis Machado  <luis.machado@linaro.org>
  
-       PR tree-optimization/70614
-       * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
-       loop if the evolution dropped to chrec_dont_know.
-       (interpret_condition_phi): Likewise.
+       * config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
+       <prefetch_dynamic_strides>: New const bool field.
+       * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
+       prefetch_dynamic_strides.
+       (exynosm1_prefetch_tune): Likewise.
+       (thunderxt88_prefetch_tune): Likewise.
+       (thunderx_prefetch_tune): Likewise.
+       (thunderx2t99_prefetch_tune): Likewise.
+       (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to
+       false.
+       (aarch64_override_options_internal): Update to set
+       PARAM_PREFETCH_DYNAMIC_STRIDES.
+       * doc/invoke.texi (prefetch-dynamic-strides): Document new option.
+       * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
+       * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
+       prefetch-dynamic-strides setting.
+ 2018-05-23  Luis Machado  <luis.machado@linaro.org>
+       * config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
+       <minimum_stride>: New const int field.
+       * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
+       minimum_stride field defaulting to -1.
+       (exynosm1_prefetch_tune): Likewise.
+       (thunderxt88_prefetch_tune): Likewise.
+       (thunderx_prefetch_tune): Likewise.
+       (thunderx2t99_prefetch_tune): Likewise.
+       (qdf24xx_prefetch_tune) <minimum_stride>: Set to 2048.
+       <default_opt_level>: Set to 3.
+       (aarch64_override_options_internal): Update to set
+       PARAM_PREFETCH_MINIMUM_STRIDE.
+       * doc/invoke.texi (prefetch-minimum-stride): Document new option.
+       * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
+       * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
+       stride is constant and is below the minimum stride threshold.
+ 2018-05-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/arm-cpus.in (mode26): Delete.
+       (armv4): Delete mode26 reference.
+       * config/arm/arm.c (arm_configure_build_target): Delete use of
+       isa_bit_mode26.
+ 2018-05-23  Uros Bizjak  <ubizjak@gmail.com>
+       * config/i386/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
+       New insn pattern.
+       (floatunssi<mode>2): Also enable for AVX512F and TARGET_SSE_MATH.
+       Rewrite expander pattern.  Emit gen_floatunssi<mode>2_i387_with_xmm
+       for non-SSE modes.
+       (floatunsdisf2): Rewrite expander pattern.  Hanlde TARGET_AVX512F.
+       (floatunsdidf2): Ditto.
  
- 2016-04-14  Richard Biener  <rguenther@suse.de>
+ 2018-05-23  Uros Bizjak  <ubizjak@gmail.com>
  
-       PR tree-optimization/70623
-       * tree-ssa-pre.c (changed_blocks): Make global ...
-       (compute_antic): ... local here.  Move and fix worklist
-       handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
-       (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
-       worklist handling, dump when ANTIC_IN changed.
-       (compute_partial_antic_aux): Remove worklist handling.
-       (init_pre): Do not compute post dominators.  Add a comment about
-       the CFG order chosen.
-       (fini_pre): Do not free post dominators.
- 2016-04-13  Martin Sebor  <msebor@redhat.com>
+       * config/i386/i386.md (fixuns_trunc<mode>di2): New insn pattern.
+       (fixuns_trunc<mode>si2_avx512f): Ditto.
+       (*fixuns_trunc<mode>si2_avx512f_zext): Ditto.
+       (fixuns_trunc<mode>si2): Also enable for AVX512F and TARGET_SSE_MATH.
+       Emit fixuns_trunc<mode>si2_avx512f for AVX512F targets.
  
-       PR c++/69517
-       PR c++/70019
-       PR c++/70588
-       * doc/extend.texi (Variable Length): Document C++ specifics.
- 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
-       PR c++/70641
-       * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
-       on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
-       eh edges have been purged.
+ 2018-05-23  Alexander Monakov  <amonakov@ispras.ru>
  
-       PR c++/70594
-       * tree-sra.c (create_access_replacement,
-       get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
-       gets fancy name.
-       * tree-pretty-print.c (dump_fancy_name): New function.
-       (dump_decl_name, dump_generic_node): Use it.
+       PR rtl-optimization/79985
+       * df-scan.c (df_insn_refs_collect): Remove special case for
+       global registers and asm statements.
  
- 2016-04-13  Jason Merrill  <jason@redhat.com>
+ 2018-05-23  Alexander Monakov  <amonakov@ispras.ru>
  
-       * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
-       * expr.c (expand_expr_real_1): Likewise.
+       * extend.texi (Global Register Variables): Rewrite the bullet list.
+       Note that the register is available for allocation. Note that access
+       via inline asm must use constraints. Add note about async-signal
+       handlers. Remove paragraph about automagic register selection.
  
- 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
+ 2018-05-23  Richard Biener  <rguenther@suse.de>
  
-       * config/i386/i386.md (kunpckhi): Swap operands.
-       (kunpcksi): Likewise.
-       (kunpckdi): Likewise.
-       * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
-       (vec_pack_trunc_<mode>): Likewise.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction
+       of fixed offset from memset VN.
  
- 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
  
-       PR debug/70628
-       * explow.c (convert_memory_address_addr_space_1): Formatting fix.
+       * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
+       first_interp field.
+       (alloc_cand_and_find_basis): Initialize first_interp field.
+       (slsr_process_mul): Modify first_interp field.
+       (slsr_process_add): Likewise.
+       (slsr_process_cast): Modify first_interp field for each new
+       interpretation.
+       (slsr_process_copy): Likewise.
+       (dump_candidate): Dump first_interp field.
+       (replace_mult_candidate): Process all interpretations, not just
+       subsequent ones.
+       (replace_rhs_if_not_dup): Likewise.
+       (replace_one_candidate): Likewise.
  
-       PR middle-end/70633
-       * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
-       gimplification turns some element into non-constant.
+ 2018-05-23  Wilco Dijkstra  <wdijkstr@arm.com>
  
-       PR debug/70628
-       * rtl.h (convert_memory_address_addr_space_1): New prototype.
-       * explow.c (convert_memory_address_addr_space_1): No longer static,
-       add NO_EMIT argument and don't call convert_modes if true, pass
-       it down recursively, remove break after return.
-       (convert_memory_address_addr_space): Adjust caller.
-       * simplify-rtx.c (simplify_unary_operation_1): Call
-       convert_memory_address_addr_space_1 instead of convert_memory_address,
-       if it returns NULL, don't simplify.
+       * config/aarch64/aarch64.c (aarch64_use_frame_pointer):
+       Add new boolean.
+       (aarch64_needs_frame_chain): New function.
+       (aarch64_parse_override_string): Set aarch64_use_frame_pointer.
  
- 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-05-23  Sudakshina Das  <sudi.das@arm.com>
  
-       PR target/70630
-       * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
+       PR target/84882
+       * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
+       Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags.
+       * config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative.
+       * config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg
+       as true for strict-align.
+       (aarch64_can_inline_p): Perform checks even when callee has no
+       attributes to check for strict alignment.
+       * doc/extend.texi (AArch64 Function Attributes): Document
+       no-strict-align.
+       * doc/invoke.texi: (AArch64 Options): Likewise.
+ 2018-05-23  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/85853
+       * tree-vect-slp.c (vect_slp_analyze_node_operations): Split out
+       the handling of the root of the node to...
+       (vect_slp_analyze_node_operations_1): ...this new function,
+       and run the whole thing with the child nodes' def types
+       set according to their SLP node's def type.
+ 2018-05-23  Richard Biener  <rguenther@suse.de>
+       PR middle-end/85874
+       * tree-data-ref.c (create_runtime_alias_checks): Defer
+       and ignore overflow warnings.
+ 2018-05-23  Yury Gribov  <tetra2005@gmail.com>
+       PR tree-optimization/85822
+       * tree-vrp.c (is_masked_range_test): Fix handling of negative
+       constants.
  
- 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-23  Richard Biener  <rguenther@suse.de>
  
-       * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
-       Bump the upper SIMDLEN limits, so that if the return type or
-       characteristic type if the return type is void can be passed in
-       all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
-       allowed.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary
+       memset constants via native_interpret_expr.
  
- 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
+ 2018-05-22  H.J. Lu  <hongjiu.lu@intel.com>
  
-       PR target/70640
-       * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
-       Do not use "=" constraint on an input constraint.
-       (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
-       (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
-       (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
-       generates (neg (abs ...)) instead of (abs ...).
+       PR target/85345
+       * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc
+       attribute.
+       (cgraph_node::create_alias): Likewise.
+       (cgraph_node::get_availability): Check ifunc_resolver instead
+       of looking up ifunc attribute.
+       * cgraphunit.c (maybe_diag_incompatible_alias): Likewise.
+       * varasm.c (do_assemble_alias): Likewise.
+       (assemble_alias): Likewise.
+       (default_binds_local_p_3): Likewise.
+       * cgraph.h (cgraph_node): Add ifunc_resolver.
+       (cgraph_node::only_called_directly_or_aliased_p): Return false
+       for IFUNC resolver.
+       * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc
+       attribute.
+       * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver
+       is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)).
+       (symtab_node::binds_to_current_def_p): Check ifunc_resolver
+       instead of looking up ifunc attribute.
  
- 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-22  Luis Machado  <luis.machado@linaro.org>
  
-       PR rtl-optimization/70596
-       * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
-       just invalidate LRA data and reset them.  Adjust dump wording.
+       * config/aarch64/aarch64.md (*ashift<mode>_extv_bfiz): New pattern.
  
- 2016-04-12  Martin Liska  <mliska@suse.cz>
+ 2018-05-22  Martin Sebor  <msebor@redhat.com>
  
-       Revert
-       2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
-       estimates here.
-       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
-       max_loop_iterations_int.
-       (tree_unswitch_outer_loop): Likewise.
-       * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
-       * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
+       PR middle-end/85359
+       * builtins.c (expand_builtin_strcpy): Call maybe_warn_nonstring_arg
+       only when expasion succeeds.
+       (expand_builtin_strcmp): Same.
+       (expand_builtin_strncmp): Same.
  
- 2016-04-12  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/68756
-       * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
-       instead of new_name.
- 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/70602
-       * tree-sra.c (generate_subtree_copies): Don't write anything into
-       constant pool decls.
-       * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
-       regardless whether there are depend clauses or not.
- 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/70381
-       * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
-       target attribute and pragma from changing the -mfloat128
-       and -mfloat128-hardware options.
-       * doc/extend.texi (Additional Floating Types): Document PowerPC
-       __float128 restrictions.
- 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
-       PR target/70133
-       * config/aarch64/driver-aarch64.c
-       (aarch64_get_extension_string_for_isa_flags): New.
-       (arch_extension): Rename to...
-       (aarch64_arch_extension): ...This.
-       (ext_to_feat_string): Rename to...
-       (aarch64_extensions): ...This.
-       (aarch64_core_data): Keep track of architecture extension flags.
-       (cpu_data): Rename to...
-       (aarch64_cpu_data): ...This.
-       (aarch64_arch_driver_info): Keep track of architecture extension
-       flags.
-       (get_arch_name_from_id): Rename to...
-       (get_arch_from_id): ...This, change return type.
-       (host_detect_local_cpu): Update and reformat for renames, handle
-       extensions through common infrastructure.
- 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
-       PR target/70133
-       * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
-       track of a canonical flag name.
-       (all_extensions): Likewise.
-       (arch_to_arch_name): Also track extension flags enabled by the arch.
-       (all_architectures): Likewise.
-       (aarch64_parse_extension): Move to here.
-       (aarch64_get_extension_string_for_isa_flags): Take a new argument,
-       rework.
-       (aarch64_rewrite_selected_cpu): Update for above change.
-       * config/aarch64/aarch64-option-extensions.def: Rework the way flags
-       are handled, such that the single explicit value enabled by an
-       extension is kept seperate from the implicit values it also enables.
-       * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
-       to here.
-       (aarch64_parse_extension): New.
-       * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
-       here to config/aarch64/aarch64-protos.h.
-       (aarch64_parse_extension): Move from here to
-       common/config/aarch64/aarch64-common.c.
-       (aarch64_option_print): Update.
-       (aarch64_declare_function_name): Likewise.
-       (aarch64_start_file): Likewise.
-       * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
-       the canonical flag for extensions.
-       * config.gcc (aarch64*-*-*): Extend regex for capturing extension
-       flags.
- 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
-       AARCH64_FL_CRC.
- 2016-04-09  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/68953
-       * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
-       first to last subscript.
- 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/70586
-       * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
-       for any calls.
- 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
-       PR lto/70289
-       PR ipa/70348
-       PR tree-optimization/70373
-       PR middle-end/70533
-       PR middle-end/70534
-       PR middle-end/70535
-       * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
-       clauses for acc parallel reductions as necessary.  Error on those
-       that are private.
-       * omp-low.c (scan_sharing_clauses): Don't install variables which
-       are used in acc parallel reductions.
-       (lower_rec_input_clauses): Remove dead code.
-       (lower_oacc_reductions): Add support for reference reductions.
-       (lower_reduction_clauses): Remove dead code.
-       (lower_omp_target): Don't remap variables appearing in acc parallel
-       reductions.
-       * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
+ 2018-05-22  Martin Sebor  <msebor@redhat.com>
  
- 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
+       * calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment.
  
-       PR middle-end/70593
-       * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
-       with multiple SSA_NAME defs, force the outputs other than first
-       to be live before calling live_track_process_def on each output.
+ 2018-05-22  Jackson Woodruff  <jackson.woodruff@arm.com>
+           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       PR rtl-optimization/70574
-       * fwprop.c (forward_propagate_and_simplify): Don't add
-       REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
-       (try_fwprop_subst): Don't add REG_EQUAL note if there are any
-       paradoxical subregs within *loc.
+       * config/aarch64/aarch64-ldpstp.md: Replace uses of
+       aarch64_mem_pair_operand with memory_operand and delete operand swapping
+       code.
+       * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp):
+       Add check for legitimate_address.
+       (aarch64_gen_adjusted_ldpstp): Swap operands where appropriate.
+       (aarch64_swap_ldrstr_operands): New.
+       * config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands):
+       Define prototype.
+ 2018-05-22  Jackson Woodruff  <jackson.woodruff@arm.com>
+           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
- 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
+       * config/aarch64/aarch64.md: New patterns to generate stp
+       and ldp.
+       (store_pair_sw, store_pair_dw): New patterns to generate stp for
+       single words and double words.
+       (load_pair_sw, load_pair_dw): Likewise.
+       (store_pair_sf, store_pair_df, store_pair_si, store_pair_di):
+       Delete.
+       (load_pair_sf, load_pair_df, load_pair_si, load_pair_di):
+       Delete.
+       * config/aarch64/aarch64-ldpstp.md: Modify peephole
+       for different mode ldpstp and add peephole for merged zero stores.
+       Likewise for loads.
+       * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp):
+       Add size check.
+       (aarch64_gen_store_pair): Rename calls to match new patterns.
+       (aarch64_gen_load_pair): Rename calls to match new patterns.
+       * config/aarch64/aarch64-simd.md (load_pair<mode>): Rename to...
+       (load_pair<DREG:mode><DREG2:mode>): ... This.
+       (store_pair<mode>): Rename to...
+       (vec_store_pair<DREG:mode><DREG2:mode>): ... This.
+       * config/aarch64/iterators.md (DREG, DREG2, DX2, SX, SX2, DSX):
+       New mode iterators.
+       (V_INT_EQUIV): Handle SImode.
+       * config/aarch64/predicates.md (aarch64_reg_zero_or_fp_zero):
+       New predicate.
  
-       * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
-       -ftree-parallelize-loops={0,1}.
-       * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
-       * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
-       * config/ia64/hpux.h (LIB_SPEC): Likewise.
-       * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
-       * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
+ 2018-05-22  Martin Sebor  <msebor@redhat.com>
  
- 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
+       PR c/85623
+       * calls.c (maybe_warn_nonstring_arg): Use string length to set
+       or ajust the presumed bound on an operation to avoid unnecessary
+       warnings.
  
-       PR sanitizer/70541
-       * asan.c (instrument_derefs): If we get unknown location, extract it
-       with EXPR_LOCATION.
-       (maybe_instrument_call): Instrument gimple_call's arguments if needed.
+ 2018-05-22  Martin Sebor  <msebor@redhat.com>
  
- 2016-04-08  Tom de Vries  <tom@codesourcery.com>
+       PR tree-optimization/85826
+       * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid
+       assuming that a DECL necesarily has a constant size.
  
-       * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
-       implicit firstprivate clause.
+ 2018-05-22  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR middle-end/85862
+       * internal-fn.c (expand_direct_optab_fn): Cope with a null lhs.
  
-       PR target/70566
-       * config/arm/thumb2.md (tst + branch-> lsls + branch
-       peephole below *orsi_not_shiftsi_si): Require that condition
-       register is dead after the peephole.
-       (second peephole after the above): Likewise.
+ 2018-05-22  Richard Biener  <rguenther@suse.de>
  
- 2016-04-08  Alan Modra  <amodra@gmail.com>
+       PR tree-optimization/85834
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly handle
+       non-constant and non-zero memset arguments.
  
-       PR target/70117
-       * builtins.c (fold_builtin_classify): For IBM extended precision,
-       look at just the high-order double to test for NaN.
-       (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
-       test just the high double for Inf but both doubles for subnormal
-       limit.
+ 2018-05-22  Martin Liska  <mliska@suse.cz>
  
- 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
+       PR ipa/85607
+       * ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types.
  
-       * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
-       * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
-       node->simdclone->mask_mode != VOIDmode masks.
-       (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
-       earlier, use it instead of node->simdclone.
-       * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
-       Set clonei->mask_mode.
+ 2018-05-22  Richard Biener  <rguenther@suse.de>
  
- 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
+       PR tree-optimization/85863
+       * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant
+       comparisons when vectype is specified.
+       (vectorizable_condition): Do not specify vectype for
+       vect_is_simple_cond when SLP vectorizing.
  
-       PR c/70436
-       * parser.c (cp_parser_iteration_statement): New parameter IF_P.
-       Pass it through to cp_parser_already_scoped_statement.
-       (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
-       it through to cp_parser_statement.
-       (cp_parser_statement): Pass IF_P through to
-       cp_parser_iteration_statement.
-       (cp_parser_pragma): Adjust call to
-       cp_parser_iteration_statement.
+ 2018-05-21  Michael Meissner  <meissner@linux.ibm.com>
  
- 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
+       PR target/85657
+       * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
+       define __ibm128 as long double.
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128
+       as a distinct type when IEEE 128-bit support is enabled.
+       (init_float128_ieee): Fix up conversions between IFmode and IEEE
+       128-bit types to use the correct functions.
+       (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to
+       convert between 128-bit floating point types that have different
+       modes but the same representation, instead of using gen_lowpart to
+       makean alias.
+       * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and
+       KFmode.
+       (IFKF_reg): New attributes to give the register constraints for
+       IFmode and KFmode.
+       (extend<mode>tf2_internal): New insns to mark an explicit
+       conversion between 128-bit floating point types that have a
+       different mode but share the same representation.
  
-       PR c/70436
-       * gimplify.c (gimplify_omp_ordered): Add explicit braces to
-       resolve a future -Wparentheses warning.
-       * omp-low.c (scan_sharing_clauses): Likewise.
-       * tree-parloops.c (eliminate_local_variables): Likewise.
+ 2018-05-21  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
+       PR tree-optimization/85814
+       * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with
+       a null return from get_strinfo when unsharing the next
+       strinfo in the chain.
  
-       PR rtl-optimization/70398
-       * lra-constraints.c (process_address_1): Check zero scale and code
-       for reloading with zero scale.
+ 2018-05-21  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
  
- 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
+       PR gcc/84923
+       * varasm.c (weak_finish): Clean up weak_decls.
  
-       * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
-       (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
+ 2018-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
- 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
+       * config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL,
+       UNSPEC_SABDL2, UNSPEC_SADALP, UNSPEC_UABAL, UNSPEC_UABDL2,
+       UNSPEC_UADALP values.
+       * config/aarch64/iterators.md (ABAL): New int iterator.
+       (ABDL2): Likewise.
+       (ADALP): Likewise.
+       (sur): Add mappings for the above.
+       * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
+       New define_insn.
+       (aarch64_<sur>abal<mode>_4): Likewise.
+       (aarch64_<sur>adalp<mode>_3): Likewise.
+       (<sur>sadv16qi): New define_expand.
  
-       * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
-       Add support for AVX512F clones, include them by default for
-       exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
-       and use it if charasteric type is 8-bit, for AVX512F allow simdlen
-       up to 128.
+ 2018-05-21  Alexander Nesterovskiy  <alexander.nesterovskiy@intel.com>
  
-       PR middle-end/70550
-       * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
-       * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
-       firstprivate clauses.
-       * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
-       OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
-       (lower_omp_target): Set TREE_NO_WARNING for
-       non-addressable possibly uninitialized vars which are copied into
-       addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
+       * config/i386/i386.md (*movsf_internal): AVX falsedep fix.
+       (*movdf_internal): Ditto.
+       (*rcpsf2_sse): Ditto.
+       (*rsqrtsf2_sse): Ditto.
+       (*sqrt<mode>2_sse): Ditto.
+ 2018-05-21  Tamar Christina  <tamar.christina@arm.com>
+       * config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to
+       eor3q<mode>4.
+       (aarch64_bcaxqv8hi): Change to bcaxq<mode>4.
+       * config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32,
+       veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8,
+       vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32,
+       vbcaxq_s64): New.
+       * config/aarch64/arm_neon.h: Likewise.
+       * config/aarch64/iterators.md (VQ_I): New.
+ 2018-05-21  Alexey Brodkin <abrodkin@synopsys.com>
+       * config.gcc: Add arc/t-multilib-linux to tmake_file for
+       arc*-*-linux*.
+       * config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and
+       MULTILIB_DIRNAMES
+ 2018-05-20  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/constraints.md (S): New constraint.
+       * config/nds32/nds32.md (call_internal): Use constraint S.
+       (call_value_internal): Likewise.
+       (sibcall_internal): Likewise.
+       (sibcall_value_internal): Likewise.
+ 2018-05-20  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.c (nds32_register_move_cost): Take garywolf cpu
+       into consideration.
+ 2018-05-20  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-cost.c (rtx_cost_model_t): New structure.
+       (insn_size_16bit, insn_size_32bit): New variables for cost evaluation.
+       (nds32_rtx_costs_impl): Simplify.
+       (nds32_address_cost_impl): Simplify.
+       (nds32_init_rtx_costs): New function.
+       (nds32_rtx_costs_speed_prefer): Likewise.
+       (nds32_rtx_costs_size_prefer): Likewise.
+       (nds32_address_cost_speed_prefer): Likewise.
+       (nds32_address_cost_speed_fwprop): Likewise.
+       (nds32_address_cost_size_prefer): Likewise.
+       * config/nds32/nds32-protos.h (nds32_init_rtx_costs): Declare.
+       * config/nds32/nds32.c (nds32_option_override): Use
+       nds32_init_rtx_costs function.
+ 2018-05-20  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.c (nds32_asm_file_start): Output pipeline model.
+       * config/nds32/nds32.h (TARGET_PIPELINE_N7): Define.
+       (TARGET_PIPELINE_N8): Likewise.
+       (TARGET_PIPELINE_N10): Likewise.
+       (TARGET_PIPELINE_N13): Likewise.
+       (TARGET_PIPELINE_GRAYWOLF): Likewise.
+ 2018-05-19  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/nds32-fpu.md: Update copyright year.
+ 2018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.h (ASM_SPEC): Adjust spec rule.
+ 2018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.c
+       (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable.
+       * config/nds32/nds32.opt (minline-asm-r15): New option.
+ 2018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add
+       MASK_HW_ABS.
+       * config/nds32/nds32.md (abssi2): New pattern.
+ 2018-05-19  Uros Bizjak  <ubizjak@gmail.com>
+       * config/i386/i386.md (rex64namesuffix): New mode attribute.
+       * config/i386/sse.md (sse_cvtsi2ss<rex64namesuffix><round_name>):
+       Merge insn pattern from sse_cvtsi2ss<round_name> and
+       sse_cvtsi2ssq<round_name> using SWI48 mode iterator.
+       (sse_cvtss2si<rex64namesuffix><round_name>): Merge insn pattern
+       from sse_cvtss2si<round_name> and sse_cvtss2siq<round_name>
+       using SWI48 mode iterator.
+       (sse_cvtss2si<rex64namesuffix>_2): Merge insn pattern from
+       sse_cvtss2si_2 and sse_cvtss2siq_2 using SWI48 mode iterator.
+       (sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Merge insn
+       pattern from sse_cvttss2si<round_saeonly_name>
+       and sse_cvttss2siq<round_saeonly_name> using SWI48 mode iterator.
+       (avx512f_vcvtss2usi<rex64namesuffix><round_name>): Merge insn pattern
+       from avx512f_vcvtss2usi<round_name> and avx512f_vcvtss2usiq<round_name>
+       using SWI48 mode iterator.
+       (avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>): Merge
+       insn pattern from avx512f_vcvttss2usi<round_saeonly_name> and
+       avx512f_vcvttss2usiq<round_saeonly_name> using SWI48 mode iterator.
+       (avx512f_vcvtsd2usi<rex64namesuffix><round_name>): Merge insn pattern
+       from avx512f_vcvtsd2usi<round_name> and avx512f_vcvtsd2usiq<round_name>
+       using SWI48 mode iterator.
+       (avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>): Merge
+       insn pattern from avx512f_vcvttsd2usi<round_saeonly_name> and
+       avx512f_vcvttsd2usiq<round_saeonly_name> using SWI48 mode iterator.
+       (sse2_cvtsd2si<rex64namesuffix><round_name>): Merge insn pattern from
+       sse2_cvtsd2si<round_name> and sse2_cvtsd2siq<round_name> using
+       SWI48 mode iterator.
+       (sse2_cvtsd2si<rex64namesuffix>_2): Merge insn pattern from
+       sse2_cvtsd2si_2 and sse2_cvtsd2siq_2 using SWI48 mode iterator.
+       (sse_cvttsd2si<rex64namesuffix><round_saeonly_name>): Merge insn
+       pattern from sse_cvttsd2si<round_saeonly_name>
+       and sse_cvttsd2siq<round_saeonly_name> using SWI48 mode iterator.
+ 2018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-md-auxiliary.c
+       (nds32_valid_smw_lwm_base_p): Refine.
+       (nds32_output_smw_single_word): Refine.
+       (nds32_output_smw_double_word): New.
+       * config/nds32/nds32-protos.h (nds32_output_smw_double_word): New.
+ 2018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Refine.
+       (nds32_output_stack_pop): Refine.
+       (nds32_expand_unaligned_load): Refine.
+       (nds32_expand_unaligned_store): Refine.
+ 2018-05-19  Kuan-Lin Chen <kuanlinchentw@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/constants.md: Add TP_REGNUM constant.
+       (unspec_element): Add UNSPEC_GOTINIT, UNSPEC_GOT, UNSPEC_GOTOFF,
+       UNSPEC_PLT, UNSPEC_TLSGD, UNSPEC_TLSLD, UNSPEC_TLSIE, UNSPEC_TLSLE and
+       UNSPEC_ADD32.
+       * config/nds32/nds32-doubleword.md: Consider flag_pic.
+       * config/nds32/nds32-dspext.md (mov<mode>): Expand TLS and PIC cases.
+       * config/nds32/nds32-predicates.c (nds32_const_unspec_p): New.
+       * config/nds32/nds32-md-auxiliary.c: Implementation that support TLS
+       and PIC code generation.
+       * config/nds32/nds32-protos.h: Declarations that support TLS and PIC
+       code generation.
+       * config/nds32/nds32-relax-opt.c: Consider TLS and PIC for relax
+       optimization.
+       * config/nds32/nds32.md: Support TLS and PIC.
+       * config/nds32/nds32.c: Support TLS and PIC.
+       * config/nds32/nds32.h (nds32_relax_insn_type): New enum type.
+       * config/nds32/predicates.md (nds32_nonunspec_symbolic_operand): New
+       predicate.
  
- 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
+ 2018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-predicates.c (const_vector_to_hwint): Use machine
+       mode with E_ prefix.
+ 2018-05-19  Kuan-Lin Chen <kuanlinchentw@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/constants.md (unspec_element): Add UNSPEC_ICT.
+       * config/nds32/nds32-md-auxiliary.c
+       (symbolic_reference_mentioned_p): New.
+       (nds32_legitimize_ict_address): New.
+       (nds32_expand_ict_move): New.
+       (nds32_indirect_call_referenced_p): New.
+       (nds32_symbol_binds_local_p): Delete.
+       (nds32_long_call_p): Modify.
+       * config/nds32/nds32-opts.h (nds32_ict_model_type): New enum type.
+       * config/nds32/nds32-protos.h
+       (symbolic_reference_mentioned_p): Declare.
+       (nds32_legitimize_ict_address): Declare.
+       (nds32_expand_ict_move): Declare.
+       (nds32_indirect_call_referenced_p): Declare.
+       * config/nds32/nds32-relax-opt.c (nds32_ict_const_p): New.
+       (nds32_relax_group): Use nds32_ict_const_p as condition.
+       * config/nds32/nds32.c (nds32_attribute_table): Add "indirect_call".
+       (nds32_asm_file_start): Output ict_model directive in asm code.
+       (nds32_legitimate_address_p): Consider indirect call.
+       (nds32_print_operand): Consider indirect call.
+       (nds32_print_operand_address): Consider indirect call.
+       (nds32_insert_attributes): Handle "indirect_call" attribute.
+       (TARGET_LEGITIMATE_ADDRESS_P): Define.
+       (TARGET_LEGITIMATE_CONSTANT_P): Define.
+       (TARGET_CANNOT_FORCE_CONST_MEM): Define.
+       (TARGET_DELEGITIMIZE_ADDRESS): Define.
+       (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
+       * config/nds32/nds32.h (SYMBOLIC_CONST_P): Define.
+       (TARGET_ICT_MODEL_SMALL): Define.
+       (TARGET_ICT_MODEL_LARGE): Define.
+       * config/nds32/nds32.md (movsi): Consider ict model.
+       (call, call_value): Consider ict model.
+       (sibcall, sibcall_value): Consider ict model.
+       * config/nds32/nds32.opt (mict-model): New option.
+       * config/nds32/predicates.md (nds32_symbolic_operand): Consider ict
+       model.
  
-       * config/pa/predicates.md (integer_store_memory_operand): Accept
-       REG+D operands with a large offset when reload_in_progress is true.
-       (floating_point_store_memory_operand): Likewise.
+ 2018-05-18  Kito Cheng  <kito.cheng@gmail.com>
+           Monk Chiang  <sh.chiang04@gmail.com>
+           Jim Wilson <jimw@sifive.com>
+       * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
+       Add support to parse rv32e*.  Clear MASK_RVE for rv32i and rv64i.
+       * config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e.
+       * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
+       __riscv_32e when TARGET_RVE.  Handle ABI_ILP32E as soft-float ABI.
+       * config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E.
+       * config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE,
+       compute save_libcall_adjustment properly.
+       (riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E.
+       (riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E.
+       * config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E.
+       (STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE.
+       (GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise.
+       (ABI_SPEC): Handle mabi=ilp32e.
+       * config/riscv/riscv.opt (abi_type): Add ABI_ILP32E.
+       (RVE): Add RVE mask.
+       * doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info.
+       <-march>: Add rv32e as an example.
+ 2018-05-18  Marc Glisse  <marc.glisse@inria.fr>
+       PR c++/82899
+       * tree-ssa-structalias.c (create_variable_info_for_1): Extra argument.
+       (intra_create_variable_infos): Handle C++ constructors.
+ 2018-05-18  Martin Liska  <mliska@suse.cz>
+       * passes.def: Remove a redundant pass.
+ 2018-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+       PR bootstrap/85838
+       * config/sparc/sparc.c (sparc_expand_builtin): Always initialize op[0].
+ 2018-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/arm-cpus.in (armv3m, mode32): Delete features.
+       (ARMv4): Update.
+       (ARMv2, ARMv3, ARMv3m): Delete fgroups.
+       (ARMv6m): Update.
+       (armv2, armv2a, armv3, armv3m): Delete architectures.
+       (arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620,
+       arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720,
+       arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi):
+       Delete cpus.
+       * config/arm/arm.md (maddsidi4): Remove check for arm_arch3m.
+       (*mulsidi3adddi): Likewise.
+       (mulsidi3): Likewise.
+       (*mulsidi3_nov6): Likewise.
+       (umulsidi3): Likewise.
+       (umulsidi3_nov6): Likewise.
+       (umaddsidi4): Likewise.
+       (*umulsidi3adddi): Likewise.
+       (smulsi3_highpart): Likewise.
+       (*smulsi3_highpart_nov6): Likewise.
+       (umulsi3_highpart): Likewise.
+       (*umulsi3_highpart_nov6): Likewise.
+       * config/arm/arm.h (arm_arch3m): Delete.
+       * config/arm/arm.c (arm_arch3m): Delete.
+       (arm_option_override_internal): Update armv3-related comment.
+       (arm_configure_build_target): Delete use of isa_bit_mode32.
+       (arm_option_reconfigure_globals): Delete set of arm_ach3m.
+       (arm_rtx_costs_internal): Delete check of arm_arch3m.
+       * config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m.
+       (mulsa3): Likewise.
+       (mulusa3): Likewise.
+       * config/arm/arm-protos.h (arm_arch3m): Delete.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/arm-tune.md: Likewise.
+       * config/arm/t-arm-elf (all_early_nofp): Delete mentions of
+       deleted architectures.
+ 2018-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/arm-cpus.in (armv5, armv5e): Delete features.
+       (armv5t, armv5te): New features.
+       (ARMv5, ARMv5e): Delete fgroups.
+       (ARMv5t, ARMv5te): Adjust for above changes.
+       (ARMv6m): Likewise.
+       (armv5, armv5e): Delete arches.
+       * config/arm/arm.md (*call_reg_armv5): Use arm_arch5t instead of
+       arm_arch5.
+       (*call_reg_arm): Likewise.
+       (*call_value_reg_armv5): Likewise.
+       (*call_value_reg_arm): Likewise.
+       (*call_symbol): Likewise.
+       (*call_value_symbol): Likewise.
+       (*sibcall_insn): Likewise.
+       (*sibcall_value_insn): Likewise.
+       (clzsi2): Likewise.
+       (prefetch): Likewise.
+       (define_split and define_peephole2 dependent on arm_arch5):
+       Likewise.
+       * config/arm/arm.h (TARGET_LDRD): Use arm_arch5te instead of
+       arm_arch5e.
+       (TARGET_ARM_QBIT): Likewise.
+       (TARGET_DSP_MULTIPLY): Likewise.
+       (enum base_architecture): Delete BASE_ARCH_5, BASE_ARCH_5E.
+       (arm_arch5, arm_arch5e): Delete.
+       (arm_arch5t, arm_arch5te): Declare.
+       * config/arm/arm.c (arm_arch5, arm_arch5e): Delete.
+       (arm_arch5t): Declare.
+       (arm_option_reconfigure_globals): Update for the above.
+       (arm_options_perform_arch_sanity_checks): Update comment, replace
+       use of arm_arch5 with arm_arch5t.
+       (use_return_insn): Likewise.
+       (arm_emit_call_insn): Likewise.
+       (output_return_instruction): Likewise.
+       (arm_final_prescan_insn): Likewise.
+       (arm_coproc_builtin_available): Likewise.
+       * config/arm/arm-c.c (arm_cpu_builtins): Replace arm_arch5 and
+       arm_arch5e with arm_arch5t and arm_arch5te.
+       * config/arm/arm-protos.h (arm_arch5, arm_arch5e): Delete.
+       (arm_arch5t, arm_arch5te): Declare.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/t-arm-elf: Remove references to armv5, armv5e.
+       * config/arm/t-multilib: Likewise.
+       * config/arm/thumb1.md (*call_reg_thumb1_v5): Check arm_arch5t
+       instead of arm_arch5.
+       (*call_reg_thumb1): Likewise.
+       (*call_value_reg_thumb1_v5): Likewise.
+       (*call_value_reg_thumb1): Likewise.
+       * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Remove now
+       unreachable path.
+       * doc/invoke.texi (ARM Options): Remove references to armv5, armv5e.
+ 2018-05-18  Martin Liska  <mliska@suse.cz>
+       PR gcov-profile/84846
+       * doc/gcov.texi: Document -t option of gcov tool.
+ 2018-05-18  Martin Liska  <mliska@suse.cz>
+       PR gcov-profile/84846
+       * gcov.c (print_usage): Add new -t option.
+       (process_args): Handle the option.
+       (generate_results): Use stdout as output when requested by
+       the option.
+ 2018-05-18  Martin Liska  <mliska@suse.cz>
+       PR gcov-profile/84846
+       * coverage.c (coverage_init): Write PWD to .gcno file.
+       * doc/gcov.texi: Document how working directory is printed.
+       * gcov-dump.c (dump_gcov_file): Print PWD.
+       * gcov.c (output_intermediate_file): Likewise.
+       (read_graph_file): Read PWD string.
+       (output_lines): Print PWD.
+ 2018-05-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       PR middle-end/85817
+       * ipa-pure-const.c (malloc_candidate_p): Remove the check integer_zerop
+       for retval and return false if all args to phi are zero.
+ 2018-05-18  Richard Biener  <rguenther@suse.de>
+       * gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges
+       method.
+       (evrp_dom_walker::before_dom_children): Call it.
+ 2018-05-18  Richard Biener  <rguenther@suse.de>
+       * tree-dfa.c (get_ref_base_and_extent): Use range-info to refine
+       results when processing array refs with variable index.
+ 2018-05-18  Toon Moene  <toon@moene.org>
+       * doc/invoke.texi: Move -floop-unroll-and-jam documentation
+       directly after that of -floop-interchange. Indicate that both
+       options are enabled by default when specifying -O3.
+ 2018-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/aarch64/aarch64-simd.md (vec_set<mode>): Use VALL_F16 mode
+       iterator.  Delete separate integer-mode vec_set<mode> expander.
+       (aarch64_simd_vec_setv2di): Delete.
+       (vec_setv2di): Delete.
+       (aarch64_simd_vec_set<mode>): Delete all other patterns with that name.
+       Use VALL_F16 mode iterator.  Add LD1 alternative and use vwcore for
+       the "w, r" alternative.
+ 2018-05-18  Martin Liska  <mliska@suse.cz>
+       * passes.def: Add pass_lower_switch and pass_lower_switch_O0.
+       * tree-pass.h (make_pass_lower_switch_O0): New function.
+       * tree-switch-conversion.c (node_has_low_bound): Remove.
+       (node_has_high_bound): Likewise.
+       (node_is_bounded): Likewise.
+       (class pass_lower_switch): Make it a template type and create
+       two instances.
+       (pass_lower_switch::execute): Add template argument.
+       (make_pass_lower_switch): New function.
+       (make_pass_lower_switch_O0): New function.
+       (do_jump_if_equal): Remove.
+       (emit_case_nodes): Simplify to just handle all 3 cases and leave
+       all the hard work to tree optimization passes.
+ 2018-05-18  Martin Liska  <mliska@suse.cz>
+       * dbgcnt.c (limit_low): Renamed from limit.
+       (limit_high): New variable.
+       (dbg_cnt_is_enabled): Check for upper limit.
+       (dbg_cnt): Adjust dumping.
+       (dbg_cnt_set_limit_by_index): Add new argument for high
+       value.
+       (dbg_cnt_set_limit_by_name): Likewise.
+       (dbg_cnt_process_single_pair): Parse new format.
+       (dbg_cnt_process_opt): Use strtok.
+       (dbg_cnt_list_all_counters): Remove 'value' and add
+       'limit_high'.
+       * doc/invoke.texi: Document changes.
+ 2018-05-18  Richard Sandiford  <richard.sandiford@linaro.org>
+       * doc/sourcebuild.texi (scalar_all_fma): Document.
+       * tree.def (FMA_EXPR): Delete.
+       * internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions.
+       * internal-fn.c (ternary_direct): New macro.
+       (expand_ternary_optab_fn): Likewise.
+       (direct_ternary_optab_supported_p): Likewise.
+       * Makefile.in (build/genmatch.o): Depend on case-fn-macros.h.
+       * builtins.c (fold_builtin_fma): Delete.
+       (fold_builtin_3): Don't call it.
+       * cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling.
+       * expr.c (expand_expr_real_2): Likewise.
+       * fold-const.c (operand_equal_p): Likewise.
+       (fold_ternary_loc): Likewise.
+       * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
+       * gimple.c (DEFTREECODE): Likewise.
+       * gimplify.c (gimplify_expr): Likewise.
+       * optabs-tree.c (optab_for_tree_code): Likewise.
+       * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
+       * tree-eh.c (operation_could_trap_p): Likewise.
+       (stmt_could_throw_1_p): Likewise.
+       * tree-inline.c (estimate_operator_cost): Likewise.
+       * tree-pretty-print.c (dump_generic_node): Likewise.
+       (op_code_prio): Likewise.
+       * tree-ssa-loop-im.c (stmt_cost): Likewise.
+       * tree-ssa-operands.c (get_expr_operands): Likewise.
+       * tree.c (commutative_ternary_tree_code, add_expr): Likewise.
+       * fold-const-call.h (fold_fma): Delete.
+       * fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS,
+       CFN_FNMA and CFN_FNMS.
+       (fold_fma): Delete.
+       * genmatch.c (combined_fn): New enum.
+       (commutative_ternary_tree_code): Remove FMA_EXPR handling.
+       (commutative_op): New function.
+       (commutate): Use it.  Handle more than 2 operands.
+       (dt_operand::gen_gimple_expr): Use commutative_op.
+       (parser::parse_expr): Allow :c to be used with non-binary
+       operators if the commutative operand is known.
+       * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle
+       CFN_FMS, CFN_FNMA and CFN_FNMS.
+       (backprop::process_assign_use): Remove FMA_EXPR handling.
+       * hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise.
+       (gen_hsa_fma): New function.
+       (gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS,
+       IFN_FNMA and IFN_FNMS.
+       * match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS.
+       * gimple-fold.h (follow_all_ssa_edges): Declare.
+       * gimple-fold.c (follow_all_ssa_edges): New function.
+       * tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the
+       gimple_build interface and use follow_all_ssa_edges to fold the result.
+       (convert_mult_to_fma): Use direct_internal_fn_suppoerted_p
+       instead of checking for optabs directly.
+       * config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls
+       rather than FMA_EXPRs.
+       * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a
+       call to IFN_FMA instead of an FMA_EXPR.
+ 2018-05-17  Jim Wilson  <jimw@sifive.com>
+       * expr.c (do_tablejump): When converting index to Pmode, if we have a
+       sign extended promoted subreg, and the range does not have the sign bit
+       set, then do a sign extend.
+       * config/riscv/riscv.c (riscv_extend_comparands): In unsigned QImode
+       test, check for sign extended subreg and/or constant operands, and
+       do a sign extend in that case.
+ 2018-05-17  Steve Ellcey  <sellcey@cavium.com>
+       * config/aarch64/thunderx2t99.md (thunderx2t99_ls_both): Delete.
+       (thunderx2t99_multiple): Delete psuedo-units from used cpus.
+       Add untyped.
+       (thunderx2t99_alu_shift): Remove alu_shift_reg, alus_shift_reg.
+       Change logics_shift_reg to logics_shift_imm.
+       (thunderx2t99_fp_loadpair_basic): Delete.
+       (thunderx2t99_fp_storepair_basic): Delete.
+       (thunderx2t99_asimd_int): Add neon_sub and neon_sub_q types.
+       (thunderx2t99_asimd_polynomial): Delete.
+       (thunderx2t99_asimd_fp_simple): Add neon_fp_mul_s_scalar_q
+       and neon_fp_mul_d_scalar_q.
+       (thunderx2t99_asimd_fp_conv): Add *int_to_fp* types.
+       (thunderx2t99_asimd_misc): Delete neon_dup and neon_dup_q.
+       (thunderx2t99_asimd_recip_step): Add missing *sqrt* types.
+       (thunderx2t99_asimd_lut): Add missing tbl types.
+       (thunderx2t99_asimd_ext): Delete.
+       (thunderx2t99_asimd_load1_1_mult): Delete.
+       (thunderx2t99_asimd_load1_2_mult): Delete.
+       (thunderx2t99_asimd_load1_ldp): New.
+       (thunderx2t99_asimd_load1): New.
+       (thunderx2t99_asimd_load2): Add missing *load2* types.
+       (thunderx2t99_asimd_load3): New.
+       (thunderx2t99_asimd_load4): New.
+       (thunderx2t99_asimd_store1_1_mult): Delete.
+       (thunderx2t99_asimd_store1_2_mult): Delete.
+       (thunderx2t99_asimd_store2_mult): Delete.
+       (thunderx2t99_asimd_store2_onelane): Delete.
+       (thunderx2t99_asimd_store_stp): New.
+       (thunderx2t99_asimd_store1): New.
+       (thunderx2t99_asimd_store2): New.
+       (thunderx2t99_asimd_store3): New.
+       (thunderx2t99_asimd_store4): New.
+ 2018-05-17  Jerome Lambourg  <lambourg@adacore.com>
+       * config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove
+       #include <stdint.h>.  Replace intptr_t with __INTPTR_TYPE__.
+ 2018-05-17  Pat Haugen  <pthaugen@us.ibm.com>
+           Segher Boessenkool  <segher@kernel.crashing.org>
+       PR target/85698
+       * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest
+       operand.
  
- 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-17  Richard Biener  <rguenther@suse.de>
  
-       PR c++/70336
-       * match.pd (nested int casts): Limit to GIMPLE.
+       * tree-ssa-dse.c (dse_classify_store): Fix iterator increment
+       for pruning loop and prune defs feeding only already visited PHIs.
  
- 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
+ 2018-05-17  Richard Biener  <rguenther@suse.de>
  
-       PR ipa/66223
-       * ipa-devirt.c (maybe_record_node): Fix comment; use
-       SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling.
  
- 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-17  Bin Cheng  <bin.cheng@arm.com>
+           Richard Biener  <rguenther@suse.de>
  
-       PR rtl-optimization/70542
-       * ree.c (add_removable_extension): For VECTOR_MODE_P punt
-       if there are any uses other than insn or debug insns.
+       PR tree-optimization/85793
+       * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load
+       for VMAT_ELEMENTWISE.
  
- 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
-           Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-17  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR tree-optimization/70509
-       * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
-       Shift HOST_WIDE_INT_1U instead of 1.
- 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
-       PR tree-optimization/70509
-       * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
-       of the vector base type for index.
- 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/70510
-       * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
- 2016-04-05  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/70526
-       * tree-sra.c (build_ref_for_offset): Use prev_base to
-       extract the alias pointer type.
- 2016-04-05  Richard Biener  <rguenther@suse.de>
-       * dse.c (struct store_info): Remove alias_set member.
-       (struct read_info_type): Likewise.
-       (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
-       spill_deleted, clear_alias_set_lookup): Remove.
-       (get_group_info): Remove dead base == NULL_RTX case.
-       (dse_step0): Remove initialization of removed variables.
-       (delete_dead_store_insn): Reomve alias set dumping.
-       (free_read_records): Remove alias_set handling.
-       (canon_address): Remove alias_set_out parameter.
-       (record_store): Remove spill_alias_set, it's always zero.
-       (check_mem_read_rtx): Likewise.
-       (dse_step2): Rename from ...
-       (dse_step2_nospill): ... this.  Adjust.
-       (scan_stores): Rename from ...
-       (scan_stores_nospill): ... this.
-       (scan_reads): Rename from ...
-       (scan_reads_nospill): ... this.
-       (scan_stores_spill, scan_reads_spill): Remove.
-       (dse_step3_scan): Remove for_spills argument which is always false.
-       (dse_step3): Likewise.
-       (dse_step5): Rename from ...
-       (dse_step5_nospill): ... this.  Remove alias_set handling.
-       (rest_of_handle_dse): Adjust.
- 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
-       PR target/70525
-       * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
-       Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
-       V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
-       (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
- 2016-04-05  Richard Biener  <rguenther@suse.de>
-       PR middle-end/70499
-       * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
-       non-register type temporaries into SSA.
- 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
-       PR ipa/66223
-       * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
-       calls when sanitizing.
-       (possible_polymorphic_call_target_p): Fix formatting.
- 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-           Jakub Jelinek  <jakub@redhat.com>
+       * internal-fn.h (lookup_internal_fn): Declare
+       * internal-fn.c (lookup_internal_fn): New function.
+       * gimple.c (gimple_build_call_from_tree): Handle calls to
+       internal functions.
+       * gimple-pretty-print.c (dump_gimple_call): Print "." before
+       internal function names.
+       * tree-pretty-print.c (dump_generic_node): Likewise.
+       * tree-ssa-scopedtables.c (expr_hash_elt::print): Likewise.
  
-       PR middle-end/70457
-       * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
-       to ensure a call statement is compatible with a built-in's
-       prototype.
-       * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
-       Likewise.
+ 2018-05-17  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-04-04  Richard Biener  <rguenther@suse.de>
+       * gimple-fold.h (gimple_build): Make the function forms take
+       combined_fn rather than built_in_function.
+       (gimple_simplify): Likewise.
+       * gimple-match-head.c (gimple_simplify): Likewise.
+       * gimple-fold.c (gimple_build): Likewise.
+       * tree-vect-loop.c (get_initial_def_for_reduction): Use gimple_build
+       rather than gimple_build_call_internal.
+       (get_initial_defs_for_reduction): Likewise.
+       (vect_create_epilog_for_reduction): Likewise.
+       (vectorizable_live_operation): Likewise.
  
-       PR rtl-optimization/70484
-       * rtl.h (canon_output_dependence): Declare.
-       * alias.c (canon_output_dependence): New function.
-       * dse.c (record_store): Use canon_output_dependence rather
-       than canon_true_dependence.
+ 2018-05-17  Martin Liska  <mliska@suse.cz>
  
- 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
+       * gimple-ssa-sprintf.c (format_directive): Do not use
+       space in between 'G_' and '('.
  
-       PR ipa/68881
-       * cgraph.h (symtab_node::copy_visibility_from): New function.
-       * symtab.c (symtab_node::copy_visibility_from): New function.
-       * ipa-visibility.c (optimize_weakref): New function.
-       (function_and_variable_visibility): Use it.
+ 2018-05-17  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-04-04  Martin Liska  <mliska@suse.cz>
+       PR target/85323
+       * config/i386/i386.c (ix86_fold_builtin): Handle masked shifts
+       even if the mask is not all ones.
  
-       PR hsa/70402
-       * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
-       value that is really in range handled by SBR instruction.
-       * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
-       * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
-       * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
+       PR target/85323
+       * config/i386/i386.c (ix86_fold_builtin): Fold shift builtins by
+       vector.
+       (ix86_gimple_fold_builtin): Likewise.
  
- 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
+       PR target/85323
+       * config/i386/i386.c: Include tree-vector-builder.h.
+       (ix86_vector_shift_count): New function.
+       (ix86_fold_builtin): Fold shift builtins by scalar count.
+       (ix86_gimple_fold_builtin): Likewise.
  
-       PR target/70416
-       PR target/67391
-       * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
-       set, but not for SP_REG operands.
+       * config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8,
+       _mm512_setzero): New intrinsics.
  
- 2016-04-02  Martin Sebor  <msebor@redhat.com>
+ 2018-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
+           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       PR c++/67376
-       * fold-const.c (maybe_nonzero_address): New function.
-       (fold_comparison): Call it.  Fold equality and relational
-       expressions involving null pointers.
-       (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
+       * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify
+       code generation for cases where splatting a value is not useful.
+       * simplify-rtx.c (simplify_ternary_operation): Simplify
+       vec_merge across a vec_duplicate and a paradoxical subreg forming
+       a vector mode to a vec_concat.
+ 2018-05-17  Olga Makhotina  <olga.makhotina@intel.com>
+       * config.gcc: Support "goldmont-plus".
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect
+       "goldmont-plus".
+       * config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       PROCESSOR_GOLDMONT_PLUS.
+       * config/i386/i386.c (m_GOLDMONT_PLUS): Define.
+       (processor_target_table): Add "goldmont-plus".
+       (PTA_GOLDMONT_PLUS): Define.
+       (ix86_lea_outperforms): Add TARGET_GOLDMONT_PLUS.
+       (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT_PLUS.
+       (fold_builtin_cpu): Add M_INTEL_GOLDMONT_PLUS.
+       (fold_builtin_cpu): Add "goldmont-plus".
+       (ix86_add_stmt_cost): Add TARGET_GOLDMONT_PLUS.
+       (ix86_option_override_internal): Add "goldmont-plus".
+       * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT_PLUS.
+       (processor_type): Add PROCESSOR_GOLDMONT_PLUS.
+       * config/i386/x86-tune.def: Add m_GOLDMONT_PLUS.
+       * doc/invoke.texi: Add goldmont-plus as x86 -march=/-mtune= CPU type.
+ 2018-05-17  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/85757
+       * tree-ssa-dse.c (dse_classify_store): Record a PHI def and
+       remove defs that only feed that PHI from further processing.
+ 2018-05-16  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv.md (<optab>si3_mask, <optab>si3_mask_1): Prepend
+       asterisk to name.
+       (<optab>di3_mask, <optab>di3_mask_1): Likewise.
+ 2018-05-16  Mark Wielaard  <mark@klomp.org>
+       * dwarf2out.c (count_index_strings): New function.
+       (output_indirect_strings): Call count_index_strings and generate
+       header for dwarf_version >= 5.
+ 2018-05-16  Mark Wielaard  <mark@klomp.org>
+       * dwarf2out.c (dwarf_FORM): New function.
+       (set_indirect_string): Use dwarf_FORM.
+       (reset_indirect_string): Likewise.
+       (size_of_die): Likewise.
+       (value_format): Likewise.
+       (output_die): Likewise.
+       (add_skeleton_AT_string): Likewise.
+       (output_macinfo_op): Likewise.
+       (index_string): Likewise.
+       (output_index_string_offset): Likewise.
+       (output_index_string): Likewise.
+       (count_index_strings): Likewise.
+ 2018-05-16  Carl Love  <cel@us.ibm.com>
+       * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
+       dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer.
+ 2018-05-16  Martin Jambor  <mjambor@suse.cz>
+       * ipa-prop.c (ipa_free_all_edge_args): Remove.
+       * ipa-prop.h (ipa_free_all_edge_args): Likewise.
+ 2018-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
+       * config/aarch64/aarch64.md (fma<mode>4): Change into expand pattern.
+       (fnma<mode>4): Likewise.
+       (fms<mode>4): Likewise.
+       (fnms<mode>4): Likewise.
+       (aarch64_fma<mode>4): Rename insn, reorder accumulator operand.
+       (aarch64_fnma<mode>4): Likewise.
+       (aarch64_fms<mode>4): Likewise.
+       (aarch64_fnms<mode>4): Likewise.
+       (aarch64_fnmadd<mode>4): Likewise.
+ 2018-05-16  Jason Merrill  <jason@redhat.com>
+       * tree.c (warn_deprecated_use): Return bool.  Simplify logic.
+ 2018-05-16  Richard Biener  <rguenther@suse.de>
+       * tree-vectorizer.h (struct stmt_info_for_cost): Add where member.
+       (dump_stmt_cost): Declare.
+       (add_stmt_cost): Dump cost we add.
+       (add_stmt_costs): New function.
+       (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
+       No longer exported.
+       (vect_analyze_stmt): Adjust prototype.
+       (vectorizable_condition): Likewise.
+       (vectorizable_live_operation): Likewise.
+       (vectorizable_reduction): Likewise.
+       (vectorizable_induction): Likewise.
+       * tree-vect-loop.c (vect_analyze_loop_operations): Create local
+       cost vector to pass to vectorizable_ and record afterwards.
+       (vect_model_reduction_cost): Take cost vector argument and adjust.
+       (vect_model_induction_cost): Likewise.
+       (vectorizable_reduction): Likewise.
+       (vectorizable_induction): Likewise.
+       (vectorizable_live_operation): Likewise.
+       * tree-vect-slp.c (vect_create_new_slp_node): Initialize
+       SLP_TREE_NUMBER_OF_VEC_STMTS.
+       (vect_analyze_slp_cost_1): Remove.
+       (vect_analyze_slp_cost): Likewise.
+       (vect_slp_analyze_node_operations): Take visited args and
+       a target cost vector.  Avoid processing already visited stmt sets.
+       (vect_slp_analyze_operations): Use a local cost vector to gather
+       costs and register those of non-discarded instances.
+       (vect_bb_vectorization_profitable_p): Use add_stmt_costs.
+       (vect_schedule_slp_instance): Remove copying of
+       SLP_TREE_NUMBER_OF_VEC_STMTS.  Instead assert that it is not
+       zero.
+       * tree-vect-stmts.c (record_stmt_cost): Remove path directly
+       adding cost.  Record cost entry location.
+       (vect_prologue_cost_for_slp_op): Function to compute cost of
+       a constant or invariant generated for SLP vect in the prologue,
+       split out from vect_analyze_slp_cost_1.
+       (vect_model_simple_cost): Make static.  Adjust for SLP costing.
+       (vect_model_promotion_demotion_cost): Likewise.
+       (vect_model_store_cost): Likewise, make static.
+       (vect_model_load_cost): Likewise.
+       (vectorizable_bswap): Add cost vector arg and adjust.
+       (vectorizable_call): Likewise.
+       (vectorizable_simd_clone_call): Likewise.
+       (vectorizable_conversion): Likewise.
+       (vectorizable_assignment): Likewise.
+       (vectorizable_shift): Likewise.
+       (vectorizable_operation): Likewise.
+       (vectorizable_store): Likewise.
+       (vectorizable_load): Likewise.
+       (vectorizable_condition): Likewise.
+       (vectorizable_comparison): Likewise.
+       (can_vectorize_live_stmts): Likewise.
+       (vect_analyze_stmt): Likewise.
+       (vect_transform_stmt): Adjust calls to vectorizable_*.
+       * tree-vectorizer.c: Include gimple-pretty-print.h.
+       (dump_stmt_cost): New function.
  
- 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
+ 2018-05-16  Richard Biener  <rguenther@suse.de>
+       * params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param.
+       * doc/invoke.texi (dse-max-alias-queries-per-store): Document.
+       * tree-ssa-dse.c: Include tree-ssa-loop.h.
+       (check_name): New callback.
+       (dse_classify_store): Track cycles via a visited bitmap of PHI
+       defs and simplify handling of in-loop and across loop dead stores
+       and properly fail for loop-variant refs.  Handle byte-tracking with
+       multiple defs.  Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for
+       limiting the walk.
+ 2018-05-16  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare.
+       (vect_get_mask_type_for_stmt): Likewise.
+       * tree-vect-slp.c (vect_two_operations_perm_ok_p): New function,
+       split out from...
+       (vect_build_slp_tree_1): ...here.  Use vect_get_vector_types_for_stmt
+       to determine the statement's vector type and the vector type that
+       should be used for calculating nunits.  Deal with cases in which
+       the type has to be deferred.
+       (vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt
+       and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE.
+       * tree-vect-loop.c (vect_determine_vf_for_stmt_1)
+       (vect_determine_vf_for_stmt): New functions, split out from...
+       (vect_determine_vectorization_factor): ...here.
+       * tree-vect-stmts.c (vect_get_vector_types_for_stmt)
+       (vect_get_mask_type_for_stmt): New functions, split out from
+       vect_determine_vectorization_factor.
+ 2018-05-16  Richard Biener  <rguenther@suse.de>
+       * tree-cfg.c (verify_gimple_assign_ternary): Properly
+       verify the [VEC_]COND_EXPR embedded comparison.
+ 2018-05-15  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/85753
+       * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle
+       RECORD_TYPE in addition to ARRAY_TYPE.
+ 2018-05-15  Martin Sebor  <msebor@redhat.com>
+       PR middle-end/85643
+       * calls.c (get_attr_nonstring_decl): Handle MEM_REF.
+ 2018-05-15  Richard Biener  <rguenther@suse.de>
+       * tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter,
+       add by_clobber_p one.  Change algorithm to collect all defs
+       representing uses we need to walk and try reducing them to
+       a single one before failing.
+       (dse_dom_walker::dse_optimize_stmt): Adjust.
+ 2018-05-13  Mark Wielaard  <mark@klomp.org>
+       * dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx.
+       (size_of_loc_descr): Likewise.
+       (output_loc_operands): Likewise.
+       (output_loc_operands_raw): Likewise.
+       (dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx.
+       (resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx.
+       (hash_loc_operands): Likewise.
+       (compare_loc_operands): Likewise.
+ 2018-05-14  Mark Wielaard  <mark@klomp.org>
+       * dwarf2out.c (count_index_addrs): New function.
+       (dwarf2out_finish): Use count_index_addrs to calculate addrs_length.
+ 2018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       PR tree-optimization/83648
+       * ipa-pure-const.c (malloc_candidate_p): Allow function with NULL
+       return value as malloc candidate.
+ 2018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       PR ipa/85734
+       * ipa-pure-const.c (warn_function_malloc): Pass value of known_finite
+       param as true in call to suggest_attribute.
+ 2018-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for
+       -mreadonly-in-sdata.
+ 2018-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused):
+       New pattern.
+       (aarch64_crypto_aesd_fused): Likewise.
+ 2018-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
+       * config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives.
+       (movsi_aarch64): Likewise.
+       (load_pairsi): Likewise.
+       (load_pairdi): Likewise.
+       (store_pairsi): Likewise.
+       (store_pairdi): Likewise.
+       (load_pairsf): Likewise.
+       (load_pairdf): Likewise.
+       (store_pairsf): Likewise.
+       (store_pairdf): Likewise.
+       (zero_extend): Likewise.
+       (trunc): Swap alternatives.
+       (fcvt_target): Add '?' to prefer w over r.
+ 2018-05-14  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85756
+       * config/i386/i386.md: Disallow non-commutative arithmetics in
+       last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim
+       optimization.  Use COMMUTATIVE_ARITH_P test rather than != MINUS
+       in the peephole2 before it.
+ 2018-05-14  Sebastian Peryt  <sebastian.peryt@intel.com>
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET,
+       OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines.
+       (ix86_handle_option): Handle -mcldemote.
+       * config.gcc: New header.
+       * config/i386/cldemoteintrin.h: New file.
+       * config/i386/cpuid.h (bit_CLDEMOTE): New bit.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect
+       -mcldemote.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       OPTION_MASK_ISA_CLDEMOTE.
+       * config/i386/i386.c (ix86_target_string): Add -mcldemote.
+       (ix86_valid_target_attribute_inner_p): Ditto.
+       (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE.
+       (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote.
+       (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE.
+       * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New.
+       * config/i386/i386.md (UNSPECV_CLDEMOTE): New.
+       (cldemote): New.
+       * config/i386/i386.opt: Add -mcldemote.
+       * config/i386/x86intrin.h: New header.
+       * doc/invoke.texi: Add -mcldemote.
+ 2018-05-14  Richard Biener  <rguenther@suse.de>
+       * doc/match-and-simplify.texi: Adjust :s documentation.
+ 2018-05-14  Alexander Monakov  <amonakov@ispras.ru>
+       * sort.cc (REORDER_23): Pass the type for the temporaries instead of
+       intended memcpy size.
+       (REORDER_45): Likewise.
+ 2018-05-13  Alexander Monakov  <amonakov@ispras.ru>
+       * sort.cc: New file.
+       * system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort.
+       * vec.c (qsort_chk): Use gcc_qsort.
+       * Makefile.in (OBJS-libcommon): Add sort.o.
+       (build/sort.o): New target.  Use it...
+       (BUILD_RTL): ... here, and...
+       (build/gencfn-macros): ... here, and...
+       (build/genmatch): ... here.
+ 2018-05-13  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu.
+       * config/nds32/nds32-graywolf.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n15 pipeline.
+       * config/nds32/nds32-utils.c: More implementations for n15 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add graywolf.
+       * config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus.
+       * config/nds32/pipelines.md: Include n15 settings.
+ 2018-05-13  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu.
+       * config/nds32/nds32-n13.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add n13.
+       * config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus.
+       * config/nds32/pipelines.md: Include n13 settings.
+ 2018-05-13  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu.
+       * config/nds32/nds32-n10.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n10 pipeline.
+       * config/nds32/nds32-utils.c: More implementations for n10 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add n10.
+       * config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus.
+       * config/nds32/pipelines.md: Include n10 settings.
+ 2018-05-13  Monk Chiang  <sh.chiang04@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32be-*-*): Handle --with-ext-dsp.
+       * config/nds32/constants.md (unspec_element, unspec_volatile_element):
+       Add enum values for DSP extension instructions.
+       * config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi):
+       New constraints.
+       * config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus,
+       sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max):
+       New code iterators.
+       (su, zs, uk, opcode, add_rsub, add_sub): New code attributes.
+       * config/nds32/nds32-dspext.md: New file for DSP implementation.
+       * config/nds32/nds32-intrinsic.c: Implementation of DSP extension.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32-md-auxiliary.c: Likewise.
+       * config/nds32/nds32-memory-manipulation.c: Consider DSP extension.
+       * config/nds32/nds32-predicates.c (const_vector_to_hwint): New.
+       (nds32_valid_CVp5_p, nds32_valid_CVs5_p): New.
+       (nds32_valid_CVs2_p, nds32_valid_CVhi_p): New.
+       * config/nds32/nds32-protos.h: New declarations for DSP extension.
+       * config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case
+       TYPE_DMAC in switch statement.
+       * config/nds32/nds32.c: New checking and implementation for DSP
+       extension instructions.
+       * config/nds32/nds32.h: Likewise.
+       * config/nds32/nds32.md: Likewise.
+       * config/nds32/nds32.opt (mhw-abs, mext-dsp): New options.
+       * config/nds32/predicates.md: Implement new predicates for DSP
+       extension.
  
-       Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
-       the "Y" constraint (scalar FP 0.0 immediate).
+ 2018-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32):
+       Reformat alternatives and attributes so it is easier to identify
+       which constraints/attributes go with which instruction.
+       (mov<mode>_hardfloat32, FMOVE64): Likewise.
+       (mov<mode>_softfloat32, FMOVE64): Likewise.
+       (mov<mode>_hardfloat64, FMOVE64): Likewise.
+       (mov<mode>_softfloat64, FMOVE64): Likewise.
+ 2018-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * doc/extend.texi (PowerPC Built-in Functions): Rename this
+       subsection.
+       (Basic PowerPC Built-in Functions): The new name of the
+       subsection previously known as "PowerPC Built-in Functions".
+       (Basic PowerPC Built-in Functions Available on all Configurations):
+       New subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise.
+       (Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise.
+       (Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise.
+       (Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise.
+ 2018-05-11  Martin Jambor  <mjambor@suse.cz>
+       PR ipa/85655
+       * ipa-cp.c (intersect_with_plats): Check that the lattice contains
+       single const.
+ 2018-05-11  Richard Earnshaw  <rearnsha@arm.com>
+       PR target/85733
+       * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.
+ 2018-05-11  Sebastian Peryt  <sebastian.peryt@intel.com>
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET,
+       OPTION_MASK_ISA_WAITPKG_UNSET): New defines.
+       (ix86_handle_option): Handle -mwaitpkg.
+       * config.gcc: New header.
+       * config/i386/cpuid.h (bit_WAITPKG): New bit.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg.
+       * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New
+       function type.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       OPTION_MASK_ISA_WAITPKG.
+       * config/i386/i386.c (ix86_target_string): Add -mwaitpkg.
+       (ix86_option_override_internal): Add PTA_WAITPKG.
+       (ix86_valid_target_attribute_inner_p): Add -mwaitpkg.
+       (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT,
+       IX86_BUILTIN_TPAUSE.
+       (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor,
+       __builtin_ia32_umwait and __builtin_ia32_tpause.
+       (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR,
+       IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE.
+       * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New.
+       * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR,
+       UNSPECV_TPAUSE): New.
+       (umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New.
+       * config/i386/i386.opt: Add -mwaitpkg.
+       * config/i386/waitpkgintrin.h: New file.
+       * config/i386/x86intrin.h: New header.
+       * doc/invoke.texi: Add -mwaitpkg.
+ 2018-05-11  Richard Earnshaw  <rearnsha@arm.com>
+       PR target/85606
+       * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now
+       equivalent.
+       (cortex-m0): Use armv6s-m isa.
+       (cortex-m0plus): Likewise.
+       (cortex-m1): Likewise.
+       (cortex-m0.small-multiply): Likewise.
+       (cortex-m0plus.small-multiply): Likewise.
+       (cortex-m1.small-multiply): Likewise.
+ 2018-05-11  Allan Sandfeld Jensen  <allan.jensen@qt.io>
+           Jakub Jelinek  <jakub@redhat.com>
  
-       * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
-       Add the "const_double" to the list of operand constraints.
+       PR tree-optimization/85692
+       * tree-ssa-forwprop.c (simplify_vector_constructor): Try two
+       source permute as well.
  
- 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
+ 2018-05-11  Martin Liska  <mliska@suse.cz>
  
-       PR rtl-optimization/70467
-       * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
-       If low word of the last operand is 0, just emit addition/subtraction
-       for the high word.
+       PR sanitizer/85556
+       * doc/extend.texi: Document LLVM style format for no_sanitize
+       attribute.
  
- 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * config/rs6000/rs6000.c (mode_supports_dq_form): Rename
+       mode_supports_vsx_dform_quad to mode_supports_dq_form.
+       (mode_supports_vsx_dform_quad): Likewise.
+       (mode_supports_vmx_dform): Move these functions to be next to the
+       other mode_supports functions.
+       (mode_supports_dq_form): Likewise.
+       (quad_address_p): Change calls of mode_supports_vsx_dform_quad to
+       mode_supports_dq_form.
+       (reg_offset_addressing_ok_p): Likewise.
+       (offsettable_ok_by_alignment): Likewise.
+       (rs6000_legitimate_offset_address_p): Likewise.
+       (legitimate_lo_sum_address_p): Likewise.
+       (rs6000_legitimize_address): Likewise.
+       (rs6000_legitimize_reload_address): Likewise.
+       (rs6000_secondary_reload_inner): Likewise.
+       (rs6000_preferred_reload_class): Likewise.
+       (rs6000_output_move_128bit): Likewise.
+ 2018-05-10  Uros Bizjak  <ubizjak@gmail.com>
+       * config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
+       Generate SImode target register for null target.
+       <case IX86_BUILTIN_XGETBV>: Ditto.
+       <case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation.
+       * config/i386/xsaveintrin.h (_xgetbv): Add missing return.
+ 2018-05-10  Carl Love  <cel@us.ibm.com>
+       * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
+       dcbtt and dcbtstt if operands[2] is 0.
+ 2018-05-10  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/85693
+       * config/i386/sse.md (usadv64qi): New expander.
+ 2018-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
+       altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove
+       -maltivec=be support.
+       (vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi,
+       vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi,
+       vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
+       vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi,
+       vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi,
+       vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx,
+       altivec_vpks<VI_char>ss, altivec_vpks<VI_char>us,
+       altivec_vpku<VI_char>us, altivec_vpku<VI_char>um, altivec_vsum2sws,
+       altivec_vsumsws): Adjust.
+       (altivec_vspltb *altivec_vspltb_internal, altivec_vsplth,
+       *altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal,
+       altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be
+       support.
+       (altivec_vperm_<mode>, altivec_vperm_<mode>_uns,
+       altivec_vupkhs<VU_char>, altivec_vupkls<VU_char>, altivec_vupkhpx,
+       altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust.
+       (altivec_lve<VI_char>x): Delete expand.
+       (*altivec_lve<VI_char>x_internal): Rename to...
+       (altivec_lve<VI_char>x): ... this.
+       (altivec_lvxl_<mode>): Delete expand.
+       (*altivec_lvxl_<mode>_internal): Rename to ...
+       (altivec_lvxl_<mode>): ... this.
+       (altivec_stvxl_<mode>): Delete expand.
+       (*altivec_stvxl_<mode>_internal): Rename to ...
+       (altivec_stvxl_<mode>): ... this.
+       (altivec_stve<VI_char>x): Delete expand.
+       (*altivec_stve<VI_char>x_internal): Rename to ...
+       (altivec_stve<VI_char>x): ... this.
+       (doublee<mode>2, unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2,
+       doubleh<mode>2, unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2,
+       reduc_plus_scal_<mode>): Adjust.
+       * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust
+       comment.
+       (rs6000_cpu_cpp_builtins): Adjust.
+       (altivec_resolve_overloaded_builtin): Remove -maltivec=be support.
+       * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be,
+       altivec_expand_stvx_be, altivec_expand_stvex_be): Delete.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
+       -maltivec=be support.
+       (rs6000_split_vec_extract_var): Adjust.
+       (rs6000_split_v4si_init): Adjust.
+       (swap_selector_for_mode): Delete.
+       (altivec_expand_lvx_be, altivec_expand_stvx_be,
+       altivec_expand_stvex_be): Delete.
+       (altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove
+       -maltivec=be support.
+       (rs6000_gimple_fold_builtin): Ditto.
+       (rs6000_generate_float2_double_code, rs6000_generate_float2_code):
+       Adjust.
+       * config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete.
+       (TARGET_DIRECT_MOVE_64BIT): Adjust.
+       * config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust.
+       * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete.
+       * config/rs6000/vsx.md (floate<mode>, unsfloatev2di, floato<mode>,
+       unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df,
+       vunsignede_v2df, vsx_extract_<mode>_p9, *vsx_extract_si,
+       *vsx_extract_<mode>_p8, *vsx_extract_si_<uns>float_df,
+       *vsx_extract_si_<uns>float_<mode>, vsx_set_<mode>_p9, vsx_set_v4sf_p9,
+       *vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an
+       anonymous split): Adjust.
+       (vsx_mergel_<mode>, vsx_mergeh_<mode>): Remove -maltivec=be support.
+       (vsx_xxspltd_<mode>, extract4b, insert4b): Adjust.
+ 2018-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+       * configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only
+       when --with-gxx-include-dir is also specified.
+       * configure: Regenerate.
  
-       PR target/70404
-       * config/s390/s390.c (s390_expand_insv): Check for everything
-       constant instead of just VOIDmode stuff.
+ 2018-05-09  Jim Wilson  <jimw@sifive.com>
  
- 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+       PR target/84797
+       * config.gcc (riscv*-*-*): Handle --with-multilib-list.
+       * config/riscv/t-withmultilib: New.
+       * config/riscv/withmultilib.h: New.
+       * doc/install.texi: Document RISC-V --with-multilib-list support.
  
-       PR target/70496
-       * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
+ 2018-05-09  Richard Biener  <rguenther@suse.de>
  
- 2016-04-01  Nathan Sidwell  <nathan@acm.org>
+       * tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost
+       vector.
+       (vect_bb_vectorization_profitable_p): Adjust.  Compute
+       actual scalar cost using the cost vector and the add_stmt_cost
+       machinery.
  
-       * tree.def (TRY_CATCH_EXPR): Correct documentation.
+ 2018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
+       PR rtl-optimization/85645
+       * config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET
+       in the REG_CFA_REGISTER note for LR, don't leave it empty.
  
-       PR rtl-optimization/70461
-       * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
-       is necessary.
+ 2018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-03-31  Martin Liska  <mliska@suse.cz>
+       PR rtl-optimization/85645
+       * shrink-wrap.c (spread_components): Return a boolean saying if
+       anything was changed.
+       (try_shrink_wrapping_separate): Iterate spread_components until
+       nothing changes anymore.
  
-       PR hsa/70399
-       * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
-       a tree value or an immediate integer value to a buffer
-       that is eventually copied to a BRIG section.
-       (emit_immediate_operand): Call the function here.
-       * hsa-dump.c (dump_hsa_immed): Remove checking assert.
-       * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
-       of class' fields that are removed.
-       (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
-       * hsa.h (class hsa_op_immed): Remove m_brig_repr and
-       m_brig_repr_size fields.
+ 2018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-03-31  Martin Liska  <mliska@suse.cz>
+       PR rtl-optimization/85645
+       * regrename.c (build_def_use): Also kill the chains that include the
+       destination of a REG_CFA_REGISTER note.
  
-       PR hsa/70391
-       * hsa-gen.c (hsa_function_representation::update_dominance): New
-       function.
-       (convert_addr_to_flat_segment): Likewise.
-       (gen_hsa_memory_set): New alignment argument.
-       (gen_hsa_ctor_assignment): Likewise.
-       (gen_hsa_insns_for_single_assignment): Provide alignment
-       to gen_hsa_ctor_assignment.
-       (gen_hsa_insns_for_direct_call): Add new argument.
-       (expand_lhs_of_string_op): New function.
-       (expand_string_operation_builtin): Likewise.
-       (expand_memory_copy): New function.
-       (expand_memory_set): New function.
-       (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
-       (convert_switch_statements): Change signature.
-       (generate_hsa): Use a return value of the function.
-       (pass_gen_hsail::execute): Do not call
-       convert_switch_statements here.
-       * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
-       * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
-       (hsa_function_representation::update_dominance): New function.
- 2016-03-31  Martin Liska  <mliska@suse.cz>
-       PR hsa/70391
-       * hsa-brig.c (emit_directive_variable): Emit alignment
-       according to hsa_symbol::m_align.
-       * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
-       (dump_hsa_symbol): Dump alignment of HSA symbols.
-       * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
-       (gen_hsa_addr_with_align): New function.
-       (hsa_bitmemref_alignment): Use newly added function.
-       (gen_hsa_insns_for_load): Likewise.
-       (gen_hsa_insns_for_store): Likewise.
-       (gen_hsa_memory_copy): New argument added.
-       (gen_hsa_insns_for_single_assignment): Respect
-       alignment for assignments processed via gen_hsa_memory_copy.
-       (gen_hsa_insns_for_direct_call): Likewise.
-       (gen_hsa_insns_for_return): Likewise.
-       (gen_function_def_parameters): Set default alignment.
-       * hsa.c (hsa_object_alignment): New function.
-       (hsa_byte_alignment): Pasted function.
-       * hsa.h (hsa_symbol::m_align): New field.
- 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
-       scratch field for goto case.
- 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
- 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
-       PR target/70442
-       * config/i386/i386.c (scalar_chain::convert_op): Fix description.
-       (scalar_chain::convert_insn): Call convert_op for reg
-       moves to handle undefined registers.
- 2016-03-31  Nathan Sidwell  <nathan@acm.org>
-       PR c++/70393
-       * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
-       Assert we don't want to move backwards.
- 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
-       PR target/70453
-       * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
- 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/70460
-       * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
-       with operand from REG_LABEL_OPERAND, instead substitute
-       SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
-       Don't do anything for REG_NON_LOCAL_GOTO jumps.
- 2016-03-31  Martin Liska  <mliska@suse.cz>
-       * passes.c (execute_one_pass): Do not call
-       todo_after for a discarded function.
- 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
-       * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
-       (no_cost, infinite_cost): Initialize the new field.
-       (get_computation_cost_at): Record setup cost.
-       (determine_use_iv_cost_address): Skip cost computation for sub
-       uses if we can estimate it without losing accuracy.
- 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
-       * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
-       estimates here.
-       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
-       max_loop_iterations_int.
-       (tree_unswitch_outer_loop): Likewise.
-       * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
-       * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
+ 2018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-03-30  Richard Biener  <rguenther@suse.de>
+       PR rtl-optimization/85645
+       *  regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an
+       insn that has a REG_CFA_REGISTER note.
  
-       PR middle-end/70450
-       * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
+ 2018-05-09  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
+       * cfgexpand.c (expand_clobber): New function.
+       (expand_gimple_stmt_1): Use it.
+       * tree-vect-stmts.c (vect_clobber_variable): New function,
+       split out from...
+       (vectorizable_simd_clone_call): ...here.
+       (vectorizable_store): Emit a clobber either side of an
+       IFN_STORE_LANES sequence.
+       (vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence.
  
-       PR target/70421
-       * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
-       in gen_blendm expander.
+ 2018-05-09  Tom de Vries  <tom@codesourcery.com>
  
- 2016-03-30  Nick Clifton  <nickc@redhat.com>
+       PR target/85626
+       * config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true")
+       (define_insn "trap_if_false"): Add exit after trap.
  
-       PR target/62254
-       * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
-       case where we are already provided with an SImode SUBREG.
+ 2018-05-09  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
+       PR rtl-optimization/85638
+       * bb-reorder.c: Include common/common-target.h.
+       (create_forwarder_block): New function extracted from...
+       (fix_up_crossing_landing_pad): ...here.  Rename into...
+       (dw2_fix_up_crossing_landing_pad): ...this.
+       (sjlj_fix_up_crossing_landing_pad): New function.
+       (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode,
+       call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges
+       from both partitions and exit the loop after one iteration.
  
-       PR target/70439
-       * config/i386/i386.c (ix86_expand_epilogue): Properly check
-       conflict between DRAP register and __builtin_eh_return.
+ 2018-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
- 2016-03-30  Michael Matz  <matz@suse.de>
-           Richard Biener  <rguenther@suse.de>
+       Revert:
+       * doc/extend.texi (PowerPC Built-in Functions): Rename this
+       subsection.
+       (Basic PowerPC Built-in Functions): The new name of the
+       subsection previously known as "PowerPC Built-in Functions".
+       (Basic PowerPC Built-in Functions Available on all Configurations):
+       New subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.05): New
+       subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.06): New
+       subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.07): New
+       subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 3.0): New
+       subsubsection.
+ 2018-05-08  Jim Wilson  <jimw@sifive.com>
+       * config/riscv/linux.h (MUSL_ABI_SUFFIX): Delete unnecessary backslash.
+       (LD_EMUL_SUFFIX): New.
+       (LINK_SPEC): Use it.
+ 2018-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * doc/extend.texi (PowerPC Built-in Functions): Rename this
+       subsection.
+       (Basic PowerPC Built-in Functions): The new name of the
+       subsection previously known as "PowerPC Built-in Functions".
+       (Basic PowerPC Built-in Functions Available on all Configurations):
+       New subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.05): New
+       subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.06): New
+       subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 2.07): New
+       subsubsection.
+       (Basic PowerPC Built-in Functions Available on ISA 3.0): New
+       subsubsection.
+ 2018-05-08  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85683
+       * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0
+       after cmpelim optimization.
+ 2018-05-08  Olga Makhotina  <olga.makhotina@intel.com>
+       * config.gcc: Support "goldmont".
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect "goldmont".
+       * config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       PROCESSOR_GOLDMONT.
+       * config/i386/i386.c (m_GOLDMONT): Define.
+       (processor_target_table): Add "goldmont".
+       (PTA_GOLDMONT): Define.
+       (ix86_lea_outperforms): Add TARGET_GOLDMONT.
+       (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT.
+       (fold_builtin_cpu): Add M_INTEL_GOLDMONT.
+       (fold_builtin_cpu): Add "goldmont".
+       (ix86_add_stmt_cost): Add TARGET_GOLDMONT.
+       (ix86_option_override_internal): Add "goldmont".
+       * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT.
+       (processor_type): Add PROCESSOR_GOLDMONT.
+       * config/i386/i386.md: Add CPU "glm".
+       * config/i386/glm.md: New file.
+       * config/i386/x86-tune.def: Add m_GOLDMONT.
+       * doc/invoke.texi: Add goldmont as x86 -march=/-mtune= CPU type.
+ 2018-05-08  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85572
+       * config/i386/i386.c (ix86_expand_sse2_abs): Handle E_V2DImode and
+       E_V4DImode.
+       * config/i386/sse.md (abs<mode>2): Use VI_AVX2 iterator instead of
+       VI1248_AVX512VL_AVX512BW.  Handle V2DImode and V4DImode if not
+       TARGET_AVX512VL using ix86_expand_sse2_abs.  Formatting fixes.
+       PR target/85317
+       * config/i386/i386.c (ix86_fold_builtin): Handle
+       IX86_BUILTIN_{,P}MOVMSK{PS,PD,B}{,128,256}.
+       PR target/85480
+       * config/i386/sse.md (ssequaterinsnmode): New mode attribute.
+       (*<extract_type>_vinsert<shuffletype><extract_suf>_0): New pattern.
+ 2018-05-08  Richard Earnshaw  <rearnsha@arm.com>
+       PR target/85658
+       * config/arm/parsecpu.awk (check_cpu): Fix operator precedence.
+       (check_arch): Likewise.
+       (check_fpu): Return the result rather than printing it.
+       (end arch): Fix operator precedence.
+       (end cpu): Likewise.
+       (END): Print the result from check_fpu.
+ 2018-05-08  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * config/aarch64/aarch64-sve.md (*pred_cmp<cmp_op><mode>_combine)
+       (*pred_cmp<cmp_op><mode>, *fcm<cmp_op><mode>_and_combine)
+       (*fcmuo<mode>_and_combine, *fcm<cmp_op><mode>_and)
+       (*fcmuo<mode>_and): New patterns.
+ 2018-05-08  Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/iterators.md (UNSPEC_COND_LO, UNSPEC_COND_LS)
+       (UNSPEC_COND_HI, UNSPEC_COND_HS, UNSPEC_COND_UO): Delete.
+       (SVE_INT_CMP, SVE_FP_CMP): New code iterators.
+       (cmp_op, sve_imm_con): New code attributes.
+       (SVE_COND_INT_CMP, imm_con): Delete.
+       (cmp_op): Remove above unspecs from int attribute.
+       * config/aarch64/aarch64-sve.md (*vec_cmp<cmp_op>_<mode>): Rename
+       to...
+       (*cmp<cmp_op><mode>): ...this.  Use UNSPEC_MERGE_PTRUE instead of
+       comparison-specific unspecs.
+       (*vec_cmp<cmp_op>_<mode>_ptest): Rename to...
+       (*cmp<cmp_op><mode>_ptest): ...this and adjust likewise.
+       (*vec_cmp<cmp_op>_<mode>_cc): Rename to...
+       (*cmp<cmp_op><mode>_cc): ...this and adjust likewise.
+       (*vec_fcm<cmp_op><mode>): Rename to...
+       (*fcm<cmp_op><mode>): ...this and adjust likewise.
+       (*vec_fcmuo<mode>): Rename to...
+       (*fcmuo<mode>): ...this and adjust likewise.
+       (*pred_fcm<cmp_op><mode>): New pattern.
+       * config/aarch64/aarch64.c (aarch64_emit_unop, aarch64_emit_binop)
+       (aarch64_emit_sve_ptrue_op, aarch64_emit_sve_ptrue_op_cc): New
+       functions.
+       (aarch64_unspec_cond_code): Remove handling of LTU, GTU, LEU, GEU
+       and UNORDERED.
+       (aarch64_gen_unspec_cond, aarch64_emit_unspec_cond): Delete.
+       (aarch64_emit_sve_predicated_cond): New function.
+       (aarch64_expand_sve_vec_cmp_int): Use aarch64_emit_sve_ptrue_op_cc.
+       (aarch64_emit_unspec_cond_or): Replace with...
+       (aarch64_emit_sve_or_conds): ...this new function.  Use
+       aarch64_emit_sve_ptrue_op for the individual comparisons and
+       aarch64_emit_binop to OR them together.
+       (aarch64_emit_inverted_unspec_cond): Replace with...
+       (aarch64_emit_sve_inverted_cond): ...this new function.  Use
+       aarch64_emit_sve_ptrue_op for the comparison and
+       aarch64_emit_unop to invert the result.
+       (aarch64_expand_sve_vec_cmp_float): Update after the above
+       changes.  Use aarch64_emit_sve_ptrue_op for native comparisons.
+ 2018-05-07  Nathan Sidwell  <nathan@acm.org>
+       * doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope.
+       * doc/extend.texi (Deprecated Features): Remove -fno-for-scope
+       (Backwards Compatibility): Likewise.
+ 2018-05-07  Luis Machado  <luis.machado@linaro.org>
+       PR bootstrap/85681
+       Revert:
+       2018-05-07  Luis Machado  <luis.machado@linaro.org>
+       * config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
+       <prefetch_dynamic_strides>: New const bool field.
+       * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
+       prefetch_dynamic_strides.
+       (exynosm1_prefetch_tune): Likewise.
+       (thunderxt88_prefetch_tune): Likewise.
+       (thunderx_prefetch_tune): Likewise.
+       (thunderx2t99_prefetch_tune): Likewise.
+       (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides
+       to false.
+       (aarch64_override_options_internal): Update to set
+       PARAM_PREFETCH_DYNAMIC_STRIDES.
+       * doc/invoke.texi (prefetch-dynamic-strides): Document new option.
+       * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
+       * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
+       prefetch-dynamic-strides setting.
+       2018-05-07  Luis Machado  <luis.machado@linaro.org>
+       * config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
+       <minimum_stride>: New const int field.
+       * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
+       minimum_stride field.
+       (exynosm1_prefetch_tune): Likewise.
+       (thunderxt88_prefetch_tune): Likewise.
+       (thunderx_prefetch_tune): Likewise.
+       (thunderx2t99_prefetch_tune): Likewise.
+       (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048.
+       (aarch64_override_options_internal): Update to set
+       PARAM_PREFETCH_MINIMUM_STRIDE.
+       * doc/invoke.texi (prefetch-minimum-stride): Document new option.
+       * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
+       * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
+       stride is constant and is below the minimum stride threshold.
+ 2018-05-07  Luis Machado  <luis.machado@linaro.org>
+       * config/aarch64/aarch64.c (qdf24xx_prefetch_tune) <l2_cache_size>: Set
+       to 512.
+ 2018-05-07  Luis Machado  <luis.machado@linaro.org>
+       * config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
+       <prefetch_dynamic_strides>: New const bool field.
+       * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
+       prefetch_dynamic_strides.
+       (exynosm1_prefetch_tune): Likewise.
+       (thunderxt88_prefetch_tune): Likewise.
+       (thunderx_prefetch_tune): Likewise.
+       (thunderx2t99_prefetch_tune): Likewise.
+       (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides
+       to false.
+       (aarch64_override_options_internal): Update to set
+       PARAM_PREFETCH_DYNAMIC_STRIDES.
+       * doc/invoke.texi (prefetch-dynamic-strides): Document new option.
+       * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
+       * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
+       prefetch-dynamic-strides setting.
+ 2018-05-07  Luis Machado  <luis.machado@linaro.org>
+       * config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
+       <minimum_stride>: New const int field.
+       * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
+       minimum_stride field.
+       (exynosm1_prefetch_tune): Likewise.
+       (thunderxt88_prefetch_tune): Likewise.
+       (thunderx_prefetch_tune): Likewise.
+       (thunderx2t99_prefetch_tune): Likewise.
+       (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048.
+       (aarch64_override_options_internal): Update to set
+       PARAM_PREFETCH_MINIMUM_STRIDE.
+       * doc/invoke.texi (prefetch-minimum-stride): Document new option.
+       * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
+       * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
+       * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
+       stride is constant and is below the minimum stride threshold.
+ 2018-05-06  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/85659
+       * cfgexpand.c (expand_asm_stmt): Don't create a temporary if
+       the type is addressable.  Don't force op into register if it has
+       BLKmode.
+ 2018-05-05  Roland McGrath  <mcgrathr@google.com>
+       PR other/77609
+       * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for
+       any section for which we don't know a specific type it should have,
+       regardless of name.  Previously this was done only for the exact
+       names ".init_array", ".fini_array", and ".preinit_array".
+       (default_elf_asm_named_section): Add comment about
+       relationship with default_section_type_flags and SECTION_NOTYPE.
+       (get_section): Don't consider it a type conflict if one side has
+       SECTION_NOTYPE and the other doesn't, as long as neither has the
+       SECTION_BSS et al used in the default_section_type_flags logic.
+ 2018-05-05  Tom de Vries  <tom@codesourcery.com>
+       PR target/85653
+       * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_3): Define.
+       (workaround_barsyncs): New function.
+       (nvptx_reorg): Use workaround_barsyncs.
+       * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
+       (define_expand "nvptx_membar_cta"): New define_expand.
+       (define_insn "*nvptx_membar_cta"): New insn.
+ 2018-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
+       * brig-builtins.def: Add consts to ptrs etc. in BRIG builtin defs.
+       To improve optimization opportunities.
+       * builtin-types.def: The new needed builtin types for the above.
+ 2018-05-04  Richard Biener  <rguenther@suse.de>
+       * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check.
+       * gimple-ssa-store-merging.c
+       (imm_store_chain_info::output_merged_store): Remove redundant create,
+       release split_store vector contents on failure.
+       * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking
+       scalar stmt vector on cache hit.
+ 2018-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
+       * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
+       Xilinx FP support.
+       * config.gcc (powerpc-xilinx-eabi*): Remove.
+       * config/rs6000/predicates.md (easy_fp_constant): Remove Xilinx FP
+       support.
+       (fusion_addis_mem_combo_load): Ditto.
+       * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove Xilinx
+       FP support.
+       (rs6000_cpu_cpp_builtins): Ditto.
+       * config/rs6000/rs6000-linux.c
+       (rs6000_linux_float_exceptions_rounding_supported_p): Ditto.
+       * config/rs6000/rs6000-opts.h (enum fpu_type_t): Delete.
+       * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove Xilinx FP
+       support.
+       (rs6000_setup_reg_addr_masks): Ditto.
+       (rs6000_init_hard_regno_mode_ok): Ditto.
+       (rs6000_option_override_internal): Ditto.
+       (legitimate_lo_sum_address_p): Ditto.
+       (rs6000_legitimize_address): Ditto.
+       (rs6000_legitimize_reload_address): Ditto.
+       (rs6000_legitimate_address_p): Ditto.
+       (abi_v4_pass_in_fpr): Ditto.
+       (setup_incoming_varargs): Ditto.
+       (rs6000_gimplify_va_arg): Ditto.
+       (rs6000_split_multireg_move): Ditto.
+       (rs6000_savres_strategy): Ditto.
+       (rs6000_emit_prologue_components): Ditto.
+       (rs6000_emit_epilogue_components): Ditto.
+       (rs6000_emit_prologue): Ditto.
+       (rs6000_emit_epilogue): Ditto.
+       (rs6000_elf_file_end): Ditto.
+       (rs6000_function_value): Ditto.
+       (rs6000_libcall_value): Ditto.
+       * config/rs6000/rs6000.h: Ditto.
+       (TARGET_MINMAX_SF, TARGET_MINMAX_DF): Delete, merge to ...
+       (TARGET_MINMAX): ... this.  New.
+       (TARGET_SF_FPR, TARGET_DF_FPR, TARGET_SF_INSN, TARGET_DF_INSN): Delete.
+       * config/rs6000/rs6000.md: Remove Xilinx FP support.
+       (*movsi_internal1_single): Delete.
+       * config/rs6000/rs6000.opt (msingle-float, mdouble-float, msimple-fpu,
+       mfpu=, mxilinx-fpu): Delete.
+       * config/rs6000/singlefp.h: Delete.
+       * config/rs6000/sysv4.h: Remove Xilinx FP support.
+       * config/rs6000/t-rs6000: Ditto.
+       * config/rs6000/t-xilinx: Delete.
+       * gcc/config/rs6000/titan.md: Adjust for fp_type removal.
+       * gcc/config/rs6000/vsx.md: Remove Xilinx FP support.
+       (VStype_simple): Delete.
+       (VSfptype_simple, VSfptype_mul, VSfptype_div, VSfptype_sqrt): Delete.
+       * config/rs6000/xfpu.h: Delete.
+       * config/rs6000/xfpu.md: Delete.
+       * config/rs6000/xilinx.h: Delete.
+       * config/rs6000/xilinx.opt: Delete.
+       * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Remove
+       -msingle-float, -mdouble-float, -msimple-fpu, -mfpu=, and -mxilinx-fpu.
+ 2018-05-04  Tom de Vries  <tom@codesourcery.com>
+       PR libgomp/85639
+       * builtins.c (expand_builtin_goacc_parlevel_id_size): Handle null target
+       if ignore == 0.
+ 2018-05-04  Richard Biener  <rguenther@suse.de>
+       PR middle-end/85627
+       * tree-complex.c (update_complex_assignment): We are always in SSA form.
+       (expand_complex_div_wide): Likewise.
+       (expand_complex_operations_1): Likewise.
+       (expand_complex_libcall): Preserve EH info of the original stmt.
+       (tree_lower_complex): Handle removed blocks.
+       * tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW
+       on complex multiplication and division libcall builtins.
+ 2018-05-04  Richard Biener  <rguenther@suse.de>
+       PR middle-end/85574
+       * fold-const.c (negate_expr_p): Restrict negation of operand
+       zero of a division to when we know that can happen without
+       overflow.
+       (fold_negate_expr_1): Likewise.
  
-       PR ipa/12392
-       * ipa-polymorphic-call.c (struct type_change_info): Change
-       speculative to an unsigned allowing to limit the work we do.
-       (csftc_abort_walking_p): New inline function..
-       (check_stmt_for_type_change): Limit the number of may-defs
-       skipped for speculative devirtualization to
-       max-speculative-devirt-maydefs.
-       * params.def (max-speculative-devirt-maydefs): New param.
-       * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
+ 2018-05-04  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
+       PR libstdc++/85466
+       * real.h (real_nextafter): Declare.
+       * real.c (real_nextafter): New function.
+       * fold-const-call.c (fold_const_nextafter): New function.
+       (fold_const_call_sss): Call it for CASE_CFN_NEXTAFTER and
+       CASE_CFN_NEXTTOWARD.
+       (fold_const_call_1): For CASE_CFN_NEXTTOWARD call fold_const_call_sss
+       even when arg1_mode is different from arg0_mode.
  
-       PR target/63890
-       * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
-       and TARGET_MACHO.
+ 2018-05-03  Nathan Sidwell  <nathan@acm.org>
  
- 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
+       * doc/extend.texi (Deprecated Features): Remove
+       -ffriend-injection.
+       (Backwards Compatibility): Likewise.
+       * doc/invoke.texi (C++ Language Options): Likewise.
+       (C++ Dialect Options): Likewise.
  
-       PR tree-optimization/59124
-       * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
-       where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
+ 2018-05-03  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-29  Jeff Law  <law@redhat.com>
+       PR target/85530
+       * config/i386/avx512fintrin.h (_mm512_mullox_epi64,
+       _mm512_mask_mullox_epi64): New intrinsics.
  
-       * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
+ 2018-05-03  Tom de Vries  <tom@codesourcery.com>
  
- 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
+       PR testsuite/85106
+       * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
+       dump files): Add offload-tree.
  
-       * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
-       to HOST_WIDE_INT.
+ 2018-05-03  Richard Biener  <rguenther@suse.de>
  
- 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
+       PR tree-optimization/85615
+       * tree-ssa-threadupdate.c (thread_block_1): Only allow exits
+       to loops not nested in BBs loop father to avoid creating multi-entry
+       loops.
  
-       * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
-       * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
-       gcrt0.o if linking dynamically.
+ 2018-05-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR tree-optimization/70291
+       * tree-complex.c (expand_complex_libcall): Add type, inplace_p
+       arguments.  Change return type to tree.  Emit libcall as a new
+       statement rather than replacing existing one when inplace_p is true.
+       (expand_complex_multiplication_components): New function.
+       (expand_complex_multiplication): Expand floating-point complex
+       multiplication using the above.
+       (expand_complex_division): Rename inner_type parameter to type.
+       Update expand_complex_libcall call-site.
+       (expand_complex_operations_1): Update expand_complex_multiplication
+       and expand_complex_division call-sites.
+ 2018-05-02  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85582
+       * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
+       *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
+       *<shift_insn><dwi>3_doubleword_mask_1): In condition require that
+       the highest significant bit of the shift count mask is clear.  In
+       check whether and[sq]i3 is needed verify that all significant bits
+       of the shift count other than the highest are set.
+ 2018-05-02  Tom de Vries  <tom@codesourcery.com>
+       PR libgomp/82428
+       * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define.
+       * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID)
+       (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin.
+       * builtins.c (expand_builtin_goacc_parlevel_id_size): New function.
+       (expand_builtin): Call expand_builtin_goacc_parlevel_id_size.
+       * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and
+       __builtin_goacc_parlevel_size.
+ 2018-05-02  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/85597
+       * tree-vect-stmts.c (vectorizable_operation): For ternary SLP
+       do not use split vect_get_vec_defs call but call vect_get_slp_defs
+       directly.
  
- 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
+ 2018-05-02  Tom de Vries  <tom@codesourcery.com>
+       PR testsuite/85106
+       * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
+       dump files): Add ltrans-tree.
+ 2018-05-02  Tom de Vries  <tom@codesourcery.com>
+       PR testsuite/85106
+       * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
+       dump files): Add wpa-ipa.
+ 2018-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config.gcc (powerpc*-*-*): Remove paired.h.  Unsupport the
+       powerpc*-*-linux*paired* target.
+       * config/rs6000/750cl.h: Delete.
+       * config/rs6000/paired.h: Delete.
+       * config/rs6000/paired.md: Delete.
+       * config/rs6000/predicates.md (easy_vector_constant): Remove paired
+       float support.
+       * config/rs6000/rs6000-builtin.def: Remove paired float support.
+       * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
+       comment.  Remove paired float support.
+       * config/rs6000/rs6000-modes.def: Remove V2SF and V2SI.
+       * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
+       VECTOR_PAIRED.
+       * config/rs6000/rs6000-protos.h (paired_expand_vector_init,
+       paired_emit_vector_cond_expr, paired_expand_vector_move): Delete
+       declarations.
+       * config/rs6000/rs6000.c: Remove paired float support.
+       (paired_expand_vector_init, paired_expand_vector_move,
+       paired_emit_vector_compare, paired_emit_vector_cond_expr,
+       (paired_expand_lv_builtin, paired_expand_stv_builtin,
+       paired_expand_builtin, paired_expand_predicate_builtin,
+       paired_init_builtins): Delete.
+       * config/rs6000/rs6000.h: Remove paired float support.
+       * config/rs6000/rs6000.md: Remove paired float support.
+       (move_from_CR_ov_bit): Delete.
+       * config/rs6000/rs6000.opt (mpaired): Delete.
+       * config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired.
+ 2018-05-02  Richard Biener  <rguenther@suse.de>
+       PR middle-end/85567
+       * gimplify.c (gimplify_save_expr): When in SSA form allow
+       SAVE_EXPRs to compute to SSA vars.
+ 2018-05-02  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85582
+       * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
+       *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
+       *<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't
+       clobber operands[2], instead use a new pseudo.  Formatting fixes.
+ 2018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/85586
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
+       exit early for statements in the same group if the accesses are
+       not strided.
+ 2018-05-02  Tom de Vries  <tom@codesourcery.com>
+       PR lto/85451
+       * lto-wrapper.c (compile_offload_image): Add "could not find mkoffload"
+       error message.
+ 2018-05-01  Marc Glisse  <marc.glisse@inria.fr>
+       PR tree-optimization/85143
+       * match.pd (A<B&A<C): Extend to BIT_IOR_EXPR.
+ 2018-05-01  Tom de Vries  <tom@codesourcery.com>
+       PR lto/85451
+       * config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler
+       not found" error message.
+ 2018-05-01  Tom de Vries  <tom@codesourcery.com>
+       PR other/83786
+       * vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define.
+       * vec.c (test_ordered_remove_if): New function.
+       (vec_c_tests): Call test_ordered_remove_if.
+       * dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO.
+       * lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF.
+       * tree-vect-patterns.c (vect_pattern_recog_1): Use
+       VEC_ORDERED_REMOVE_IF.
+ 2018-05-01  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       PR tree-optimization/82665
+       * vr-values.c (vr_values::extract_range_from_binary_expr): Handle
+       pointer subtraction where arguments come from a memchr call.
+ 2018-05-01  Jakub Jelinek  <jakub@redhat.com>
+       * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
+       --push-state --as-needed and --pop-state instead of --as-needed and
+       --no-as-needed if ld supports it.
+       * configure: Regenerated.
  
-       PR ipa/70283
-       * ipa-devirt.c (methods_equal_p): New function.
-       (compare_virtual_tables): Use it.
-       * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
-       * cgraphclones.c (clone_function_name_1): Use
-       symbol_table::symbol_suffix_separator.
-       * coverage.c (build_var): Likewise.
-       * symtab.c (symbol_table::symbol_suffix_separator): New.
+       PR web/85578
+       * doc/install.texi2html: Replace _002d with - and _002a with * in
+       generated html files using sed.
  
- 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
  
-       PR rtl-optimization/70429
-       * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
-       (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
-       mode != result_mode.
+       PR c++/85523
+       * gcc-rich-location.c (blank_line_before_p): New function.
+       (use_new_line): New function.
+       (gcc_rich_location::add_fixit_insert_formatted): New function.
+       * gcc-rich-location.h
+       (gcc_rich_location::add_fixit_insert_formatted): New function.
  
-       PR c++/70353
-       * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
+ 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
  
-       PR tree-optimization/70405
-       * ssa-iterators.h (num_imm_uses): Add missing braces.
+       * selftest.c (assert_streq): Rename "expected" and "actual" to
+       "val1" and "val2".  Extend NULL-handling to cover both inputs
+       symmetrically, while still requiring both to be non-NULL for a pass.
+       * selftest.h (assert_streq): Rename "expected" and "actual" to
+       "val1" and "val2".
+       (ASSERT_EQ): Likewise.
+       (ASSERT_EQ_AT): Likewise.
+       (ASSERT_KNOWN_EQ): Likewise.
+       (ASSERT_KNOWN_EQ_AT): Likewise.
+       (ASSERT_NE): Likewise.
+       (ASSERT_MAYBE_NE): Likewise.
+       (ASSERT_MAYBE_NE_AT): Likewise.
+       (ASSERT_STREQ): Likewise.  Clarify that both must be non-NULL for
+       the assertion to pass.
+       (ASSERT_STREQ_AT): Likewise.
+ 2018-04-30  Jonathan Wakely  <jwakely@redhat.com>
+       * doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify
+       interaction with -pie.
+ 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
+       * selftest.h: Fix alphabetization of per-source-file selftest
+       declarations.
+ 2018-04-30  Jason Merrill  <jason@redhat.com>
+       PR c++/61982 - dead stores to destroyed objects.
+       * gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS
+       of clobber.
+ 2018-04-30  Jason Merrill  <jason@redhat.com>
+       * tree.c (build_clobber): New.
+       * tree.h: Declare it.
+       * gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it.
+ 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
+       * diagnostic-show-locus.c (layout::layout): Update for
+       location_get_source_line returning a char_span.
+       (struct char_span): Move to input.h.
+       (struct correction): Update for fields in char_span becoming
+       private.
+       (struct source_line): Update for location_get_source_line
+       returning a char_span.
+       (layout::print_line): Likewise.
+       * edit-context.c (edited_file::print_content): Likewise.
+       (edited_file::print_diff_hunk): Likewise.
+       (edited_file::print_run_of_changed_lines): Likewise.
+       (edited_file::get_num_lines): Likewise.
+       (edited_line::edited_line): Likewise.
+       * final.c (asm_show_source): Likewise.
+       * input.c (location_get_source_line): Convert return type
+       from const char * to char_span, losing the final "line_len"
+       param.
+       (dump_location_info): Update for the above.
+       (get_substring_ranges_for_loc): Likewise.  Use a char_span
+       when handling the literal within the line.
+       (test_reading_source_line): Update for location_get_source_line
+       returning a char_span.
+       * input.h (class char_span): Move here from
+       diagnostic-show-locus.c, converting from a struct to a class.
+       Make data members private.
+       (char_span::operator bool): New.
+       (char_span::length): New.
+       (char_span::get_buffer): New.
+       (char_span::operator[]): New.
+       (char_span::subspan): Make const.
+       (char_span::xstrdup): New.
+       (location_get_source_line): Convert return type from const char *
+       to char_span, losing the final "line_size" param.
+ 2018-04-30  Jan Hubicka  <jh@suse.cz>
+       * lto-wrapper.c (ltrans_priorities): New static var.
+       (cmp_priority): New.
+       (run_gcc): Read priorities and if doing parallel build order
+       the Makefile by them.
+ 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
+       * input.h (builtins_location_check): Convert to a STATIC_ASSERT.
+ 2018-04-30  Richard Biener  <rguenther@suse.de>
+       * tree-cfg.c (verify_address): Remove base argument, add
+       flag whether to check TREE_ADDRESSABLE and do that.
+       (verify_expr): Remove.
+       (verify_types_in_gimple_reference): Add pieces from verify_expr.
+       (verify_gimple_assign_single): Likewise.
+       (verify_gimple_switch): Likewise.
+       (verify_expr_location_1): Dereference tp once.  Add (disabled)
+       piece from verify_expr.
+       (verify_gimple_in_cfg): Do not call verify_expr on all ops.
+ 2018-04-30  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/linux.h (CLEAR_INSN_CACHE): Define.
+ 2018-04-30  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc-protos.h (prepare_extend_operands): Remove.
+       (small_data_pattern): Likewise.
+       (arc_rewrite_small_data): Likewise.
+       * config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove.
+       (LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise.
+       (get_symbol_alignment): New function.
+       (legitimate_small_data_address_p): Likewise.
+       (legitimate_scaled_address): Update, call
+       legitimate_small_data_address_p.
+       (output_sdata): New static variable.
+       (arc_print_operand): Update how we handle small data operands.
+       (arc_print_operand_address): Likewise.
+       (arc_legitimate_address_p): Update, use
+       legitimate_small_data_address_p.
+       (arc_rewrite_small_data_p): Remove.
+       (arc_rewrite_small_data_1): Likewise.
+       (arc_rewrite_small_data): Likewise.
+       (small_data_pattern): Likewise.
+       (compact_sda_memory_operand): Update to use
+       legitimate_small_data_address_p and get_symbol_alignment.
+       (prepare_move_operands): Don't rewite sdata pattern.
+       (prepare_extend_operands): Remove.
+       * config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata
+       pattern.
+       (zero_extendqisi2): Likewise.
+       (zero_extendhisi2): Likewise.
+       (extendqihi2): Likewise.
+       (extendqisi2): Likewise.
+       (extendhisi2): Likewise.
+       (addsi3): Likewise.
+       (subsi3): Likewise.
+       (andsi3): Likewise.
+       * config/arc/constraints.md (Usd): Change it to memory constraint.
+ 2018-04-30  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.c (arc_split_move): Allow signed 6-bit constants
+       as source of std instructions.
+       * config/arc/arc.md (movsi_insn): Update pattern predicate to
+       allow 6-bit constants as source for store instructions.
+       (movdi_insn): Update instruction pattern to allow 6-bit constants
+       as source for store instructions.
+ 2018-04-30  Jonathan Wakely  <jwakely@redhat.com>
+       * doc/invoke.texi (-fdebug-types-section): Fix grammar.
+ 2018-04-30  Nathan Sidwell  <nathan@acm.org>
+           Sandra Loosemore <sandra@codesourcery.com>
+       * dumpfile.c (dump_open): Allow '-' for stdout.
+       * doc/invoke.texi (Developer Options): Document dump filename
+       determination early.  Document stdin/stdout selection.
+ 2018-04-30 Andrew Sadek  <andrew.sadek.se@gmail.com>
+       Microblaze Target: PIC data text relative
+       * config/microblaze/microblaze.opt: add new option -mpic-data-text-rel.
+       * config/microblaze/microblaze-protos.h (microblaze_constant_address_p):
+       Add declaration.
+       * gcc/config/microblaze/microblaze.h (microblaze_constant_address_p):
+       CONSTANT_ADDRESS_P definition to microblaze_constant_address_p.
+       * config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL):
+       New addressing mode for data-text relative position indepenedent code.
+       (microblaze_classify_unspec): add 'UNSPEC_TEXT' case ->
+       'ADDRESS_SYMBOLIC_TXT_REL'.
+       (microblaze_classify_address): Add handling for UNSPEC + CONST_INT.
+       (microblaze_legitimate_pic_operand): Exclude function calls from
+       pic operands in case of TARGET_PIC_DATA_TEXT_REL option.
+       (microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible
+       addresses cases.
+       (microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
+       (print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
+       (print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling
+       for 'address + offset'.
+       (microblaze_expand_prologue): Add new function prologue call for
+       'r20' assignation.
+       (microblaze_asm_generate_pic_addr_dif_vec): Override new target hook
+       'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector
+       table in case of TARGET_PIC_DATA_TEXT_REL.
+       (expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'.
+       * gcc/config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL):
+       Add new macros 'UNSPEC_TEXT',
+       'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue
+       + exclude function calls from 'UNSPEC_PLT' in case of data text
+       relative mode.
+       * doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
+       new target hook for generating address diff vector tables in case of
+       flag_pic.
+       * doc/tm.texi : Regenerate.
+       * stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition
+       'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case
+       of addr diff vector generation.
+       * target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
+       target hook definition.
+       * targhooks.h, gcc/targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
+       Add default function for generate_pic_addr_diff_vec -> flag_pic.
+       * doc/invoke.texi (Add new pic option): Add new microblaze pic
+       option for data text relative.
+ 2018-04-30  Richard Biener  <rguenther@suse.de>
+       * tree-chrec.h (evolution_function_is_constant_p): Remove
+       redundant check.
+       * tree-cfg.c (tree_node_can_be_shared): Re-order checks.
+ 2018-04-30  Richard Biener  <rguenther@suse.de>
+       PR bootstrap/85571
+       * dwarf2out.c (gen_producer_string): Ignore -fchecking[=].
+ 2018-04-30  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/28364
+       PR tree-optimization/85275
+       * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after
+       copying first exit test.
+ 2018-04-28  Mark Wielaard  <mark@klomp.org>
+       * dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for
+       dwarf_version >= 5.
+       (dwarf_AT): Handle DW_AT_addr_base.
+       (add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base.
+ 2018-04-28  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/84431
+       * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): New pattern.
+       (*ashl<dwi>3_doubleword_mask_1): Ditto.
+       (*<shift_insn><dwi>3_doubleword_mask): Ditto.
+       (*<shift_insn><dwi>3_doubleword_mask_1): Ditto.
+ 2018-04-28  Richard Biener  <rguenther@suse.de>
+       * tree-cfg.c (verify_gimple_phi): Take a gphi * argument.
+       (verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts
+       to reflect use.  Only add interesting stmts.
+ 2018-04-27  Martin Jambor  <mjambor@suse.cz>
+       PR ipa/85549
+       * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure
+       the jump function allows for passing through aggregate values.
+ 2018-04-27  David Malcolm  <dmalcolm@redhat.com>
+       * input.h (in_system_header_at): Convert from macro to inline
+       function.
+       (from_macro_expansion_at): Likewise.
+       (from_macro_definition_at): Likewise.
  
- 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
+ 2018-04-27  Jeff Law  <law@redhat.com>
  
-       PR rtl-optimization/68695
-       * ira-color.c (allocno_copy_cost_saving): New.
-       (improve_allocation): Use it.
+       * config.gcc: Mark tile* targets as deprecated/obsolete.
  
- 2016-03-29  Richard Henderson  <rth@redhat.com>
+ 2018-04-27  Richard Biener  <rguenther@suse.de>
  
-       PR middle-end/70355
-       * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
+       * config/aarch64/aarch64.c: Simplify ap.__stack advance and
+       fix for ILP32.
  
- 2016-03-29  Richard Biener  <rguenther@suse.de>
+ 2018-04-27  Richard Biener  <rguenther@suse.de>
  
-       PR middle-end/70424
-       * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
-       use alignment returned by get_pointer_alignment_1 if it is
-       bigger than BITS_PER_UNIT.
-       * builtins.c (get_pointer_alignment_1): Do not return true
-       for alignment extracted from SSA info.
+       * tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.
  
- 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
+ 2018-04-27  Uros Bizjak  <ubizjak@gmail.com>
  
-       * config/ft32/ft32.opt (mnodiv): New.
-       * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
-       * doc/invoke.texi (FT32 Options -mnodiv): New.
+       * config/i386/i386.md (*movti_internal): Substitute Ye constraint
+       with Yd constraint. Set "preferred_for_speed" attribute from
+       TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives
+       with Yd constraint.
+       (*movdi_internal): Ditto.
+       (movti_interunit splitters): Remove
+       TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition.
+       (movdi_interunit splitters): Ditto.
+       * config/i386/constraints.md (Ye): Remove.
+       (Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC.
  
- 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
+ 2018-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       PR target/70406
-       * config/i386/i386.md (define_split, andn): Fix modes.
+       PR target/85512
+       * config/aarch64/constraints.md (Usg): Limit to 31.
+       (Usj): Limit to 63.
  
- 2016-03-26  Richard Biener  <rguenther@suse.de>
-           Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 2018-04-27  Jakub Jelinek  <jakub@redhat.com>
  
-       PR ipa/70366
-       * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
-       instead of
-       TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
-       as 2nd argument to cl_optimization_restore().
+       PR tree-optimization/85529
+       * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
+       argument.  Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
+       rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
+       zero extension or masking of the MSB bit.
+       (optimize_range_tests): Add FIRST_BB argument, pass it through
+       to optimize_range_tests_var_bound.
+       (maybe_optimize_range_tests, reassociate_bb): Adjust
+       optimize_range_tests callers.
  
- 2016-03-25  Richard Henderson  <rth@redhat.com>
+ 2018-04-26  Richard Biener  <rguenther@suse.de>
+           Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/70120
-       * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
-       * config/aarch64/aarch64-protos.h: Declare it.
-       * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
+       * cgraph.h (symbol_table): Just declare debug method here.
+       * symtab.c (symbol_table::debug): Define.
  
- 2016-03-25  Alan Modra  <amodra@gmail.com>
+ 2018-04-26  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR target/70052
-       * config/rs6000/constraints.md (j): Simplify.
-       * config/rs6000/predicates.md (easy_fp_constant): Exclude
-       decimal float 0.D.
-       * config/rs6000/rs6000.md (zero_fp): New mode_attr.
-       (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
-        mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
-       in all constraint alternatives.
-       (movtd_64bit_nodm): Delete "j" constraint alternative.
+       * loop-invariant.c (may_assign_reg_p): Return false for frame pointer.
  
- 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
+ 2018-04-26  Uros Bizjak  <ubizjak@gmail.com>
  
-       * tree-ssa-propagate.c: Enhance docs for
-       SSA_PROP_NOT_INTERESTING.
+       * config/i386/i386.md ("isa" attribute): Add x64_sse2.
+       ("enabled" attribute): Handle x64_sse2 "isa" attribute.
+       (*movdi_internal): Substitute Yi and Yj constraint with x
+       and Ym and Yn constraint with y constraint.  Update "isa"
+       attribute and set "preferred_for_speed" attribute from
+       TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives.
+       (*movsi_internal): Ditto.
+       (*movdf_internal): Ditto.
+       (*movsf_internal): Ditto.
+       (*zero_extendsidi2): Ditto.
+       * config/i386/sse.md (vec_set<mode>_0): Ditto.
+       (sse2_loadld): Ditto.
+       (*vec_extract<ssevecmodelower>_0): Ditto.
+       (*vec_extractv4si_0_zext_sse4): Ditto.
+       (vec_concatv2di): Ditto.
+       (*vec_dup<mode>): Ditto.
+       * config/i386/mmx.md (*mov<mode>_internal): Ditto.
+       * config/i386/constraints.md (Yi): Remove.
+       (Yj): Remove.
+       (Ym): Remove.
+       (Yn): Remove.
  
- 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
+ 2018-04-26  Nathan Sidwell  <nathan@acm.org>
  
-       * doc/extend.texi: Fix typo in documentation to pure attribute.
+       * dumpfile.c (dump_open): New.
+       (dump_open_alternate_stream, dump_start, dump_begin): Call it.
+       (dump_finish): Detect stdio/stderr by value not name.
  
- 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
+ 2018-04-26  Jonathan Wakely  <jwakely@redhat.com>
  
-       PR target/70319
-       * config/pa/pa.md (bswapdi2): Use a scratch register.
+       * doc/invoke.texi (-Wreturn-type): Document default status for C++.
  
- 2016-03-24  Richard Henderson  <rth@redhat.com>
+ 2018-04-26  Tom de Vries  <tom@codesourcery.com>
  
-       PR middle-end/69845
-       * fold-const.c (extract_muldiv_1): Correct test for multiplication
-       overflow.
+       PR target/84952
+       * config/nvptx/nvptx.c (verify_neutering_jumps)
+       (verify_neutering_labels): New function
+       (nvptx_single): Use verify_neutering_jumps and verify_neutering_labels.
  
- 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-04-26  Tom de Vries  <tom@codesourcery.com>
  
-       * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
-       using ix86_expand_binary_operator instead of gen_andsi3.
+       PR target/84025
+       * config/nvptx/nvptx.c (needs_neutering_p): New function.
+       (nvptx_single): Use needs_neutering_p to skip over insns that do not
+       need neutering.
  
- 2016-03-24  Richard Biener  <rguenther@suse.de>
+ 2018-04-26  Richard Biener <rguenther@suse.de>
+           Tom de Vries  <tom@codesourcery.com>
  
-       PR tree-optimization/70396
-       * tree-vect-stmts.c (vectorizable_comparison): Use
-       get_vectype_for_scalar_type.
+       PR lto/85422
+       * lto-streamer-out.c (output_function): Fixup loops if required to match
+       discovery done in the reader.
  
- 2016-03-24  Richard Biener  <rguenther@suse.de>
+ 2018-04-26  Richard Biener  <rguenther@suse.de>
  
-       PR middle-end/70370
-       * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
-       with register bases.
+       PR tree-optimization/85116
+       * tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should
+       have a loop exit from the single latch predecessor.  Remove
+       case of header with just condition.
+       (ch_base::copy_headers): Exclude infinite loops from any
+       processing.
+       (pass_ch::execute): Record exits.
  
- 2016-03-24  Richard Biener  <rguenther@suse.de>
+ 2018-04-26  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/70372
-       * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
-       build_all_ones_cst to also handle vector types correctly.
+       * tree-vect-data-refs.c (vect_get_data_access_cost): Get
+       prologue cost vector and pass it to vect_get_load_cost.
+       (vect_get_peeling_costs_all_drs): Likewise.
+       (vect_peeling_hash_get_lowest_cost): Likewise.
+       (vect_enhance_data_refs_alignment): Likewise.
  
- 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
+ 2018-04-26  Richard Biener  <rguenther@suse.de>
  
-       PR target/70381
-       * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
-       -mfloat128 here.
+       PR middle-end/85450
+       * tree-cfg.c (verify_gimple_assign_unary): Restore proper
+       checking of integer<->pointer conversions.
+       * omp-expand.c (expand_omp_for_static_nochunk): Avoid
+       sign-/zero-extending pointer types.
+       (expand_omp_for_static_chunk): Likewise.
  
- 2016-03-23  Marek Polacek  <polacek@redhat.com>
+ 2018-03-22  Hans-Peter Nilsson  <hp@axis.com>
+           Jean Lee  <xiaoyur347@gmail.com>
  
-       PR c++/69884
-       * doc/invoke.texi: Document -Wignored-attributes.
+       * config/mips/mips.c (mips_asan_shadow_offset): New function.
+       (TARGET_ASAN_SHADOW_OFFSET): Define.
+       * config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be
+       true for -fsanitize=address.
  
- 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
+ 2018-04-25  Mark Wielaard  <mark@klomp.org>
  
-       PR tree-optimization/69042
-       * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
-       parameter from 30 to 40.
+       * dwarf2out.c (file_info_cmp): Sort longer dir prefixes before
+       shorter ones.
  
- 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
+ 2018-04-25  Jakub Jelinek  <jakub@redhat.com>
  
-       PR tree-optimization/69042
-       * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
-       for use with constant offset stripped in base.
+       * config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather
+       than "alu", remove explicit "memory" and "imm_disp" attributes.
+       (*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise.
  
- 2016-03-23  Richard Biener  <rguenther@suse.de>
+       PR middle-end/85414
+       * simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND,
+       case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to
+       gen_lowpart_no_emit.
  
-       PR middle-end/70251
-       * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
-       mode compatibility check.
-       (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
+ 2018-04-25  Sebastian Peryt  <sebastian.peryt@intel.com>
  
- 2016-03-23  Jeff Law  <law@redhat.com>
+       PR target/85473
+       * config/i386/i386.c (ix86_expand_builtin): Change memory
+       operand to XI, extend p0 to Pmode.
+       * config/i386/i386.md: Change unspec volatile and operand
+       1 mode to XI, change operand 0 mode to P.
  
-       PR tree-optimization/64058
-       * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
-       CONFLICT_COUNT.
-       (struct ssa_conflicts): Move up earlier in the file.
-       (conflicts_, var_map_): New static variables.
-       (initialize_conflict_count): New function to initialize the
-       CONFLICT_COUNT field for each conflict pair.
-       (compare_pairs): Lazily initialize the conflict count and use it
-       as the first tie-breaker.
-       (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
-       and wipe conflicts_ and map_ around the call to qsort.  Remove
-       special case for 2 coalesce pairs.
-       * bitmap.c (bitmap_count_unique_bits): New function.
-       (bitmap_count_bits_in_word): New function, extracted from
-       bitmap_count_bits.
-       (bitmap_count_bits): Use bitmap_count_bits_in_word.
-       * bitmap.h (bitmap_count_unique_bits): Declare it.
+ 2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with
+       GET_MODE_MASK before any checking.
+       (nds32_can_use_bset_p): Likewise.
+       (nds32_can_use_btgl_p): Likewise.
  
-       PR target/69917
-       * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
-       transparent alias chain for decl assembler name.
-       * config/sol2.c (solaris_assemble_visibility): Likewise.
+ 2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/nds32/nds32-doubleword.md: New define_split pattern for
+       illegal register number.
  
-       * config/arm/arm1020e.md (1020call_op): Reduce reservation
-       duration.
-       (v10_fdivs): Likewise.
-       (v10_fdivd): Likewise.
+ 2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.
  
-       PR driver/70132
-       * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
-       to not call fclose twice on file.
+ 2018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
+       * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.
  
-       PR tree-optimization/70354
-       * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
-       oprnd0 is wider than oprnd1 and there is a cast from the wider
-       type to oprnd1, mask it with the mask of the narrower type.
+ 2018-04-25  Richard Biener  <rguenther@suse.de>
  
-       PR target/70321
-       * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
-       Optimize TARGET_STV splitters, if high or low word of last argument
-       is 0 or -1.
+       * lto-streamer.h (LTO_major_version): Bump to 8.
  
- 2016-03-22  Jeff Law  <law@redhat.com>
+ 2018-04-25  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/70232
-       tree-ssa-threadbackward.c
-       (fsm_find_control_statement_thread_paths): Correctly distinguish
-       between old style jump threads vs FSM jump threads.
+       * BASE-VER: Set to 9.0.0.
  
- 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
+ 2018-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR target/70302
-       * config/i386/i386.c (scalar_chain::convert_op): Support
-       uninitialized register usage case.
+       * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes
+       in __abskf2 and __powikf2.
  
- 2016-03-22  Richard Biener  <rguenther@suse.de>
+ 2018-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       PR middle-end/70251
-       * genmatch.c (gen_transform): Adjust last parameter to a three-state
-       int...
-       (capture::gen_transform): ... to change behavior when substituting
-       a condition into cond or not-cond expr context.
-       (dt_simplify::gen_1): Adjust.
-       * gimple-match-head.c: Include gimplify.h for unshare_expr.
-       * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
-       last change and instead change to
-       A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
-       (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
+       PR target/85512
+       * config/aarch64/constraints.md (Usg, Usj): New constraints.
+       * config/aarch64/iterators.md (cmode_simd): New mode attribute.
+       * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
+       Use the above on operand 2.  Reindent.
+       (*aarch64_lshr_sisd_or_int_<mode>3): Likewise.
  
- 2016-03-22  Anthony Green  <green@moxielogic.com>
+ 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
  
-       * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
-       issue for moxiebox targets.
-       (CC1PLUS_SPEC): Ditto.
+       PR target/85485
+       * common/config/i386/i386-common.c (ix86_handle_option): Don't
+       handle OPT_mcet.
+       * config/i386/i386.opt (mcet): Removed.
+       * doc/install.texi: Remove -mcet documentation.
+       * doc/invoke.texi: Likewise.
  
- 2016-03-22  Richard Biener  <rguenther@suse.de>
+ 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
  
-       PR middle-end/70333
-       * fold-const.c (extract_muldiv_1): Properly perform multiplication
-       in the wide type.
+       PR target/85485
+       * doc/install.texi: Remove -mcet from bootstrap-cet.
  
- 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
+ 2018-04-24  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/i386/i386.c (def_builtin): Remove duplicated functionality.
+       PR target/85511
+       * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define
+       __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32
+       if TARGET_64BIT.
  
- 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
-       PR target/70325
-       * config/i386/i386.c (def_builtin): Handle
-       OPTION_MASK_ISA_AVX512VL to be and-ed with other
-       bits.
-       (const struct builtin_description bdesc_special_args[]):
-       Remove duplicate ISA bits.
+       PR target/85503
+       * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if
+       const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool
+       containing a CONST_VECTOR.
  
- 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-24  Cesar Philippidis  <cesar@codesourcery.com>
  
-       PR target/70329
-       * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
-       d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
-       in a way that works also for AVX512BW.
+       * doc/install.texi: Update newlib dependency for nvptx.
  
-       PR target/70300
-       * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
-       instead of source if operands[1] is xmm16 and above and
-       !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
-       vec_interleave_lowv4sf if we need to unpack xmm16 and above.
+ 2018-04-24  Jakub Jelinek  <jakub@redhat.com>
  
-       PR c++/70295
-       * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
-       on assign if (*from_p) is a comparison, set it to
-       TREE_NO_WARNING (*from_p).
+       PR target/85508
+       * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL
+       instead of INTVAL when shifting x left.
  
- 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
  
-       PR middle-end/70326
-       * lra.c (restore_scratches): Ignore deleted insns.
+       PR tree-optimization/85478
+       * tree-vect-loop.c (vect_analyze_loop_2): Do not call
+       vect_grouped_store_supported for single element vectors.
  
- 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
-           Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-24  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/70317
-       * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
-       to HONOR_NANS.
+       PR target/85491
+       * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
+       load cost increase to the case of non-constant step.
  
- 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-04-24  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/70327
-       * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
-       of ix86_expand_move.
-       (movoi): Ditto.
-       (movti): Use general_operand for operand 1 predicate.
+       PR target/84828
+       * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead
+       destination if any_malformed_asm.
  
- 2016-03-21  Martin Liska  <mliska@suse.cz>
+ 2018-04-23  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
-       insns.
-       (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
+       PR middle-end/85496
+       * expr.c (store_field): In the bitfield case, if the value comes from
+       a function call and is returned in registers by means of a PARALLEL,
+       do not change the mode of the temporary unless BLKmode and VOIDmode.
  
- 2016-03-21  Martin Liska  <mliska@suse.cz>
+ 2018-04-23  Andrey Belevantsev  <abel@ispras.ru>
  
-       PR ipa/70306
-       * ipa-icf.c (sem_function::parse): Skip static
-       constructors and destructors.
+       PR rtl-optimization/85423
+       * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
+       dependencies to debug insns when the previous insn is non-debug.
  
- 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       PR target/70296
-       * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
-       function-like macro, peek following token(s) if it is followed
-       by CPP_OPEN_PAREN token with optional padding in between, and
-       if not, don't treat it like a macro.
+       * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
+       enums into a single definition.
+       (fls): Fix predicates and printing.
+       (seti): Likewise.
  
- 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
-           Alexander Monakov  <amonakov@ispras.ru>
+ 2018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
-       for the stabs debug format.
+       * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove.
+       * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers
+       and short u6 immediate.
+       (check_if_valid_sleep_operand): Remove.
+       * config/arc/arc.md (Sleep): Accepts registers and u6 immediates.
  
- 2016-03-21  Richard Biener  <rguenther@suse.de>
+ 2018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR tree-optimization/70310
-       * tree-vect-generic.c (expand_vector_condition): Fold the built
-       condition.
+       * config/nds32/nds32.c (nds32_compute_stack_frame): Consider
+       flag_always_save_lp condition.
+       * config/nds32/nds32.opt (malways-save-lp): New option.
  
- 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
+ 2018-04-22  Shiva Chen  <shiva0217@gmail.com>
  
-       PR target/70293
-       * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
-       Block third alternative for AVX-512VL target,
+       * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
+       * config/nds32/nds32.c (nds32_use_load_post_increment): New.
+       * config/nds32/nds32.h
+       (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define.
+       (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define.
  
- 2016-03-21  Martin Liska  <mliska@suse.cz>
+ 2018-04-22  Shiva Chen  <shiva0217@gmail.com>
  
-       PR hsa/70234
-       * hsa-brig.c (emit_function_directives): Mark unemitted
-       global variables for emission.
-       * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
-       (get_symbol_for_decl): Likewise.
-       * hsa.h (struct hsa_symbol): New flag.
+       * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove.
+       * config/nds32/nds32.c (nds32_ls_333_p): Remove.
  
- 2016-03-21  Richard Biener  <rguenther@suse.de>
+ 2018-04-22  Shiva Chen  <shiva0217@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR tree-optimization/70288
-       * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
-       we do not estimate unsimplified all-constant conditionals or
-       switches as optimized away.
+       * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode):
+       Declare.
+       * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function.
+       * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify.
  
- 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
+ 2018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR rtl-optimization/69102
-       * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
-       when we have a readonly dependency context.
+       * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
  
- 2016-03-18  Jeff Law  <law@redhat.com>
+ 2018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR rtl-optimization/70263
-       * ira.c (memref_used_between_p): Assert we found END in the insn chain.
-       (update_equiv_regs): When trying to move a store to after the insn
-       that sets the source of the store, make sure the store occurs after
-       the insn that sets the source of the store.  When successful note
-       the REG_EQUIV note created in the dump file.
+       * config/nds32/nds32-protos.h (nds32_data_alignment,
+       nds32_local_alignment): Declare.
+       * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment,
+       nds32_local_alignment): New functions.
+       (TARGET_CONSTANT_ALIGNMENT): Define.
+       * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
  
- 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
-           Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * doc/extend.texi: Document more potential problems with basic asms.
+       * config/nds32/nds32.c
+       (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file.
+       (TARGET_MODES_TIEABLE_P): Likewise.
  
- 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR rtl-optimization/70278
-       * lra-constraints.c (split_reg): Handle the case where biggest_mode is
-       VOIDmode.
+       * config/nds32/nds32.c (nds32_asm_file_start): Display optimization
+       level Ofast and Og.
  
- 2016-03-18  Jason Merrill  <jason@redhat.com>
+ 2018-04-22  Monk Chiang  <sh.chiang04@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * calls.c (load_register_parameters): Fix zero size sibcall logic.
+       * config/nds32/constants.md (unspec_volatile_element): Add enum values
+       for unaligned access.
+       * config/nds32/nds32-intrinsic.c: Implementation of expanding
+       unaligned access.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+       * config/nds32/nds32.opt (munaligned-access): New option.
+       * config/nds32/nds32.c (nds32_asm_file_start): Display
+       flag_unaligned_access status.
  
- 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
+ 2018-04-20  Kito Cheng  <kito.cheng@gmail.com>
  
-       * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
-       values to 128b regs.
+       * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
+       -mno-relax is present.
+       * config/riscv/linux.h (LINK_SPEC): Ditto.
  
- 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
+ 2018-04-20  Martin Sebor  <msebor@redhat.com>
  
-       PR tree-optimization/70252
-       * tree-vect-stmts.c (supportable_widening_operation): Check resulting
-       boolean vector has a proper number of elements.
-       (supportable_narrowing_operation): Likewise.
+       PR c/85365
+       * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict
+       for null pointers.
+       (gimple_fold_builtin_stxcpy_chk): Same.
+       * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same.
  
- 2016-03-18  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-20  Michael Meissner  <meissner@linux.ibm.com>
  
-       PR ipa/70269
-       * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
+       PR target/85456
+       * config/rs6000/rs6000.c (init_float128_ieee): Add support to call
+       __powikf2 when long double is IEEE 128-bit.
  
- 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-20  Kito Cheng  <kito.cheng@gmail.com>
  
-       * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
-       instead of replace_rtx for DEBUG_INSNs.
+       * config/riscv/riscv.c (riscv_first_stack_step): Round up min
+       step to make sure stack always aligned.
  
- 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
+ 2018-04-20  Carl Love  <cel@us.ibm.com>
  
-       * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
-       load type reservations.
+       PR target/83402
+       * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add
+       size check for arg0.
  
- 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
+ 2018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
+           Tom de Vries  <tom@codesourcery.com>
  
-       PR target/70188
-       * config/pa/constraints.md: Revert 2015-02-13 change.  Use
-       define_constraint for "Q" and "T" constraints.
+       PR target/85445
+       * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining):
+       Emit insns for calls too.
+       (nvptx_find_par): Always look for worker-level predecessor insn.
+       (nvptx_propagate): Add is_call parm, return bool.  Copy frame for
+       calls.
+       (nvptx_vpropagate, nvptx_wpropagate): Adjust.
+       (nvptx_process_pars): Propagate frames for calls.
+ 2018-04-20  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/85469
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET):
+       Removed.
+       (OPTION_MASK_ISA_IBT_UNSET): Likewise.
+       (ix86_handle_option): Don't handle OPT_mibt.
+       * config/i386/cet.h: Check __CET__ instead of __IBT__ and
+       __SHSTK__.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Remove
+       has_ibt and ibt.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Don't
+       check OPTION_MASK_ISA_IBT nor flag_cf_protection.
+       (ix86_target_macros): Define __CET__ with flag_cf_protection
+       for -fcf-protection.
+       * config/i386/i386.c (isa2_opts): Remove -mibt.
+       * config/i386/i386.h (TARGET_IBT): Removed.
+       (TARGET_IBT_P): Likewise.
+       (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt.
+       * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT.
+       * config/i386/i386.opt (mcet): Update help message.
+       (mshstk): Likewise.
+       (mibt): Removed.
+       * doc/invoke.texi: Remove -mibt.  Document __CET__.  Document
+       -mcet as an alias for -mshstk.
+ 2018-04-20  Richard Biener <rguenther@suse.de>
+       PR middle-end/85475
+       * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential
+       complexity by forcing a single use of the multiply operand.
+ 2018-04-20  Martin Jambor  <mjambor@suse.cz>
+       ipa/85449
+       * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding
+       recursion dependency to only apply to non-clones.
+ 2018-04-20  Martin Jambor  <mjambor@suse.cz>
+       ipa/85447
+       * ipa-cp.c (create_specialized_node): Check that clones of
+       self-recursive edges exist during IPA-CP.
+ 2018-04-19  Toon Moene  <toon@moene.org>
+       * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled
+       by -O3.
+ 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/85467
+       * fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use
+       VECTOR_TYPE_P macro.  If type is vector type, VIEW_CONVERT_EXPR the
+       VECTOR_CST element to type.
+ 2018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/85397
+       * config/i386/i386.h (STACK_SAVEAREA_MODE): New.
+       * config/i386/i386.md (builtin_setjmp_setup): Removed.
+       (builtin_longjmp): Likewise.
+       (save_stack_nonlocal): New pattern.
+       (restore_stack_nonlocal): Likewise.
+ 2018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/85404
+       * config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
+       Replace ASM_OUTPUT_LABEL with fprintf.
+ 2018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/85417
+       * config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
+       Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Also
+       define __IBT__ and __SHSTK__ for -fcf-protection.
+       * config/i386/i386.c (pass_insert_endbranch::gate): Don't check
+       TARGET_IBT.
+       (ix86_trampoline_init): Likewise.
+       (x86_output_mi_thunk): Likewise.
+       (ix86_notrack_prefixed_insn_p): Likewise.
+       (ix86_option_override_internal): Don't disallow -fcf-protection.
+       * config/i386/i386.md (rdssp<mode>): Also enable for
+       -fcf-protection.
+       (incssp<mode>): Likewise.
+       (nop_endbr): Likewise.
+       * config/i386/i386.opt (mcet): Change help message to built-in
+       functions only.
+       (mibt): Likewise.
+       (mshstk): Likewise.
+       * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition
+       on -fcf-protection.  Change -mcet, -mibt and -mshstk to only
+       enable CET built-in functions.
+ 2018-04-19  Sebastian Peryt  <sebastian.peryt@intel.com>
  
- 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
+       * common/config/i386/i386-common.c
+       (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET,
+       OPTION_MASK_ISA_MOVDIRI_UNSET,
+       OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines.
+       (ix86_handle_option): Handle -mmovdiri and -mmovdir64b.
+       * config.gcc (movdirintrin.h): New header.
+       * config/i386/cpuid.h (bit_MOVDIRI,
+       bit_MOVDIR64B): New bits.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri
+       and -mmvodir64b.
+       * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED),
+       (VOID, PVOID, PCVOID)): New function types.
+       * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32,
+       __builtin_ia32_directstoreu_u64,
+       __builtin_ia32_movdir64b): New builtins.
+       * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New.
+       * config/i386/i386.c (ix86_target_string): Added -mmovdir64b
+       and -mmovdiri.
+       (ix86_valid_target_attribute_inner_p): Ditto.
+       (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED
+       and VOID_FTYPE_PUNSIGNED_UNSIGNED.
+       (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B.
+       * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P,
+       TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New.
+       * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New.
+       (movdiri<mode>, movdir64b_<mode>): New.
+       * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b.
+       * config/i386/immintrin.h: Include movdirintrin.h.
+       * config/i386/movdirintrin.h: New file.
+       * doc/invoke.texi: Added -mmovdiri and -mmovdir64b.
+ 2018-04-19  Richard Biener  <rguenther@suse.de>
+       PR middle-end/85455
+       * cfg.c (clear_bb_flags): When loop state says we have
+       marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP.
+ 2018-04-19  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84737
+       * tree-vect-data-refs.c (vect_copy_ref_info): New function
+       copying restrict info.
+       (vect_setup_realignment): Use it.
+       * tree-vectorizer.h (vect_copy_ref_info): Declare.
+       * tree-vect-stmts.c (vectorizable_store): Copy ref info from
+       the first DR to all generated stores.
+       (vectorizable_load): Likewise for loads.
+ 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/85446
+       * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require
+       the integral and pointer types to have the same precision.
+       * doc/install.texi: Document --disable-cet being the default and
+       --enable-cet=auto.
+ 2018-04-18  Martin Liska  <mliska@suse.cz>
+       * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding
+       style.
+ 2018-04-18  Martin Liska  <mliska@suse.cz>
  
-       Tweak the pipeline model for Exynos M1
+       Revert
+       2018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
-       model.
+       PR ipa/83983
+       * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
+       arguments if they are comparable.
  
- 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
+ 2018-04-18  Martin Liska  <mliska@suse.cz>
  
-       PR c/70264
-       * diagnostic-show-locus.c (compatible_locations_p): Handle the case
-       where one or both locations aren't within a line_map.
+       Revert
+       2018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
+       PR lto/84805
+       * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
+       incomplete types.
  
-       PR driver/70192
-       * opts.c (finish_options): Don't set flag_pie to the default if
-       -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
-       if it is -1.
+ 2018-04-18  H.J. Lu  <hongjiu.lu@intel.com>
  
- 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
+       PR target/85388
+       * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert
+       ENDBR after calling __morestack.
  
-       * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
-       true as ALL_REGS argument to replace_rtx.
+ 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
  
- 2016-03-17  Richard Biener  <rguenther@suse.de>
+       PR jit/85384
+       * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version
+       by using gcc_base_ver to generate a gcc_driver_version, and use
+       it when generating GCC_DRIVER_NAME.
+       * configure: Regenerate.
  
-       PR debug/70271
-       * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
-       last.
+ 2018-04-18  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
+       PR target/81084
+       * config.gcc: Obsolete powerpc*-*-*spe*.
  
-       PR target/70245
-       * rtl.h (replace_rtx): Add ALL_REGS argument.
-       * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
-       equality and assert mode is the same, instead of just rtx pointer
-       equality.
-       * config/i386/i386.md (mov + arithmetics with load peephole): Pass
-       true as ALL_REGS argument to replace_rtx.
+ 2018-04-17  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       PR debug/84637
+       * dbxout.c (dbxout_int): Perform negation in unsigned int type.
+       (stabstr_D): Change type of unum from unsigned int to
+       unsigned HOST_WIDE_INT.  Perform negation in unsigned HOST_WIDE_INT
+       type.
  
-       * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
-       for boolean vector with vector mode only.
-       (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
+ 2018-04-17  Jim Wilson  <jimw@sifive.com>
  
- 2016-03-17  Nick Clifton  <nickc@redhat.com>
+       PR 84856
+       * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to
+       RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size.
+       Set arg_pointer_offset after using pretend_args_size.
  
-       PR target/70162
-       * config/rx/rx.c (rx_print_integer): Print negative constants in
-       decimal.
+ 2018-04-17  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
+       PR rtl-optimization/85431
+       * dse.c (record_store): Ignore zero width stores.
  
-       PR target/70261
-       * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
+       PR sanitizer/85230
+       * asan.c (handle_builtin_stack_restore): Adjust comment.  Emit
+       __asan_allocas_unpoison call and last_alloca_addr = new_sp before
+       __builtin_stack_restore rather than after it.
+       * builtins.c (expand_asan_emit_allocas_unpoison): Pass
+       arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second
+       argument instead of virtual_dynamic_stack_rtx.
  
- 2016-03-16  Richard Henderson  <rth@redhat.com>
-           Richard Biener  <rguenth@suse.de>
+ 2018-04-17  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
-       PR middle-end/70240
-       PR middle-end/68215
-       PR tree-opt/68714
-       * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
-       first operand as is_gimple_condexpr.
-       PR middle-end/70240
-       PR middle-end/68215
-       Revert r231575
-       2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
-       * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
-       Do not gimplify the result.
-       (do_unop): Adjust call to tree_vec_extract.
-       (do_binop): Likewise.
-       (do_compare): Likewise.
-       (do_plus_minus): Likewise.
-       (do_negate): Likewise.
-       (expand_vector_condition): Likewise.
-       (do_cond): Likewise.
- 2016-03-16  Richard Henderson  <rth@redhat.com>
-       PR target/70048
-       * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
-       (aarch64_classify_address): Use it.
-       (aarch64_legitimize_address): Force all subexpressions of PLUS
-       into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
- 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
-           Richard Biener  <rguenth@suse.de>
+       * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p):
+       New prototype.
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
+       Add note to error message to explain internal mapping of overloaded
+       built-in function name to non-overloaded built-in function name.
+       * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New
+       function.
  
-       PR target/70245
-       * rtlanal.c (replace_rtx): For REG, if from is a REG,
-       return to even if only REGNO is equal, and assert
-       mode is the same.
+ 2018-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
- 2016-03-11  Jeff Law  <law@redhat.com>
+       PR target/85424
+       * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack
+       where the inputs overlap with the output.
  
-       PR rtl-optimization/70224
-       * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
+ 2018-04-17  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-16  Richard Henderson  <rth@redhat.com>
+       * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add
+       (=v, v) alternative and explicit "memory" attribute.
+       (vec_extract_lo_<mode><mask_name>): Likewise.  Also add
+       "type", "prefix", "prefix_extra", "length_immediate" and "mode"
+       attributes.
+       (vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use
+       "sselog1" type instead of "sselog".
+       (vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of
+       "sselog".  Remove explicit "memory" attribute.
+       (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory",
+       "type", "prefix", "prefix_extra", "length_immediate" and "mode"
+       attributes.
+       (vec_extract_hi_v32hi): Merge all alternatives into one, use
+       "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+       (vec_extract_hi_v16hi): Merge each pair of alternatives into one,
+       use "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+       (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory",
+       "type", "prefix", "prefix_extra", "length_immediate" and "mode"
+       attributes.
+       (vec_extract_hi_v64qi): Merge all alternatives into one, use
+       "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+       (vec_extract_hi_v32qi): Merge each pair of alternatives into one,
+       use "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
  
-       PR middle-end/70199
-       * function.h (struct function): Add has_forced_label_in_static.
-       * gimplify.c (force_labels_r): Set it.
-       * lto-streamer-in.c (input_struct_function_base): Read it.
-       * lto-streamer-out.c (output_struct_function_base): Write it.
-       * tree-inline.c (has_label_address_in_static_1): Remove.
-       (copy_forbidden): Remove fndecl parameter; test
-       has_forced_label_in_static.
-       (inline_forbidden_p): Update call to copy_forbidden.
-       (tree_versionable_function_p): Likewise.
-       * ipa-chkp.c (chkp_instrumentable_p): Likewise.
-       (chkp_versioning): Likewise.
-       * tree-inline.h (copy_forbidden): Update decl.
+       PR target/85430
+       * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
+       PR middle-end/85414
+       * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
+       on a SUBREG.
+ 2018-04-17  Martin Jambor  <mjambor@suse.cz>
+       PR ipa/85421
+       * ipa-cp.c (create_specialized_node): Call
+       expand_all_artificial_thunks if necessary.
+ 2018-04-17  Martin Liska  <mliska@suse.cz>
+       PR lto/85405
+       * ipa-devirt.c (odr_types_equivalent_p): Remove trailing
+       in message, remote space in between '_G' and '('.
+ 2018-04-17  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85281
+       * config/i386/sse.md (reduces<mode><mask_scalar_name>,
+       avx512f_vmcmp<mode>3<round_saeonly_name>,
+       avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
+       avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>,
+       avx512f_rndscale<mode><round_saeonly_name>,
+       avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
+       avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
+       Use %<iptr>2 instead of %2 for -masm=intel.
+       (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>,
+       avx512f_vcvttss2usi<round_saeonly_name>,
+       avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for
+       -masm=intel.
+       (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>,
+       avx512f_vcvttsd2usi<round_saeonly_name>,
+       avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>):
+       Use %q1 instead of %1 for -masm=intel.
+       (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
+       avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead
+       of %3 for -masm=intel.
+       (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for
+       -masm=intel.
+       (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for
+       -masm=intel.
+       (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for
+       -masm=intel.
+       (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with
+       %k0 and %1 for -masm=intel rather than two patterns, one with %0 and
+       %g1.
+       (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for
+       -masm=intel.
+       (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with
+       %q0 and %1 for -masm=intel rather than two patterns, one with %0 and
+       %g1 and one with %0 and %1.
+       (avx512er_vmrcp28<mode><round_saeonly_name>,
+       avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of
+       %1 for -masm=intel.
+       (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask,
+       avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask,
+       avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order
+       of %0 and %{%4%} for -masm=intel.
+       (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz,
+       avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz,
+       avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap
+       order of %0 and %{%5%}%{z%} for -masm=intel.
+ 2018-04-17  Jan Hubicka  <jh@suse.cz>
+       PR lto/85405
+       * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
+ 2018-04-17  Martin Liska  <mliska@suse.cz>
+       PR ipa/85329
+       * multiple_target.c (create_dispatcher_calls): Set apostrophes
+       for target_clone error message.  Make default implementation
+       clone to be a local declaration.
+       (separate_attrs): Add new argument and check for an empty
+       string.
+       (expand_target_clones): Handle it.
+       (ipa_target_clone): Make redirection just for target_clones
+       functions.
  
- 2016-03-16  Marek Polacek  <polacek@redhat.com>
+ 2018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
+           Tom de Vries  <tom@codesourcery.com>
  
-       PR c/70093
-       * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
-       function being thunked if the result type doesn't have fixed size.
-       * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
-       doesn't have fixed size.
+       PR middle-end/84955
+       * omp-expand.c (expand_oacc_for): Add dummy false branch for
+       tiled basic blocks without omp continue statements.
  
- 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
+ 2018-04-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
  
-       * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
-       reporting malformed loop nest.
+       PR target/83660
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark
+       vec_extract expression as having side effects to make sure it gets
+       a cleanup point.
  
- 2016-03-16  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-16  H.J. Lu  <hongjiu.lu@intel.com>
  
-       PR lto/70187
-       * ipa-devirt.c (possible_polymorphic_call_targets): Move
-       nodes.length () == 1 test to before first nodes[0] access.
+       PR target/85403
+       * config/i386/i386.c (get_builtin_code_for_version): Check
+       error_mark_node.
  
- 2016-03-16  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-16  Olga Makhotina  <olga.makhotina@intel.com>
  
-       PR tree-optimization/68715
-       * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
-       single_pred_p test.
+       PR target/84331
+       * gcc/config.gcc: Support "skylake".
+       * gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       PROCESSOR_SKYLAKE.
+       * gcc/config/i386/i386.c (m_SKYLAKE): Define.
+       (processor_target_table): Add "skylake".
+       (ix86_option_override_internal): Add "skylake".
+       (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE,
+       PROCESSOR_CANNONLAKE.
+       (get_builtin_code_for_version): Fix priority for
+       PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER,
+       PROCESSOR_SKYLAKE-AVX512.
+       * gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE.
+       (processor_type): Add PROCESSOR_SKYLAKE.
  
- 2016-03-16  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
+           Jason Merrill  <jason@redhat.com>
  
-       PR tree-optimization/68809
-       * graphite-scop-detection.c (same_close_phi_node): Test if result types
-       are the same.
+       PR c++/85112
+       * convert.c (convert_to_integer_1): Use direct recursion for
+       enumeral types and types with a precision less than the number
+       of bits in their mode.
  
- 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
-           Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-04-16  Julia Koval  <julia.koval@intel.com>
  
-       * doc/extend.texi (Common Function Attributes): Describe ifunc impact
-       on leaf attribute. Mention ELF interposition problems.
+       PR target/84413
+       * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL,
+       X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512
  
- 2016-03-16  Alan Modra  <amodra@gmail.com>
+ 2018-04-14  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR rtl-optimization/69195
-       PR rtl-optimization/47992
-       * ira.c (indirect_jump_optimize): Ignore artificial defs.
-       Add comments.
+       PR target/85293
+       * config/rs6000/rs6000.opt (mdirect-move): Make deprecated.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move
+       and -mno-direct-move.
  
- 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-04-13  Paul A. Clarke  <pc@us.ibm.com>
  
-       PR bootstrap/69513
-       * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
+       PR target/83402
+       * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}):
+       Ensure that vec_splat_s32 is only called with 0 <= shift < 16.
+       Ensure negative shifts result in {0}.
  
- 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+ 2018-04-13  Vladimir Makarov  <vmakarov@redhat.com>
  
-       * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
+       PR rtl-optimization/79916
+       * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
+       regs (if any) to define how to gnerate SD moves when LRA is in
+       progress.
  
- 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-13  Jakub Jelinek  <jakub@redhat.com>
  
-       PR rtl-optimization/70222
-       * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
-       optimization if mode is different from result_mode, queue up masking
-       of the result in outer_op.  Formatting fix.
+       PR rtl-optimization/85393
+       * except.h (expand_dw2_landing_pad_for_region): Remove declaration.
+       * except.c (expand_dw2_landing_pad_for_region): Make static.
+       * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just
+       a label and unconditional jump to old_bb, rather than
+       expand_dw2_landing_pad_for_region insn(s) and jump to single_succ
+       basic block.
  
-       PR middle-end/70239
-       * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
-       of safe_grow.
+       PR rtl-optimization/85376
+       * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and
+       zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX
+       instead of a specific value.
  
- 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
+ 2018-04-13  Jan Hubicka  <hubicka@ucw.cz>
+           Bin Cheng  <bin.cheng@arm.com>
  
-       PR rtl-optimization/69032
-       * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
-       looping backwards over basic block insns.
+       PR tree-optimization/82965
+       PR tree-optimization/83991
+       * cfgloopanal.c (expected_loop_iterations_unbounded): Add
+       by_profile_only parameter.
+       * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile
+       information if the loop was predicted to iterate too many times.
+       * cfgloop.h (expected_loop_iterations_unbounded): Update prototype
  
- 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
+ 2018-04-13  Jan Hubicka  <hubicka@ucw.cz>
  
-       PR target/66660
-       * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
-       to non-speculative when propagating trap bits.
+       PR lto/71991
+       * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for
+       always inline.
  
- 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
+ 2018-04-13  Martin Liska  <mliska@suse.cz>
+           Jakub Jelinek  <jakub@redhat.com>
  
-       PR rtl-optimization/63384
-       * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
-       DEBUG_INSN_P insns.
+       PR middle-end/81657
+       * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET.
+       * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET.
+       * builtins.c (expand_builtin_memory_copy_args): Use
+       BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target,
+       handle dest_addr == pc_rtx.
  
- 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
+ 2018-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR target/64411
-       * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
-       factored out from ...
-       (sched_analyze_insn): ... here.
-       * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
-       * sel-sched-ir.c (setup_id_implicit_regs): New function, use
-       get_implicit_reg_pending_clobbers in it.
-       (setup_id_reg_sets): Use setup_id_implicit_regs.
-       (deps_init_id): Ditto.
+       PR target/85291
+       * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
+       asked to not generate direct moves.
+       (fix_trunc<mode>si2_stfiwx): Similar.
+       (fix_trunc<mode>si2_internal): Similar.
  
- 2016-03-15  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-12  Jakub Jelinek  <jakub@redhat.com>
  
-       PR ipa/70161
-       * cgraph.c (cgraph_node::get_body): Save, reset and restore
-       dump_file_name.
-       * passes.c (execute_one_ipa_transform_pass): Add missing argument to
-       execute_function_dump.
-       (execute_one_pass): Don't dump function if it will be dumped after ipa
-       transform.
+       PR debug/83157
+       * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST.
+       * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest,
+       lookup if dest in some wider mode is known to be const0_rtx and
+       if so, record permanent equivalence for it to be ZERO_EXTEND of
+       the narrower mode destination.
  
- 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
+ 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
  
-       * genrecog.c (match_pattern_2): If pred is NULL don't call
-       safe_predicate_mode on it.
+       * lto-streamer-out.c (output_function): Revert 259346.
+       * omp-expand.c (expand_oacc_for): Likewise.
  
- 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-12  Alexander Monakov  <amonakov@ispras.ru>
  
-       PR middle-end/70219
-       * lra-constraints.c (delete_move_and_clobber): Change assertion
-       to also allow dregno == 0.
+       PR rtl-optimization/85354
+       * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call...
+       * sel-sched.c (sel_global_init): ... here.
  
- 2016-03-14  Richard Henderson  <rth@redhat.com>
+ 2018-04-12  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR tree-opt/68714
-       * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
-       (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
-       (reassociate_bb): Use optimize_vec_cond_expr; avoid
-       optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
-       on vectors.
+       PR target/85238
+       * lto-wrapper.c (debug_objcopy): Open the files in binary mode.
+       * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
+       mode for PE-COFF targets.
+       * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare.
+       (i386_pe_asm_lto_end): Likewise.
+       * config/i386/cygming.h (TARGET_ASM_LTO_START): Define.
+       (TARGET_ASM_LTO_END): Likewise.
+       * config/i386/winnt.c (saved_debug_info_level): New static variable.
+       (i386_pe_asm_lto_start): New function.
+       (i386_pe_asm_lto_end): Likewise.
  
- 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
+           Richard Biener  <rguenther@suse.de>
  
-       PR target/70083
-       * lra-lives.c (process_bb_lives): Also update biggest mode for hard
-       regs.
-       (lra_create_live_ranges_1): initialize hard register biggest_mode to
-       VOIDmode.
-       * lra-constraints.c (split_reg): For hard regs, try to find the
-       biggest single-register mode used in the function.
+       PR middle-end/84955
+       * lto-streamer-out.c (output_function): Fix CFG loop state before
+       streaming out.
+       * omp-expand.c (expand_oacc_for): Handle calls to internal
+       functions like regular functions.
  
- 2016-03-14  Richard Biener  <rguenther@suse.de>
+ 2018-04-12  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/56365
-       * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
-       constants to compare against.
+       PR lto/85371
+       * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label]
+       for the early LTO debug to properly generate references to it
+       during DIE emission.  Do not re-use that for the skeleton for
+       split-dwarf.
+       (dwarf2out_early_finish): Likewise.
  
- 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
+ 2018-04-12  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/70098
-       * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
-       *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
-       (define_split for the GPR case): Use int_reg_operand instead of
-       gpc_reg_operand for the output.
+       PR target/85328
+       * config/i386/sse.md
+       (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split,
+       <mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split,
+       vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi,
+       vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg
+       and output is a reg, avoid creating invalid lowpart subreg, but
+       instead split into a 512-bit move.  Don't split if not AVX512VL,
+       input is xmm16+ reg and output is a mem.
+       (vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi,
+       vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is
+       xmm16+ reg and output is a mem.
+ 2018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       * config/s390/s390.c (s390_output_indirect_thunk_function): Check
+       also for flag_dwarf2_cfi_asm.
+ 2018-04-12  Jakub Jelinek  <jakub@redhat.com>
+       PR rtl-optimization/85342
+       * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use
+       a bool scalar var inside of the loop instead.  Don't try to update
+       recog_data.operand after failed apply_change_group.
+ 2018-04-12  Tom de Vries  <tom@codesourcery.com>
+       PR target/85296
+       * config/nvptx/nvptx.c (flexible_array_member_type_p): New function.
+       (nvptx_assemble_decl_begin): Add undefined param.  Declare undefined
+       array with flexible array member as array without given dimension.
+       (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call
+       argument for undefined param to true.
+ 2018-04-11  Aaron Sawdey  <acsawdey@linux.ibm.com>
+       PR target/85321
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document options
+       -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe
+       from PowerPC section.
+       * config/rs6000/sysv4.opt (mcall-): Improve help text.
+       * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim
+       help text that is too long.
+       * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim
+       help text that is too long.
+       * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim
+       help text that is too long.
+ 2018-04-11  Uros Bizjak  <ubizjak@gmail.com>
+       * config/alpha/alpha.md (stack_probe_internal): Rename
+       from "probe_stack".  Update all callers.
+ 2018-04-11  Alexander Monakov  <amonakov@ispras.ru>
+       PR rtl-optimization/84566
+       * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking
+       sched_macro_fuse_insns.
+ 2018-04-11  Alexander Monakov  <amonakov@ispras.ru>
+       PR target/84301
+       * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here...
+       (compute_block_dependences): ... from here.
+ 2018-04-11  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/85331
+       * vec-perm-indices.h (vec_perm_indices::clamp): Change input type
+       from int to HOST_WIDE_INT.
+ 2018-04-11  Martin Jambor  <mjambor@suse.cz>
+       PR ipa/84149
+       * ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
+       (cgraph_edge_brings_value_p): New parameter dest_val, check if it is
+       not the same as the source val.
+       (cgraph_edge_brings_value_p): New parameter.
+       (gather_edges_for_value): Pass destination value to
+       cgraph_edge_brings_value_p.
+       (perhaps_add_new_callers): Likewise.
+       (get_info_about_necessary_edges): Likewise and exclude values brought
+       only by self-recursive edges.
+       (create_specialized_node): Redirect only clones of self-calling edges.
+       (+self_recursive_pass_through_p): New function.
+       (find_more_scalar_values_for_callers_subset): Use it.
+       (find_aggregate_values_for_callers_subset): Likewise.
+       (known_aggs_to_agg_replacement_list): Removed.
+       (decide_whether_version_node): Re-calculate known constants for all
+       remaining context clones.
+ 2018-04-11  Richard Biener  <rguenther@suse.de>
+       PR lto/85339
+       * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute
+       from early DWARF output.
+       (dwarf2out_early_finish): Output line info unconditionally into
+       early DWARF and add reference to it.
+ 2018-04-11  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85281
+       * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
+       (<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
+       other than V2DFmode using iptr mode attribute.
+       (<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.
  
- 2016-03-14  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-11  Alexander Monakov  <amonakov@ispras.ru>
  
-       PR tree-optimization/70045
-       * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
-       create_empty_if_region_on_edge argument.
+       PR rtl-optimization/84659
+       * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg.
  
- 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-04-11  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
-       (STACK_CHECK_PROTECT): Likewise.
-       * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
-       (STACK_CHECK_PROTECT): Likewise.
-       * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
-       (STACK_CHECK_PROTECT): Likewise.
-       * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
-       * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
-       (STACK_CHECK_PROTECT): Likewise.
+       PR debug/85302
+       * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
+       SIZEP is NULL.
+       (output_loc_list): Pass address of a dummy size variable even in the
+       locview handling loop.
+       (index_location_lists): Add comment on why skip_loc_list_entry can't
+       call size_of_locs.
  
- 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
+ 2018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
  
-       PR rtl-optimization/69307
-       * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
-       registers in modes that span more than one register.
+       PR target/85261
+       * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
+       into register.
  
- 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
+ 2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
  
-       PR target/69614
-       * lra-constraints.c (delete_move_and_clobber): New.
-       (remove_inheritance_pseudos): Use it.
+       PR target/85321
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document options
+       -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
+       and -mstring-compare-inline-limit.
  
- 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR ada/70017
-       * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
-       the libcall is LCT_THROW.
-       * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
-       for the checking routine.
+       PR target/85287
+       * gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size
+       for stack clash protection in a register whenever we need it to be in
+       a register.
  
- 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+ 2018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR target/70131
-       * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
-       optimization if we have direct move.
-       (roundu32<mode>2_fprs): Likewise.
+       * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
+       Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.
  
- 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR target/70123
-       * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
-       be rematerialized.
-       (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
-       Arguments swapped.  All callers changed.  Take reg_renumber into
-       account, and Calculate and compare register ranges for hard regs.
+       PR target/85321
+       * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
+       the help text.
+       (mlong-double-): Ditto.
+       * config/rs6000/sysv4.opt (msdata=): Ditto.
+       (mtls-size=): Ditto.
  
- 2016-03-11  Jeff Law  <law@redhat.com>
+ 2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
-       PR tree-optimization/70190
-       * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
-       Handle cases where we can not extract the taken edge, even though we
-       found a constant value.
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
+       erroneous entries for
+       "vector int vec_ldl (int, long int *)", and
+       "vector unsigned int vec_ldl (int, unsigned long int *)".
+       Add comments and entries for
+       "vector bool char vec_ldl (int, bool char *)",
+       "vector bool short vec_ldl (int, bool short *)",
+       "vector bool int vec_ldl (int, bool int *)",
+       "vector bool long long vec_ldl (int, bool long long *)",
+       "vector pixel vec_ldl (int, pixel *)",
+       "vector long long vec_ldl (int, long long *)",
+       "vector unsigned long long vec_ldl (int, unsigned long long *)".
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
+       type tree bool_long_long_type_node and correct definition of
+       bool_V2DI_type_node to make reference to this new type tree.
+       (rs6000_mangle_type): Replace erroneous reference to
+       bool_long_type_node with bool_long_long_type_node.
+       * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
+       comments to emphasize sign distinctions for char and int types and
+       replace RS6000_BTI_bool_long constant with
+       RS6000_BTI_bool_long_long constant.  Also add comment to restrict
+       use of RS6000_BTI_pixel.
+       (bool_long_type_node): Remove this macro definition.
+       (bool_long_long_type_node): New macro definition
+ 2018-04-10  Jakub Jelinek  <jakub@redhat.com>
+       PR rtl-optimization/85300
+       * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
+       into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
+       simplify_unary_operation fails.
+ 2018-04-10  Martin Liska  <mliska@suse.cz>
+       * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
+       cgraph_edge and ipa_ref.
+ 2018-04-10  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85177
+       PR target/85255
+       * config/i386/sse.md
+       (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
+       computation of the VEC_MERGE selector from mask.
+       (<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
+       Fix decoding of the VEC_MERGE selector into mask.
  
-       PR tree-optimization/64058
-       * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
-       (num_coalesce_pairs): Move up earlier in file.
-       (find_coalesce_pair): Initialize the INDEX field for each pair
-       discovered.
-       (compare_pairs): No longer sort on the elements in each pair.
-       Instead break ties with the index of the coalesce pair.
+ 2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR tree-optimization/85286
+       * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
  
-       PR target/70002
-       * config/aarch64/aarch64-protos.h
-       (aarch64_save_restore_target_globals): New prototype.
-       * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
-       Call the above when popping pragma.
-       * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
-       New function.
-       (aarch64_set_current_function): Rewrite using the above.
+ 2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
+       * final.c (final_1): Set insn_last_address as well as
+       insn_current_address.
  
-       PR tree-optimization/70177
-       * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
-       (extract_ops_from_tree): ... this.  In the 2 argument
-       overload remove _1 suffix.
-       * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
-       (extract_ops_from_tree): ... this.
-       * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
-       Adjust callers.
-       * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
-       * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
-       extract_ops_from_tree instead of 2 operand one.
+ 2018-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
- 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
+       PR target/85173
+       * explow.c (emit_stack_probe): Call validize_mem on memory location
+       before passing it to gen_probe_stack.  Create address operand and
+       legitimize it for the probe_stack_address case.
  
-       PR tree-optimization/70013
-       * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
-       for constant-pool entries.
+ 2018-04-09  Jan Hubicka  <jh@suse.cz>
  
- 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
+       PR lto/85078
+       * ipa-devirt.c (rebuild_type_inheritance-hash): New.
+       * ipa-utils.h (rebuild_type_inheritance-hash): Declare.
+       * tree.c (free_lang_data_in_type): Fix handling of binfos;
+       walk basetypes.
+       (free_lang_data): Rebuild type inheritance graph.
  
-       PR rtl-optimization/70174
-       * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
-       followed by gen_lowpart on force_reg instead of just gen_lowpart.
+ 2018-04-09  Martin Sebor  <msebor@redhat.com>
  
-       PR tree-optimization/70169
-       * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
-       LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
-       for unknown codes.
+       * invoke.texi (-finline-small-functions): Mention other optimization
+       options.
+       (-findirect-inlining, -fpartial-inlining): Same.
+       (-finline-functions-called-once): Same.
+       (-freorder-blocks-and-partition): Same.
+ 2018-04-09  Jan Hubicka  <jh@suse.cz>
+       PR rtl/84058
+       * cfgcleanup.c (try_forward_edges): Do not give up on crossing
+       jumps; choose last target that matches the criteria (i.e.
+       no partition changes for non-crossing jumps).
+       * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
+       support for redirecting crossing jumps to non-crossing.
+ 2018-04-09  Alexey Brodkin  <abrodkin@synopsys.com>
+       * config/arc/arc.c (arc_expand_prologue): Set stack usage info
+       also for naked functions.
+ 2018-04-09  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.md (add_shift): New pattern.
+       (add_shift2): Likewise.
+       (sub_shift): Likewise.
+       (sub_shift_cmp0_noout): Likewise.
+       (compare_si_ashiftsi): Likewise.
+       (xbfu_cmp0_noout): New combine pattern.
+       (xbfu_cmp0"): Likewise.
+       (movsi_set_cc_insn): Place the predicable variant first.
+       (commutative_binary_cmp0_noout): Remove clobber.
+       (commutative_binary_cmp0): New pattern.
+       (noncommutative_binary_cmp0): Likewise.
+       (noncommutative_binary_cmp0_noout): Likewise.
+       (noncommutative_binary_comparison_result_used): Removed.
+       (rsub_cmp0): New pattern.
+       (rsub_cmp0_noout): Likewise.
+       (extzvsi): Changed, keep only meaningful variants.
+       (SQH, SEZ): New iterators.
+       (SQH_postfix): New mode attribute.
+       (SEZ_prefix): New code attribute.
+       (<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
+       (<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
+       * config/arc/predicates.md (cc_set_register): Use CC_REG instead
+       of numerical value.
+       (noncommutative_operator): Check the availability of barrel
+       shifter option.
+ 2018-04-09  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/85284
+       * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
+       Only use the niter constraining form of simple_iv when the exit
+       is always executed.
+ 2018-04-09  Tom de Vries  <tom@codesourcery.com>
+       PR target/84041
+       * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
+       (define_expand "*memory_barrier"): New define_expand.
+       (define_insn "memory_barrier"): New insn.
+ 2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+       PR rtl-optimization/80463
+       PR rtl-optimization/83972
+       PR rtl-optimization/83480
+       * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
+       correct producer for the insn.
+       (tidy_control_flow): Fixup seqnos in case of debug insns.
+ 2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+       PR rtl-optimization/83913
+       * sel-sched-ir.c (merge_expr_data): Choose the middle between two
+       different sched-times when merging exprs.
+ 2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+       PR rtl-optimization/83962
+       * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
+       tidy_fallthru_edge and tidy_control_flow.
+ 2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+       PR rtl-optimization/83530
+       * sel-sched.c (force_next_insn): New global variable.
+       (remove_insn_for_debug): When force_next_insn is true, also leave only
+       next insn in the ready list.
+       (sel_sched_region): When the region wasn't scheduled, make another pass
+       over it with force_next_insn set to 1.
+ 2018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
+       * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
+       into tm_file.
+       * config/nds32/constants.md (unspec_volatile_element): Add enum values
+       for interrupt control.
+       * config/nds32/nds32-intrinsic.c: Implementation of intrinsic
+       functions for interrupt control.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+ 2018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.c (nds32_init_machine_status,
+       nds32_legitimate_index_p, nds32_legitimate_address_p): Consider
+       strict_aligned_p field.
+       (nds32_expand_to_rtl_hook): New function.
+       (TARGET_EXPAND_TO_RTL_HOOK): Define.
+       * config/nds32/nds32.h (machine_function): Add strict_aligned_p field.
+ 2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu.
+       * config/nds32/nds32-n7.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n7 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add n7.
+       * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus.
+       * config/nds32/pipelines.md: Include n7 settings.
+ 2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu.
+       * config/nds32/nds32-e8.md: New file.
+       * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for e8 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add e8.
+       * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus.
+       * config/nds32/pipelines.md: Include e8 settings.
+ 2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu.
+       * config/nds32/nds32-n8.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n8 pipeline.
+       * config/nds32/nds32-utils.c: More implementations for n8 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add n8.
+       * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus.
+       * config/nds32/pipelines.md: Include n8 settings.
+ 2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*): Add nds32-utils.o into extra_objs.
+       * config/nds32/nds32-n9-2r1w.md: New file.
+       * config/nds32/nds32-n9-3r2w.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type,
+       nds32_register_ports): New or modify for cpu n9.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n9 pipeline.
+       * config/nds32/nds32-utils.c: New file.
+       * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE,
+       TARGET_MUL_SLOW): Define.
+       * config/nds32/nds32.md (pipeline_model): New attribute.
+       * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports):
+       New options that support cpu n9.
+       * config/nds32/pipelines.md: Include n9 settings.
+       * config/nds32/t-nds32 (nds32-utils.o): Add dependency.
+ 2018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align
+       information if necessary.
+       (output_cond_branch_compare_zero): Likewise.
+       * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case.
+       (nds32_target_alignment): Refine for alignment.
+       * config/nds32/nds32.h (NDS32_ALIGN_P): Define.
+       (FUNCTION_BOUNDARY): Modify.
+       * config/nds32/nds32.md (call_internal, call_value_internal): Consider
+       align case.
+       * config/nds32/nds32.opt (malways-align, malign-functions): New.
+ 2018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/constants.md (unspec_volatile_element): Add values for
+       TLB operation and data prefetch.
+       * config/nds32/nds32-intrinsic.c: Implementation of intrinsic
+       functions for TLB operation and data prefetch.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.c (nds32_dpref_names): Likewise.
+       (nds32_print_operand): Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+ 2018-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
+       Andrew Pinski <pinsika@gcc.gnu.org>
+       PR middle-end/82976
+       * match.pd: Use constant_boolean_node of correct type instead of
+       boolean_true_node or boolean_false_node for simplifying
+       pointer comparisons to zero.
+ 2018-04-07  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/80021
+       * tree.c (verify_type_variant): Make error call in verify_variant_match
+       translatable and remove final full stop.
+ 2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/constants.md (unspec_volatile_element): Add
+       UNSPEC_VOLATILE_EH_RETURN.
+       * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push,
+       nds32_output_stack_pop): Support dwarf exception handling process.
+       * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare.
+       * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf
+       exception handling process.
+       (nds32_compute_stack_frame): Likewise.
+       (nds32_return_addr_rtx): Likewise.
+       (nds32_initial_elimination_offset): Likewise.
+       (nds32_expand_prologue): Likewise.
+       (nds32_expand_epilogue): Likewise.
+       (nds32_dynamic_chain_address): New function.
+       * config/nds32/nds32.h (machine_function): Add fields for dwarf
+       exception handling.
+       (DYNAMIC_CHAIN_ADDRESS): Define.
+       (EH_RETURN_DATA_REGNO): Define.
+       (EH_RETURN_STACKADJ_RTX): Define.
+       * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement
+       patterns for dwarf exception handling.
+ 2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.h: Clean up obsolete macros.
+ 2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/constants.md (unspec_element, unspec_volatile_element):
+       Add enum values for particular instructions.
+       * config/nds32/nds32-intrinsic.c: Implementation of expanding
+       particular intrinsic functions.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+       * config/nds32/nds32.md (type): Add pbsad and pbsada.
+       (btst, ave): New patterns for particular instructions.
+ 2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/constants.md (unspec_element, unspec_volatile_element):
+       Add enum values for atomic load/store and memory sync.
+       * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store
+       and memory sync.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+ 2018-04-07  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/85257
+       * fold-const.c (native_encode_vector): If not all elts could fit
+       and off is -1, return 0 rather than offset.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass
+       (offseti - offset2) / BITS_PER_UNIT as 4th argument to
+       native_encode_expr.  Verify len * BITS_PER_UNIT >= maxsizei.  Don't
+       adjust buffer in native_interpret_expr call.
+ 2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/constants.md (unspec_volatile_element): Add cache
+       control enum values.
+       * config/nds32/nds32-intrinsic.c: Add cache control expand functions.
+       * config/nds32/nds32-intrinsic.md: Add cache control patterns.
+       * config/nds32/nds32.c (nds32_cctl_names): New.
+       (nds32_print_operand): Handle cache control register names.
+       * config/nds32/nds32.h (nds32_builtins): New enum values.
+       * config/nds32/nds32_intrinsic.h: Add cache control enum types and
+       macros.
+       * config/nds32/nds32.md (type): Add mmu.
+       * config/nds32/pipelines.md (simple_insn): Add mmu.
+ 2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.md (type): Remove call.
+       * config/nds32/pipelines.md (simple_insn): Likewise.
+ 2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/constants.md (unspec_volatile_element): Add
+       UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and
+       UNSPEC_VOLATILE_FMFCFG.
+       * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin
+       description for fmfcfg and fmfcsr.
+       (bdesc_1arg): Add fmtcsr.
+       (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd.
+       (nds32_expand_builtin_impl): Deal with FPU intrinsic functions.
+       * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd,
+       unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr,
+       unspec_fmfcfg): New patterns.
+       * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG,
+       NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS,
+       NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD.
+       * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss,
+       __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr,
+       __nds32__fmfcfg): Define.
+ 2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+       * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more
+       intrinsic register names.
+       * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more
+       intrinsic register enum values and macros.
+ 2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition
+       for load/store addressing form.
+       (nds32_print_operand_address): Likewise.
+ 2018-04-06  Eric Botcazou  <ebotcazou@adacore.com>
+       PR target/85196
+       * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
+       based on LABEL_REF.  Remove useless assertion.
+       (pic_address_needs_scratch): Fix formatting.
+       (sparc_legitimize_pic_address): Minor tweaks.
+       (sparc_delegitimize_address): Adjust assertion accordingly.
+       * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
+       into symbolic_operand.
+       (movsi_high_pic_label_ref): Likewise.
+       (movsi_lo_sum_pic_label_ref): Likewise.
+       (movdi_pic_label_ref): Likewise.
+       (movdi_high_pic_label_ref): Likewise.
+       (movdi_lo_sum_pic_label_ref): Likewise.
+ 2018-04-06  Amaan Cheval  <amaan.cheval@gmail.com>
+       * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
+       custom LIB_SPEC setup.
+ 2018-04-06  Ruslan Bukin  <br@bsdpad.com>
+           Kito Cheng  <kito.cheng@gmail.com>
+       * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
+       * config/riscv/freebsd.h: New.
+ 2018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.c (nds32_adjust_insn_length): Refine.
+       * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in
+       file.
  
- 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
-           Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       PR target/70160
-       * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
-       of uninitialized values.
+       * config/nds32/nds32-md-auxiliary.c (nds32_output_return,
+       nds32_output_call, nds32_symbol_binds_local_p): New functions.
+       * config/nds32/nds32-protos.h (nds32_output_call,
+       nds32_output_return): Declare.
+       * config/nds32/nds32.md: Refine all the call and return patterns.
  
- 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-04-06  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
-       define_expand.
-       ("*trunctddd2"): New pattern definition.
-       ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
-       TD->DD truncation.
- 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
-       definitions for BFP and DFP rounding modes.
-       ("fixuns_truncdddi2", "fixuns_trunctddi2")
-       ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
-       ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
-       ("fix_trunctf<mode>2"): Use the new constants instead of magic
-       numbers.
- 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/constraints.md: Adjust comment.
-       ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
-       s390_decompose_addrstyle_without_index.
-       * config/s390/predicates.md (shift_count_or_setmem_operand):
-       Rename to setmem_operand.
-       * config/s390/s390-protos.h
-       (s390_decompose_shift_count): Rename to
-       s390_decompose_addrstyle_without_index.
-       * config/s390/s390.c (s390_decompose_shift_count)
-       (s390_mem_constraint, print_shift_count_operand)
-       (print_operand_address, print_operand): Rename
-       s390_decompose_shift_count to
-       s390_decompose_addrstyle_without_index and rename
-       print_shift_count_operand to print_addrstyle_operand troughout the
-       file.
-       * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
-       ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
-       Rename shift_count_or_setmem_operand to setmem_operand.
-       * config/s390/vx-builtins.md ("vec_insert<mode>")
-       ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
-       nonmemory_operand.
+       PR debug/85252
+       * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only
+       build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST.
  
- 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+       PR rtl-optimization/84872
+       * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if
+       nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is
+       EDGE_CROSSING edge.
  
-       PR target/70168
-       * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
-       Handle overlapping retval and newval.
+ 2018-04-06  Tamar Christina  <tamar.christina@arm.com>
  
- 2016-03-10  Nick Clifton  <nickc@redhat.com>
+       * expr.c (copy_blkmode_to_reg): Revert 254862.
+       * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise.
  
-       PR target/7044
-       * config/aarch64/aarch64.c
-       (aarch64_override_options_after_change_1): When forcing
-       flag_omit_frame_pointer to be true, use a special value that can
-       be detected if this function is called again, thus preventing
-       flag_omit_leaf_frame_pointer from being forced to be false.
+ 2018-04-06  Richard Biener  <rguenther@suse.de>
  
- 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR middle-end/85244
+       * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
+       after seeing a component reference with an adjacent field.  Treat
+       refs to arrays at struct end of external decls similar to
+       refs to unconstrained commons.
  
-       * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
-       Set x_flag_omit_leaf_frame_pointer when handling
-       -momit-leaf-frame-pointer.
- 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
-       PR lto/69589
-       * cgraph.c (cgraph_node::dump): Dump split_part and
-       indirect_call_target.
-       * cgraph.h (cgraph_node): Add indirect_call_target flag.
-       * ipa.c (has_addr_references_p): Cleanup.
-       (is_indirect_call_target_p): New.
-       (walk_polymorphic_call_targets): Do not mark virtuals that may be
-       called indirectly as local.
-       (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
- 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
-       PR ipa/69630
-       * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
-       on cxa_pure_virtual.
- 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
-       PR lto/69589
-       * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
- 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
-       PR lto/69589
-       * tree.c (need_assembler_name_p): Only record main variant type names.
- 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
-       PR target/70113.
-       * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
-       Always define to 0 or 1.
-       (TARGET_FIX_ERR_A53_843419): New macro.
-       * config/aarch64/aarch64-elf-raw.h
-       (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
-       * config/aarch64/aarch64-linux.h: Likewise.
-       * config/aarch64/aarch64.c
-       (aarch64_override_options_after_change_1): Do not default
-       aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
-       843419 is on.
-       (aarch64_attributes): Handle fix-cortex-a53-843419.
-       (aarch64_can_inline_p): Likewise.
-       * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
- 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
-           Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-06  Jakub Jelinek  <jakub@redhat.com>
  
-       * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
-       * tree.c (array_at_struct_end_p): Do not limit to size of decl for
-       DECL_COMMONS if flag_unconstrained_commons is set.
-       * tree-dfa.c (get_ref_base_and_extent): Likewise.
-       * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
-       (funconstrained-commons): Document.
+       PR sanitizer/85213
+       * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't
+       look through SAVE_EXPRs with non-side-effects argument.  Adjust
+       recursive calls.
+       (fold_comparison): Adjust twoval_comparison_p caller, don't handle
+       save_p here.
  
- 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
+ 2018-04-06  Richard Biener  <rguenther@suse.de>
  
-       * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
-       aarch64-fusion-pairs.def and aarch64-tuning-flags.def
+       PR middle-end/85180
+       * alias.c (find_base_term): New wrapper around find_base_term
+       unwinding CSELIB_VAL_PTR changes.
+       (find_base_term): Do not restore CSELIB_VAL_PTR during the
+       recursion.
  
- 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
+ 2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
  
-       * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
-       has a proper number of elements.
+       * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP
+       instructions.
+       * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New
+       constant definitions.
+       ("nop"): lr 0,0 -> nopr r0
+       ("nop_lr0", "nop_lr1"): New insn definitions.
+ 2018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.md (*stack_push, *stack_pop): Use
+       NDS32_V3PUSH_AVAILABLE_P macro.
+ 2018-04-06  Monk Chiang  <sh.chiang04@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
+       (nds32*-*-*): Add float and fpu_config into supported_defaults.
+       * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
+       Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
+       * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
+       UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
+       * config/nds32/constraints.md: New constraints and checking for hard
+       float configuration.
+       * config/nds32/iterators.md: New mode iterator and attribute for hard
+       float configuration.
+       * config/nds32/nds32-doubleword.md: Use hard float alternatives and
+       patterns.
+       * config/nds32/nds32-fpu.md: New file.
+       * config/nds32/nds32-md-auxiliary.c: New functions and checkings to
+       deal with hard float code generation.
+       * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
+       ARCH_V3S.
+       (abi_type, float_reg_number): New enum type.
+       * config/nds32/nds32-predicates.c: New predicates for hard float.
+       * config/nds32/nds32-protos.h: Declare functions for hard float.
+       * config/nds32/nds32.c: Implementation for hard float configuration.
+       * config/nds32/nds32.h: Definitions for hard float configuration.
+       * config/nds32/nds32.md: Include hard float machine description and
+       modify patterns for hard float configuration.
+       * config/nds32/nds32.opt: New options for hard float configuration.
+       * config/nds32/predicates.md: New predicates for hard float
+       configuration.
  
- 2016-03-10  Alan Modra  <amodra@gmail.com>
+ 2018-04-06  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
  
-       PR rtl-optimization/69195
-       PR rtl-optimization/47992
-       * ira.c (recorded_label_ref): Delete.
-       (update_equiv_regs): Return void.
-       (indirect_jump_optimize): New function.
-       (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
-       before regstat_compute_ri.  Don't rebuild_jump_labels here.
-       Delete update_regstat.
+       * common/config/nds32/nds32-common.c
+       (nds32_option_optimization_table): Enable -mreleax-hint by default.
  
- 2016-03-10  Richard Biener  <rguenther@suse.de>
+ 2018-04-05  Jakub Jelinek  <jakub@redhat.com>
  
-       PR tree-optimization/70128
-       * tree-ssa-structalias.c (set_uids_in_ptset): Set
-       vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
+       PR middle-end/85195
+       * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around
+       CONSTRUCTOR_ELT (ctor, ...)->value.
  
- 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-05  Uros Bizjak  <ubizjak@gmail.com>
  
-       PR tree-optimization/70152
-       * tree-sra.c (replace_removed_params_ssa_names): Copy over
-       SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
+       PR target/85193
+       * config/i386/i386.md (define_attr "memory"): Handle rotate1 type.
  
-       PR target/70086
-       * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
-       instead of gen_sse2_loadlpd.
-       * config/i386/sse.md (*vec_concatv2df): Rename to...
-       (vec_concatv2df): ... this.
+ 2018-04-05  Tom de Vries  <tom@codesourcery.com>
  
-       PR tree-optimization/70127
-       * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
+       PR target/85204
+       * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only
+       cond jump.
  
- 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
+ 2018-04-05  Shiva Chen  <shiva0217@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       PR c/68473
-       PR c++/70105
-       * diagnostic-show-locus.c (compatible_locations_p): New function.
-       (layout::layout): Sanitize ranges using compatible_locations_p.
+       * config/nds32/constraints.md (U33): Fine-tune checking condition.
+       * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto.
+       * config/nds32/nds32.h (nds32_16bit_address_type): Add
+       ADDRESS_POST_MODIFY_LO_REG_IMM3U.
  
- 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
+ 2018-04-05  Shiva Chen  <shiva0217@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       PR c/68473
-       PR c++/70105
-       * diagnostic-show-locus.c (layout_range::layout_range): Replace
-       location_range param with three const expanded_locations * and a
-       bool.
-       (layout::layout): Replace call to
-       rich_location::lazily_expand_location with get_expanded_location.
-       Extract the range and perform location expansion here, passing
-       the results to the layout_range ctor.
-       * diagnostic.c (source_range::debug): Delete.
-       * diagnostic.h (diagnostic_expand_location): Reimplement in terms
-       of rich_location::get_expanded_location.
-       * gcc-rich-location.c (get_range_for_expr): Delete.
-       (gcc_rich_location::add_expr): Reimplement to avoid the
-       rich_location::add_range overload that took a location_range,
-       passing a location_t instead.
+       * config/nds32/constraints.md (Ufe): New memory constraint.
+       * config/nds32/nds32-md-auxiliary.c (nds32_mem_format,
+       nds32_output_16bit_load): Consider r8 register for lwi45.fe format.
+       * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe
+       operands.
+       * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U.
+       * config/nds32/nds32.md (*mov<mode>): Adjust pattern.
  
- 2016-03-09  Richard Biener  <rguenther@suse.de>
-       Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR tree-optimization/70138
-       * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
-       Also skip vect_double_reduction_def.
+       * config/nds32/nds32.md: Use optimize_size in the condition for
+       alu-shift instructions.
  
- 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR target/70049
-       * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
-       if the operand is "m".
+       * config/nds32/nds32.md (divsi4, udivsi4): New patterns.
  
- 2016-03-09  Nathan Sidwell  <nathan@acm.org>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
+       * config/nds32/nds32.md (negsi2): Refine pattern.
  
- 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
+ 2018-04-05  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * config/i386/i386.c (processor_target_table): Fix cost table
-       intialization order for znver1.
+       * config/nds32/iterators.md (shift_rotate): New code iterator.
+       (shift): New code attribute.
+       * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New.
+       * config/nds32/nds32-protos.h (nds32_expand_constant): Declare.
+       * config/nds32/nds32.c (nds32_print_operand): Deal with more cases.
+       * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for
+       bit-wise operations.
+       (andsi3, *andsi3): Ditto.
+       (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto.
+       (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto.
+       (<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto.
+       * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand,
+       nds32_ior_operand, nds32_xor_operand): New predicates.
  
- 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
-       - becuase -> because.
-       * ipa-reference.c (ignore_module_statics): Likewise.
-       * cgraph.c (cgraph_node::get_body): Likewise.
-       * ipa-inline.c (early_inliner): Likewise.
-       * ipa-devirt.c (types_same_for_odr): Likewise.
-       * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
-       * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
+       * config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ...
+       (addsi3, subsi3): ... this.
  
- 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * tree-ssa-math-opts.c: Fix typo in comment.
+       * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator.
  
- 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR target/70110
-       * config/i386/i386.c (scalar_chain::make_vector_copies,
-       scalar_chain::convert_reg): Call end_sequence in between
-       get_insns and emit_conversion_insns rather than after both
-       calls.
+       * config/nds32/nds32.md: Adjust indention.
  
- 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-04-05  Kito Cheng  <kito.cheng@gmail.com>
  
-       PR target/70064
-       * config/i386/i386.h (machine_function): Add
-       pc_thunk_call_expanded flag.
-       (ix86_pc_thunk_call_expanded): New define.
-       * config/i386/i386.md (set_got, set_got_labelled): New expanders.
-       (*set_got): Rename insn pattern from set_got.
-       (*set_got_labelled): Rename inst pattern from set_got_labelled.
-       * config/i386/i386.c (ix86_compute_frame_layout): Use
-       ix86_pc_thunk_call_expanded to prevent red-zone.
- 2016-03-07  Martin Jambor  <mjambor@suse.cz>
-       * hsa.h (hsa_get_ctor_statements): Declare.
-       (hsa_get_dtor_statements): Likewise.
-       (hsa_get_kernel_dispatch_type): Likewise.
-       * hsa.c (hsa_get_ctor_statements): New function.
-       (hsa_get_dtor_statements): Likewise.
-       (hsa_get_kernel_dispatch_type): Likewise.
-       * hsa-brig.c (hsa_cdtor_statements): Removed.
-       (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
-       hsa_get_dtor_statements.
-       * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
-       (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
- 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
-       * config/arm/arm-cores.def (cortex-r8): New.
-       * config/arm/arm-tables.opt (cortex-r8): Regenerate.
-       * config/arm/arm-tune.md: Likewise.
-       * doc/invoke.texi: Add cortex-r8 to list of cpu values.
+       * config/nds32/nds32.md (feature): New attribute.
  
- 2016-03-07  Martin Sebor  <msebor@redhat.com>
+ 2018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR rtl-optimization/19705
-       * doc/invoke.texi (Options That Control Optimization): Clarify
-       -fno-branch-count-reg.
+       * config/nds32/nds32.md (subtype): New attribute.
  
- 2016-02-26  Richard Biener  <rguenther@suse.de>
-           Jeff Law  <law@redhat.com>
+ 2018-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
  
-       PR tree-optimization/69740
-       * cfghooks.c (remove_edge): Request loop fixups if we delete
-       an edge that might turn an irreducible loop into a natural
-       loop.
-       * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
-       Move after definition of loops_state_clear.
+       PR target/85203
+       * config/arm/arm-builtins.c (arm_expand_builtin): Change
+       expansion to perform a bitwise AND of the argument followed by a
+       boolean negation of the result.
  
- 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
+ 2018-04-04  Peter Bergner  <bergner@vnet.ibm.com>
  
-       PR rtl-optimization/69052
-       * rtlanal.c (commutative_operand_precedence): Set higher precedence
-       to CONST_WIDE_INT.
+       PR rtl-optimization/84878
+       * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine
+       the basic block.  Assert the use reference is not artificial and that
+       it has an associated insn.
  
- 2016-03-07  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-04  Michael Matz  <matz@suse.de>
  
-       PR tree-optimization/70116
-       * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
-       is_tm_ending stmts and ubsan/asan internal functions.
-       (find_duplicate): Use it.  Don't test is_tm_ending here.
+       * builtins.c (compute_objsize): Pass correct operand
+       to array_at_struct_end_p.
  
- 2016-03-07  Richard Biener  <rguenther@suse.de>
+ 2018-04-04  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/70115
-       * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
-       (propagate_constants_for_unrolling): Use replace_uses_by.
+       PR lto/85176
+       * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces
+       from contexts for DINFO_LEVEL_TERSE and below.
  
- 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
+ 2018-04-04  Kito Cheng  <kito.cheng@gmail.com>
  
-       PR middle-end/69916
-       * omp-low.c (struct oacc_loop): Add ifns.
-       (new_oacc_loop_raw): Initialize it.
-       (finish_oacc_loop): Clear mask & flags if no ifns.
-       (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
-       (oacc_loop_xform_loop): Add ifns arg & adjust.
-       (oacc_loop_process): Adjust oacc_loop_xform_loop call.
+       * config/nds32/nds32-doubleword.md (move_<mode>): Require
+       resiter_operand condition.
+       * config/nds32/nds32.md (*move<mode>): Ditto.
  
- 2016-03-07  Richard Henderson  <rth@redhat.com>
+ 2018-04-04  Kito Cheng  <kito.cheng@gmail.com>
+           Monk Chiang  <sh.chiang04@gmail.com>
  
-       PR rtl-opt/70061
-       * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
-       (insert_value_copy_on_edge): Likewise.
+       * config/nds32/nds32.md (movmisalign<mode>): New pattern.
  
- 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * config/arm/arm_neon.h: Show error if using with soft-float ABI.
+       * config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>.
  
- 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 2018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       PR target/62281
-       * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
+       * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code,
+       nds32_cond_code_str, output_cond_branch,
+       output_cond_branch_compare_zero, nds32_expand_cbranch,
+       nds32_expand_cstore, nds32_expand_movcc,
+       nds32_output_cbranchsi4_equality_zero,
+       nds32_output_cbranchsi4_equality_reg,
+       nds32_output_cbranchsi4_equality_reg_or_const_int,
+       nds32_output_cbranchsi4_greater_less_zero: New functions.
+       * config/nds32/nds32-protos.h (nds32_expand_cbranch,
+       nds32_expand_cstore, nds32_expand_movcc,
+       nds32_output_cbranchsi4_equality_zero,
+       nds32_output_cbranchsi4_equality_reg,
+       nds32_output_cbranchsi4_equality_reg_or_const_int,
+       nds32_output_cbranchsi4_greater_less_zero): Declare.
+       * config/nds32/predicates.md (nds32_movecc_comparison_operator,
+       nds32_rimm11s_operand): New predicates.
+       * config/nds32/nds32.h (nds32_expand_result_type): New enum type.
+       * config/nds32/nds32.md: Rewrite all the branch and conditional move
+       patterns.
  
- 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
+ 2018-04-04  Kito Cheng  <kito.cheng@gmail.com>
  
-       * config/i386/i386.c (znver1_cost): Fix Multiply cost.
+       * config/nds32/nds32-doubleword.md: Refine all the instruction type.
+       * config/nds32/nds32.md: Ditto.
+       * config/nds32/pipelines.md: Ditto.
  
- 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
+ 2018-04-04  Richard Biener  <rguenther@suse.de>
  
-       Fix sseimul type attribute.
-       * config/i386/znver1.md
-       (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
-       znver1_sseimul_avx256_load) : Fix the type attribute.
-       (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
-       pipe usage and latency.
+       PR tree-optimization/85168
+       * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
+       propagating abnormals.
  
- 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR c++/70084
-       * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
-       of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
-       to the right type.
+       * config/nds32/nds32.md (enabled): Use yes/no for this attribute.
  
- 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       PR c/69973
-       * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
+       * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function.
+       * config/nds32/nds32-protos.h (nds32_long_call_p): Declare.
+       * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function.
+       (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
+       * config/nds32/nds32.md (sibcall_internal): New.
+       (sibcall_register): Remove.
+       (sibcall_immediate): Remove.
+       (sibcall_value_internal): New.
+       (sibcall_value_register): Remove.
+       (sibcall_value_immediate): Remove.
+       * config/nds32/predicates.md (nds32_general_register_operand): New.
+       (nds32_call_address_operand): New.
  
-       PR rtl-optimization/69941
-       * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
-       the reg share its mode.
+ 2018-04-03  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-04  Jeff Law  <law@redhat.com>
+       PR rtl-optimization/85167
+       * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and
+       bb_defs if *split_p, instead preinitialize it to NULL.
  
-       PR tree-optimization/69196
-       * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
-       If the both SSA_NAMEs are anonymous, then consider them unassociated
-       and include the PHI in the statement count.
+       PR tree-optimization/85156
+       * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid
+       evaluating the argument multiple times.
  
- 2016-03-05  Tom de Vries  <tom@codesourcery.com>
+ 2018-04-03  Bill Schmidt  <wschmidt@linux.ibm.com>
  
-       * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
-       construct in oacc routine.  Check for oacc region in oacc routine.
+       * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather
+       than vector.
+       (_mm_cvtpd_ps): Likewise.
+       (_mm_cvttpd_epi32): Likewise.
+       * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise.
+       * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine
+       vector, pixel, and bool following altivec.h include.
  
- 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-03  Martin Sebor  <msebor@redhat.com>
  
-       PR target/70062
-       * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
-       2016-02-22 changes, instead don't recurse if RECUR is already true.
-       Don't change *dynamic_check if RECUR.  Adjust recursive caller
-       to pass true to the new argument.
-       (ix86_expand_set_or_movmem): Adjust decide_alg caller.
+       * doc/extend.texi (Common Function Attributes): Clarify.
+       (const attribute): Likewise.
+       (pure attribute): Likewise.
  
-       PR target/70059
-       * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
-       <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
-       fixes.
-       (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
+ 2018-04-03  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
+       PR target/85169
+       * config/i386/i386.c (ix86_expand_vector_set): Use
+       HOST_WIDE_INT_1U << elt instead of 1 << elt.  Formatting fix.
  
-       PR rtl-optimization/57676
-       * lra-assigns.c (lra_assign): Guard test for maximum iterations
-       with flag_checking.
+ 2018-04-03  Uros Bizjak  <ubizjak@gmail.com>
  
- 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       * config/i386/i386.c (emit_i387_cw_initialization): Always use logic
+       instructions when changing rounding bits to preserve precision bits
+       in the x87 control word.
  
-       * tree-vect-patterns.c (search_type_for_mask): Handle
-       comparison of booleans.
+ 2018-04-03  Martin Liska  <mliska@suse.cz>
  
- 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/82491
+       * rtl.h (strip_offset_and_add): Replace += suboffset with
+       poly_uint64 () + suboffset.
  
-       * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
-       Fix @xref usage.
+ 2018-03-29  Martin Liska  <mliska@suse.cz>
+           Martin Jambor  <mjambor@suse.cz>
  
-       PR debug/69947
-       * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
-       all other ops that have dw_val_class_die_ref operands,
-       and DW_OP_GNU_entry_value.
+       PR ipa/84947
+       * ipa-cp.c (propagate_bits_across_jump_function): Bail out if
+       param_type is not an integral or pointer type.
  
- 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-04-03  Richard Biener  <rguenther@suse.de>
  
-       PR rtl-optimization/69904
-       * config/arm/arm.c (arm_cannot_copy_insn_p):
-       Return true for load-exclusive instructions.
+       * sese.h (recompute_all_dominators): Remove.
  
- 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-02  Martin Sebor  <msebor@redhat.com>
  
-       PR target/70021
-       * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
-       argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
-       the pattern no matter if it is used just by non-pattern, pattern
-       or mix thereof.
-       (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
-       * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
-       oprnd1 def_stmt is in pattern, don't look through it.
+       * doc/invoke.texi (-Wrestrict): Fix typos.
  
- 2016-03-03  Marek Polacek  <polacek@redhat.com>
+ 2018-04-02  Jim Wilson  <jimw@sifive.com>
  
-       PR middle-end/70050
-       * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
+       * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero.
+       * config/riscv/riscv.md (<optab>si3): Use QImode shift count.
+       (<optab>di3, <optab>si3_extend): Likewise.
+       (<optab>si3_mask, <optab>si3_mask_1): New.
+       (<optab>di3_mask, <optab>di3_mask_1): New.
+       (<optab>si3_extend_mask, <optab>si3_extend_mask_1): New.
+       (lshrsi3_zero_extend_1): Use VOIDmode shift count.
+       * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count.
  
- 2016-03-03  Martin Liska  <mliska@suse.cz>
+ 2018-04-02  Gerald Pfeifer  <gerald@pfeifer.com>
  
-       PR tree-optimization/70043
-       * tree-vect-loop.c (optimize_mask_stores): Move iterator to
-       previous statement if we see a debug statement.
+       * doc/cpp.texi (Variadic Macros): Fix line continuation in an
+       example.
  
- 2016-03-03  Richard Biener  <rguenther@suse.de>
+ 2018-04-02  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR tree-optimization/55936
-       * tree-vrp.c (compare_name_with_value): Add use_equiv_p
-       parameter and guard unsafe equivalence use.
-       (vrp_evaluate_conditional_warnv_with_ops): Always use
-       safe equivalences but not via the quadratic compare_names
-       helper.
+       * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define.
+       (nds32_canonicalize_comparison): New function.
  
- 2016-03-03  Michael Collison  <michael.collison@linaro.org>
+ 2018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
+           Kuan-Lin Chen  <kuanlinchentw@gmail.com>
  
-       PR target/70014
-       * config/arm/arm.md (*subsi3_carryin_const): Change predicate
-       for operand 1 to s_register_operand. Change predicate for operand
-       2 to arm_not_immediate_operand.
+       * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs.
+       * config/nds32/constants.md (unspec_volatile_element): Add
+       UNSPEC_VOLATILE_RELAX_GROUP.
+       * config/nds32/nds32-relax-opt.c: New file.
+       * config/nds32/nds32-predicates.c
+       (nds32_symbol_load_store_p): New function.
+       * config/nds32/nds32-protos.h
+       (nds32_symbol_load_store_p): Declare function.
+       (make_pass_nds32_relax_opt): Declare new rtl pass function.
+       * config/nds32/nds32.c
+       (nds32_register_pass): New function to register pass.
+       (nds32_register_passes): New function to register passes.
+       * config/nds32/nds32.md (relax_group): New pattern.
+       * config/nds32/nds32.opt (mrelax-hint): New option.
+       * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency.
  
- 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
+ 2018-04-01  Kito Cheng  <kito.cheng@gmail.com>
  
-       * doc/tm.texi: Regenerated.
+       * config/nds32/t-nds32: Modify files dependency.
  
- 2016-03-02  Richard Henderson  <rth@redhat.com>
+ 2018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR rtl-opt/67145
-       * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
-       simplification when all args are positive non-fixed registers.
+       * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character.
+       (PROFILE_HOOK): Define its implementation.
  
- 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+ 2018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * target.def (lra_p): Specify that new ports should use LRA.
+       * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int
+       type and 32-bit size.
  
- 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 2018-04-01  Jakub Jelinek  <jakub@redhat.com>
  
-       PR libgomp/69555
-       * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
-       gimplify_type_sizes the type they refer to.
-       (omp_notice_variable): Handle reference vars to VLAs.
-       * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
-       reference to VLA decls in the second pass instead of first pass.
+       PR middle-end/85090
+       * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F.
+       (V_128_256): New mode iterator.
+       (*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split.
+       (*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise.
+       (xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead
+       of V.
+       * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and
+       V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F.
  
- 2016-03-02  Tom de Vries  <tom@codesourcery.com>
+ 2018-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR tree-optimization/68659
-       * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
-       new_expr == NULL_TREE.
-       (get_new_name): Handle ADDR_EXPR.
+       PR target/83315
+       * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet)
+       NaN inputs correctly.
  
- 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
+ 2018-03-30  Peter Bergner  <bergner@vnet.ibm.com>
  
-       PR rtl-optimization/69052
-       * loop-invariant.c (canonicalize_address): New function.
-       (inv_can_prop_to_addr_use): Check validity of address expression
-       which is canonicalized by above function.
+       PR target/80546
+       * config/rs6000/vsx.md (??r): New mode attribute.
+       (*vsx_mov<mode>_64bit): Use it.
+       (*vsx_mov<mode>_32bit): Likewise.
  
- 2016-03-02  Alan Modra  <amodra@gmail.com>
+ 2018-03-30  Martin Sebor  <msebor@redhat.com>
  
-       PR ipa/69990
-       * ipa-icf.c (sem_variable::merge): Do not merge an alias with
-       larger alignment.
+       PR tree-optimization/84818
+       * builtins.c (check_access): Use warning_n.
  
- 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 2018-03-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
  
-       PR target/70028
-       * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
-       (*movhi_internal): Put mask moves from and to memory separately
-       from moves from/to GPRs.
+       PR target/83822
+       * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant
+       condition.
+       * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant
+       condition.
  
- 2016-03-02  Richard Biener  <rguenther@suse.de>
+ 2018-03-30  Julia Koval  <julia.koval@intel.com>
  
-       * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
-       GENERIC expressions in GIMPLE.
+       PR target/84413
+       * x86-tune.def (movx, partial_reg_dependency): Enable for
+       m_SKYLAKE_AVX512.
  
- 2016-03-02  Richard Biener  <rguenther@suse.de>
+ 2018-03-29  Vladimir Makarov  <vmakarov@redhat.com>
  
-       * config/i386/i386.c (type_natural_mode): Fix typo.
+       PR inline-asm/84985
+       * lra-constraints.c (process_alt_operands): Move setting
+       this_alternative_matches below.
  
- 2016-03-02  Nick Clifton  <nickc@redhat.com>
+ 2018-03-29  Martin Liska  <mliska@suse.cz>
  
-       * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
+       PR lto/84995.
+       * doc/invoke.texi: Document how LTO works with debug info.
+       Describe auto-load support of binutils.  Mention 'x86-64'
+       as valid option value of -march option.
  
- 2016-03-02  Richard Biener  <rguenther@suse.de>
-           Uros Bizjak  <ubizjak@gmail.com>
+ 2018-03-29  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/67278
-       * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
+       * config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>.
  
- 2016-03-02  Richard Biener  <rguenther@suse.de>
+       PR c/85094
+       * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT.
+       For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe
+       OEP_NO_HASH_CHECK for recursive call, to avoid exponential
+       checking.
  
-       PR middle-end/67278
-       * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
+ 2018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
  
- 2016-03-02  Marek Polacek  <polacek@redhat.com>
+       PR target/84912
+       * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define.
+       (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64.
+       * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support
+       for RS6000_BTM_POWERPC64.
+       (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64
+       (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64.
+       * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro
+       definition.
+       (DIVDE): Use it.
+       (DIVDEU): Likewise.
  
-       PR c/67854
-       * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
-       "is promoted to" warning.
+ 2018-03-28 Carl Love  <cel@us.ibm.com>
  
- 2016-03-01  DJ Delorie  <dj@redhat.com>
+       Revert
+       2017-09-27  Carl Love  <cel@us.ibm.com>
+       * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
+       (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
+       * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
+       fctiw instruction.
+ 2018-03-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool
+       instead of __vector bool.
+       (_mm_max_pu8): Likewise.
+       (_mm_min_pi16): Likewise.
+ 2018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/84912
+       * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion.
+       (DIVWEUO): Likewise.
+       (DIVDEO): Likewise.
+       (DIVDEUO): Likewise.
+       * config/rs6000/rs6000.c (builtin_function_type): Remove support for
+       DIVWEUO and DIVDEUO.
+       * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs.
+       (UNSPEC_DIV_EXTEND): Remove deleted unspecs.
+       (div_extend): Likewise.
+       * doc/extend.texi (__builtin_divweo): Remove documentation for deleted
+       builtin function.
+       (__builtin_divweuo): Likewise.
+       (__builtin_divdeo): Likewise.
+       (__builtin_divdeuo): Likewise.
+ 2018-03-28  Jakub Jelinek  <jakub@redhat.com>
+       PR target/85095
+       * config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0,
+       *sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns.
+       PR tree-optimization/82004
+       * gimple-match-head.c (optimize_pow_to_exp): New function.
+       * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE.
+       Don't fold to exp if optimize_pow_to_exp is false.
+ 2018-03-28  Martin Liska  <mliska@suse.cz>
+       PR other/84819
+       * calls.c (initialize_argument_information): Fix trailing space.
+       * common.opt: Fix typo and provide better explanation for
+       -fsanitize-coverage option.
+       * config/i386/i386.opt: Fix typo.
+ 2018-03-28  Jakub Jelinek  <jakub@redhat.com>
+           Martin Liska  <mliska@suse.cz>
  
-       * config.gcc: Deprecate mep-*.
+       PR sanitizer/85081
+       * gimplify.c (asan_poison_variable): Don't do the check for
+       gimplify_omp_ctxp here.
+       (gimplify_decl_expr): Do it here.
+       (gimplify_target_expr): Likewise.
  
- 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
+ 2018-03-28  Martin Liska  <mliska@suse.cz>
  
-       PR middle-end/70025
-       * lra-constraints.c (regno_val_use_in): New.
-       (match_reload): Use it instead of regno_use_in.
+       PR target/84988
+       * config/i386/i386.c (ix86_function_arg_advance): Do not call
+       chkp_type_bounds_count if MPX is not enabled.
  
- 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-03-27  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR rtl-optimization/70007
-       * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
-       references present in REG_EQUAL notes attached to non-SET patterns.
+       * config/nds32/nds32.h (BRANCH_COST): Adjust cost.
  
- 2016-03-01  Jeff Law  <law@redhat.com>
+ 2018-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
-       PR tree-optimization/69196
-       * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
-       Appropriately clamp the number of statements to copy when the
-       thread path does not traverse a loop backedge.
+       PR target/84914
+       * config/rs6000/rs6000.c (create_complex_muldiv): New helper
+       function to create the function decl for complex long double
+       multiply and divide for -mabi=ieeelongdouble.
+       (init_float128_ieee): Call it.
  
-       PR tree-optimization/69196
-       * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
-       Do count some PHIs in the thread path against the insn count.  Decrease
-       final statement count by one as the control statement in the last
-       block will get removed.  Remove special cased code for handling PHIs
-       in the last block.
+ 2018-03-27  H.J. Lu  <hongjiu.lu@intel.com>
  
- 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/85044
+       * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for
+       -fcf-protection=branch -mibt.
+       * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes.
  
-       PR target/70027
-       * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
-       asm dialect alternatives to explicit GOTPCREL calls.
+ 2018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
  
- 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
+       PR target/81863
+       * config/arm/arm.c (arm_valid_symbolic_address): Handle
+       arm_word_relocations.
  
-       PR ada/70017
-       * ira.c (do_reload): Issue warning for generic stack checking here...
-       * reload1.c (reload): ...instead of here and streamline it.
+ 2018-03-27  Cesar Philippidis  <cesar@codesourcery.com>
  
- 2016-03-01  Nick Clifton  <nickc@redhat.com>
+       PR target/85056
+       * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to
+       extern array declarations.
  
-       * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
+ 2018-03-27  Richard Biener  <rguenther@suse.de>
  
- 2016-03-01  Richard Biener  <rguenther@suse.de>
+       PR middle-end/84067
+       * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with
+       explicit single_use checks.
  
-       PR tree-optimization/69983
-       * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
-       types and fall back to operand_equal_p.
+ 2018-03-27  Richard Biener  <rguenther@suse.de>
  
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR tree-optimization/85082
+       * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces):
+       Valueize the VUSE.
  
-       Revert
-       2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
  
-       * config/s390/constraints.md ("jm8"): New constraint.
-       * config/s390/predicates.md ("const_int_8bitset_operand"): New
-       predicate.
-       * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
-       into ...
-       ("*setmem_long<setmem_and>"): New pattern.
-       ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
-       into ...
-       ("*setmem_long_31z<setmem_and>"): New pattern.
-       * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
-       New substitution rules with the required attributes.
+       * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES
+       * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]):
+       Turn on fasynchronous-unwind-tables and funwind-tables.
  
+ 2018-03-26  Uros Bizjak  <ubizjak@gmail.com>
  
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR target/85073
+       * config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern.
+       (*bmi_blsr_<mode>_ccz): Ditto.
  
-       Revert
-       2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-03-26  Tom de Vries  <tom@codesourcery.com>
  
-       * gensupport.c (process_substs_on_one_elem): Split loop to
-       complete mark_operands_used_in_match_dup on all expressions in the
-       vector first.
-       (adjust_operands_numbers): Inline into process_substs_on_one_elem
-       and remove function.
+       PR tree-optimization/85063
+       * omp-general.c (offloading_function_p): New function.  Factor out
+       of ...
+       * omp-offload.c (pass_omp_target_link::gate): ... here.
+       * omp-general.h (offloading_function_p): Declare.
+       * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable
+       with attribute omp declare target for offloading functions.
  
- 2016-03-01  Richard Biener  <rguenther@suse.de>
+ 2018-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR middle-end/70022
-       * fold-const.c (fold_indirect_ref_1): Fix range checking for
-       vector BIT_FIELD_REF extract.
+       PR tree-optimization/84005
+       * tree-data-ref.h (get_base_for_alignment): Declare.
+       * tree-data-ref.c (get_base_for_alignment_1): New function.
+       (get_base_for_alignment): Likewise.
+       * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
+       get_base_for_alignment to find a suitable base object, instead
+       of always using drb->base_address.
  
- 2016-03-01  Richard Biener  <rguenther@suse.de>
+ 2018-03-23  Jakub Jelinek  <jakub@redhat.com>
  
-       PR tree-optimization/69994
-       * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
+       PR inline-asm/85022
+       * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have
+       known size by default.
  
- 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
+ 2018-03-23  Vladimir Makarov  <vmakarov@redhat.com>
  
-       PR tree-optimization/69956
-       * tree-vect-stmts.c (supportable_widening_operation): Support
-       multi-step conversion of boolean vectors.
-       (supportable_narrowing_operation): Likewise.
+       PR inline-asm/85030
+       * lra-constraints.c (process_alt_operands): Don't match BLKmode
+       and non BLKmode operands.
  
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       * config/s390/s390.c (s390_decompose_address): Don't accept SImode
-       anymore.
+       PR target/85026
+       * config/arm/arm.md (unaligned_loadhis): Remove first alternative.
+       Clean up attributes.
  
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-03-23  Richard Biener  <rguenther@suse.de>
  
-       * config/s390/subst.md (DSI_VI): New mode iterator.
-       ("addr_style_op_subst"): Use DSI_VI instead of DSI.
-       * config/s390/vector.md ("vec_set<mode>"): Move expander before
-       the insn definition.
-       ("*vec_set<mode>"): Change predicate and add alternative to
-       support only either register or const_int operands as element
-       selector.
-       ("*vec_set<mode>_plus"): New pattern to support reg + const_int
-       operands.
-       ("vec_extract<mode>"): New expander.
-       ("*vec_extract<mode>"): New insn definition supporting reg and
-       const_int element selectors.
-       ("*vec_extract<mode>_plus"): New insn definition supporting
-       reg+const_int element selectors.
-       ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
-       following expander+insn definition.
-       ("<vec_shifts_name><mode>3"): New expander.
-       ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md ("*tabort_1"): Change predicate to
-       nonmemory_operand.  Add a second alternative to cover
-       register as well as const int operands.
-       ("*tabort_1_plus"): New pattern definition.
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md ("*ashrdi3_cc_31")
-       ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
-       ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
-       Merge insn definitions into ...
-       ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
-       New pattern definition.
-       ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
-       ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
-       ("*ashr<mode>3_and"): Merge insn definitions into ...
-       ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
-       New pattern definition.
-       * config/s390/subst.md ("addr_style_op_cc_subst")
-       ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
-       substitutions patterns plus attributes.
-       Add ashiftrt to SUBST iterator.
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md ("<shift><mode>3"): Change predicate of
-       op2 to nonmemory_operand.
-       ("*<shift>di3_31", "*<shift>di3_31_and"):
-       Merge into single pattern definition ...
-       ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
-       ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
-       pattern definition ...
-       ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
-       * config/s390/subst.md: Add ashift and lshiftrt to SUBST
-       iterator.
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/predicates.md (const_int_6bitset_operand): New
-       predicate.
-       * config/s390/s390.md: Include subst.md.
-       ("rotl<mode>3"): New expander.
-       ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
-       ...
-       ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
-       * config/s390/subst.md: New file.
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * config/s390/s390.md ("op_type", "atype", "length" attributes):
-       Remove RRR type.  It doesn't really exist.
-       ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
-       attributes.
-       ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
-       ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
-       ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
-       ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
-       ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
-       ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
-       `enabled' attribute.
- 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       * gensupport.c (process_substs_on_one_elem): Split loop to
-       complete mark_operands_used_in_match_dup on all expressions in the
-       vector first.
-       (adjust_operands_numbers): Inline into process_substs_on_one_elem
-       and remove function.
- 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
-       PR target/69706
-       * config/sparc/sparc.c (NWORDS_UP): Rename to...
-       (CEIL_NWORDS): ...this.  Use CEIL macro.
-       (compute_fp_layout): Adjust to above renaming.
-       (function_arg_union_value): Likewise.
-       (sparc_arg_partial_bytes): Likewise.
-       (sparc_function_arg_advance): Likewise.
- 2016-02-29  Jeff Law  <law@redhat.com>
-       PR tree-optimization/70005
-       * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
-       where an object with a boolean range is compared against a value
-       outside [0..1].
-       PR tree-optimization/69999
-       * gimple-ssa-split-paths.c (split_paths): When duplicating a block
-       with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
-       loop cleanups.
- 2016-02-29  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69994
-       * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
-       (get_unary_op): Look through nop conversions.
-       (ops_equal_values_p): New function, look for equality diregarding
-       nop conversions.
-       (eliminate_plus_minus_pair): Use ops_equal_values_p
-       (repropagate_negates): Do not use get_unary_op here.
- 2016-02-29  Martin Liska  <mliska@suse.cz>
-       * system.h: Poison ENABLE_CHECKING macro.
- 2016-02-29  Martin Liska  <mliska@suse.cz>
-       * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
-       is presented in dump flags.
-       * hsa-regalloc.c (linear_scan_regalloc): Likewise.
-       (hsa_regalloc): Likewise.
- 2016-02-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69980
-       * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
-       permutation of those we need to keep.
- 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
-       PR target/69706
-       * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
-       (NWORDS_UP): ...this
-       (init_cumulative_args): Minor tweaks.
-       (sparc_promote_function_mode): Likewise.
-       (scan_record_type): Delete.
-       (traverse_record_type): New function template.
-       (classify_data_t): New structure type.
-       (classify_registers): New inline function.
-       (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
-       exhausted.  Instantiate traverse_record_type on classify_registers and
-       deal with the case of a structure passed in slot #15 with no FP field
-       in the first word.
-       (assign_data_t): New structure type.
-       (compute_int_layout): New static function.
-       (compute_fp_layout): Likewise.
-       (count_registers): New inline function.
-       (assign_int_registers): New static function.
-       (assign_fp_registers): Likewise.
-       (assign_registers): New inline function.
-       (function_arg_record_value_1): Delete.
-       (function_arg_record_value_2): Likewise.
-       (function_arg_record_value_3): Likewise.
-       (function_arg_record_value): Adjust to above changes.  Instantiate
-       traverse_record_type on count_registers to first count the number of
-       registers to be used and then on assign_registers to assign them.
-       (function_arg_union_value): Adjust to above renaming.
-       (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
-       (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
-       case of a structure passed in slot #15
-       (sparc_function_arg_advance): Likewise.
-       (function_arg_padding): Minor tweak.
- 2016-02-29  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69720
-       * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
-       the adjustment_def path for possibly vectorized defs.
-       (vect_create_epilog_for_reduction): Handle vectorized initial
-       defs properly.
- 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
- 2016-02-27  Jeff Law  <law@redhat.com>
+       PR debug/85020
+       * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when
+       we are going to emit early debug for LTO.
  
-       Revert
-       2016-02-26  Richard Biener  <rguenther@suse.de>
-                   Jeff Law  <law@redhat.com>
-       PR tree-optimization/69740
-       * cfghooks.c (remove_edge): Request loop fixups if we delete
-       an edge that might turn an irreducible loop into a natural
-       loop.
- 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/69896
-       * tree-vect-generic.c (get_compute_type): Avoid single element
-       vector types.
- 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
-       Rename the AArch64 tuning option and related functions to enable the
-       Newton series for the reciprocal square root to reflect its
-       approximative characteristic.
-       * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
-       function to "aarch64_emit_approx_rsqrt".
-       * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
-       AARCH64_EXTRA_TUNE_APPROX_RSQRT.
-       * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
-       (xgene1_tunings): Likewise.
-       (use_rsqrt_p): Likewise.
-       (aarch64_emit_swrsqrt): Use new function name.
-       * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
-       * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
-       text explaining this option.
-       * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
- 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
-       PR target/69969
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
-       complain about -mallow-movmisalign without -mvsx if
-       TARGET_ALLOW_MOVMISALIGN was not set explicitly.
+ 2018-03-23  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-26  Joel Sherrill  <joel@rtems.org>
+       PR inline-asm/85034
+       * function.c (match_asm_constraints_1): Don't optimize if input
+       doesn't satisfy general_operand predicate for output's mode.
  
-       * config.gcc: Add x86_64-*-rtems*.
-       * config/i386/rtems-64.h: New file.
+       PR inline-asm/85022
+       * alias.c (write_dependence_p): Don't require for x_canonicalized
+       non-VOIDmode if x has VOIDmode.
  
- 2016-02-26  Joel Sherrill  <joel@rtems.org>
+       PR sanitizer/85029
+       * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base),
+       just don't try to optimize it rather than assert it never happens.
  
-       * config.gcc: Add aarch64-*-rtems*.
-       * config/aarch64/rtems.h: New file.
+ 2018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
- 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X
+       macro expansions for definition of ST_INTERNAL_<mode> and
+       LD_INTERNAL_<mode> builtins.
+       * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec):
+       Remove prototype.
+       * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this
+       function.
+       (altivec_expand_st_builtin): Likewise.
+       (altivec_expand_builtin): Remove calls to deleted functions.
+       (rs6000_address_for_altivec): Delete this function.
+       * config/rs6000/vector.md: Remove expands for
+       vector_altivec_load_<mode> and vector_altivec_store_<mode>.
  
-       PR target/69946
-       * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
-       shift amount using %h.  Add comment.
+ 2018-03-22  Sudakshina Das  <sudi.das@arm.com>
  
- 2016-02-26  Richard Biener  <rguenther@suse.de>
-           Jeff Law  <law@redhat.com>
+       PR target/84826
+       * config/arm/arm.h (machine_function): Add static_chain_stack_bytes.
+       * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid
+       re-computing once computed.
+       (arm_expand_prologue): Compute machine->static_chain_stack_bytes.
+       (arm_init_machine_status): Initialize
+       machine->static_chain_stack_bytes.
  
-       PR tree-optimization/69740
-       * cfghooks.c (remove_edge): Request loop fixups if we delete
-       an edge that might turn an irreducible loop into a natural
-       loop.
+ 2018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
- 2016-02-26  Martin Jambor  <mjambor@suse.cz>
+       PR target/84760
+       * doc/extend.texi: Add four new prototypes for vec_ld.
+       * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol
+       definitions for more logical presentation.
+       * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add
+       entries for V1TI variants of __builtin_altivec_ld builtin.
+       * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and
+       handling of V1TI variant of LVX icode pattern.
+       (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI.
+       (rs6000_gimple_fold_builtin): Likewise.
+       (altivec_init_builtins): Add code to define
+       __builtin_altivec_lvx_v1ti function.
  
-       PR middle-end/69920
-       * tree-sra.c (sra_modify_assign): Do not remove loads of
-       uninitialized aggregates to SSA_NAMEs.
+ 2018-03-22  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-26  Richard Henderson  <rth@redhat.com>
+       PR inline-asm/84941
+       * function.c (match_asm_constraints_1): Don't do the optimization
+       if input isn't a REG, SUBREG, MEM or constant.
  
-       PR target/69709
-       * config/s390/s390.md (risbg and risbgn splitters): Allocate new
-       pseudo in case the target rtx matches the source of the left
-       shift.
+ 2018-03-22  Tom de Vries  <tom@codesourcery.com>
  
- 2016-02-26  Martin Jambor  <mjambor@suse.cz>
+       PR tree-optimization/84956
+       * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with
+       bb_has_abnormal_pred.
  
-       PR hsa/69568
-       * hsa.h (hsa_type_packed_p): Declare.
-       * hsa.c (hsa_type_packed_p): New function.
-       * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
-       loads.
-       (gen_hsa_insns_for_store): Use hsa_type_packed_p.
-       * hsa-brig.c (emit_basic_insn): Likewise.
+ 2018-03-22  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-26  Martin Jambor  <mjambor@suse.cz>
+       PR sanitizer/85018
+       * dwarf2asm.c (dw2_output_indirect_constant_1): Set
+       DECL_INITIAL (decl) to decl at the end.
+       * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change,
+       adjust the comment.
  
-       pr hsa/69674
-       * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
-       pointers.
-       (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
+ 2018-03-21  Joseph Myers  <joseph@codesourcery.com>
  
- 2016-02-26  Martin Jambor  <mjambor@suse.cz>
+       * doc/extend.texi (__builtin_tgmath): Document when complex
+       integer types are treated as _Complex _Float64.
  
-       * hsa.h (is_a_helper): New overload for hsa_op_immed for
-       hsa_op_with_type operands.
-       (hsa_unsigned_type_for_type): Declare.
-       * hsa.c (hsa_unsigned_type_for_type): New function.
-       * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
-       (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
-       the finalizer.  Do not emit extra move.
+ 2018-03-21  Tom de Vries  <tom@codesourcery.com>
  
- 2016-02-26  Martin Jambor  <mjambor@suse.cz>
+       * doc/extend.texi (__builtin_extend_pointer): Remove pasto.
  
-       * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
-       atomic operations in private segment.
+ 2018-03-21  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-26  Martin Jambor  <mjambor@suse.cz>
+       PR tree-optimization/84960
+       * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb
+       if it is ENTRY block, move them into single succ of ENTRY in that case.
  
-       * omp-low.c (grid_find_ungridifiable_statement): Store problematic
-       statements to wi->info.  Also disallow omp simd constructs.
-       (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
-       for not gridifying.  Dump special string for omp_for.
+ 2018-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR tree-optimization/84811
+       * poly-int.h (poly_span_traits): Remove the T3 parameter and
+       promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT.
+       (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p):
+       (known_subrange_p): Update accordingly.  Cast each value involved
+       in the size comparison, rather than casting the result of the
+       subtraction.
  
-       PR target/69245
-       * config/aarch64/aarch64.c (aarch64_set_current_function):
-       Save/restore target globals when switching to
-       target_option_default_node.
+ 2018-03-21  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR tree-optimization/84982
+       * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion
+       by flipping the least significant bit rather than all bits from
+       bitpos to bitpos + bitsize - 1.
  
-       PR target/69613
-       * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
-       Return 0 if !SHIFT_COUNT_TRUNCATED.
+ 2018-03-21  Nathan Sidwell  <nathan@acm.org>
  
- 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
-           Eric Botcazou  <ebotcazou@adacore.com>
+       * doc/extend.texi (Deprecated Features): Remove mention of
+       long-deleted deprecations.
  
-       PR rtl-optimization/69891
-       * dse.c (scan_insn): If we can't figure out memset arguments
-       or they are non-constant, call clear_rhs_from_active_local_stores.
+ 2018-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
- 2016-02-26  Martin Liska  <mliska@suse.cz>
+       PR jit/84288
+       * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set.
+       * configure: Regenerate.
  
-       * doc/extend.texi: Mention clog10, clog10f an clog10l
-       in Builtins section.
+ 2018-03-21  Tom de Vries  <tom@codesourcery.com>
  
- 2016-02-26  Martin Liska  <mliska@suse.cz>
+       PR tree-optimization/83126
+       * tree-parloops.c (num_phis): New function.
+       (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure.
  
-       * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
-       CHECKING_P.
-       (resolve_args_picking_1): Likewise.
-       * dwarf2out.h (struct GTY): Likewise.
+ 2018-03-21  Nathan Sidwell  <nathan@acm.org>
  
- 2016-02-26  Martin Liska  <mliska@suse.cz>
+       * doc/extend.texi (Deprecated Features): Update deprecated flags,
+       mention anon-struct/union members and trailing attributes.
  
-       * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
-       with flag_checking.
-       * hsa-regalloc.c (linear_scan_regalloc): Likewise.
+ 2018-03-21  Bin Cheng  <bin.cheng@arm.com>
  
- 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
-           Martin Liska  <mliska@suse.cz>
+       PR tree-optimization/84969
+       * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder
+       builtin memset partitions if they set different rhs values.
  
-       * doc/install.texi: Mention --enable-valgrind-annotations.
+ 2018-03-21  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-26  Richard Biener  <rguenther@suse.de>
+       PR rtl-optimization/84989
+       * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify
+       VEC_DUPLICATE with scalar result mode.
  
-       PR tree-optimization/69551
-       * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
-       looking through aliases adjust DECL_PT_UID to refer to the
-       ultimate alias target.
+ 2018-03-21  Martin Liska  <mliska@suse.cz>
  
- 2016-02-25  Martin Liska  <mliska@suse.cz>
+       PR ipa/84963
+       * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove
+       not intended return statement.
  
-       PR middle-end/69919
-       * alloc-pool.c (after_memory_report): New variable.
-       * alloc-pool.h (base_pool_allocator ::release): Do not use
-       the infrastructure if after_memory_report.
-       * toplev.c (toplev::main): Mark after memory report.
+ 2018-03-21  Martin Liska  <mliska@suse.cz>
  
- 2016-02-25  Richard Biener  <rguenther@suse.de>
+       PR target/84988
+       * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro.
+       (chkp_find_bound_slots_1): Limit number of iterations.
  
-       PR tree-optimization/48795
-       * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
+ 2018-03-20  David H. Gutteridge  <dhgutteridge@sympatico.ca>
  
- 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
+       PR target/84838
+       * Minor grammar fixes for x86 options.
  
-       PR driver/68463
-       * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
-       offloading is enabled and -fopenacc or -fopenmp is specified.
-       (CRTOFFLOADEND): Likewise.
-       (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
-       (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
-       * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
-       (offload_objects_file_name): New static var.
-       (tool_cleanup): Remove offload_objects_file_name file.
-       (find_offloadbeginend): Replace with ...
-       (find_crtoffloadtable): ... this.
-       (run_gcc): Remove offload_argc and offload_argv.
-       Get offload_objects_file_name from -foffload-objects=... option.
-       Read names of object files with offload from this file, pass them to
-       compile_images_for_offload_targets.  Don't call find_offloadbeginend and
-       don't pass offloadbegin and offloadend to the linker.  Don't pass
-       offload non-LTO files to the linker, because now they're not claimed.
+ 2018-03-20  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
+       PR debug/84875
+       * dce.c (delete_unmarked_insns): Don't remove frame related noop moves
+       holding REG_CFA_RESTORE notes, instead turn them into a USE.
  
-       PR ipa/69630
-       * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
-       on builtin_unreachable.
+ 2018-03-20  Peter Bergner  <bergner@vnet.ibm.com>
  
- 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
+       PR target/83789
+       * config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn.
+       (altivec_lvx_<mode>_1op): Likewise.
+       (altivec_stvx_<mode>_2op): Likewise.
+       (altivec_stvx_<mode>_1op): Likewise.
+       (altivec_lvx_<VM2:mode>): New define_expand.
+       (altivec_stvx_<VM2:mode>): Likewise.
+       (altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn.
+       (altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
+       (altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise.
+       (altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
+       * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders.
+       (rs6000_gen_lvx): Likewise.
+       * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise.
+       (altivec_expand_stv_builtin): Likewise.
+       (altivec_expand_builtin): Likewise.
+       * config/rs6000/vector.md: Likewise.
  
-       PR rtl-optimization/69896
-       * regcprop.c: Include cfgrtl.h.
-       (copyprop_hardreg_forward_1): If noop_p insn uses narrower
-       than remembered mode, either delete it (if noop_move_p), or
-       treat like copy_p but not noop_p instruction.
+ 2018-03-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
- 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+       PR target/82518
+       * config/arm/arm.c (arm_array_mode_supported_p): Return false for
+       BYTES_BIG_ENDIAN.
  
-       PR debug/69705
-       * dwarf2out.c (gen_variable_die): Work around buggy LTO
-       - allow NULL decl for Fortran DW_TAG_common_block variables.
+ 2018-03-20  Richard Biener  <rguenther@suse.de>
  
- 2016-02-24  Jason Merrill  <jason@redhat.com>
+       PR target/84986
+       * config/i386/i386.c (ix86_add_stmt_cost): Only cost
+       sign-conversions as zero, fall back to standard scalar_stmt
+       cost for the rest.
  
-       * common.opt (flifetime-dse): Add -flifetime-dse=1.
+ 2018-03-20  Martin Liska  <mliska@suse.cz>
  
- 2016-02-24  Richard Biener  <rguenther@suse.de>
-           Jakub Jelinek  <jakub@redhat.com>
+       PR ipa/84825
+       * predict.c (rebuild_frequencies): Handle case when we have
+       PROFILE_ABSENT, but flag_guess_branch_prob is false.
  
-       PR middle-end/69760
-       * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
-       conditionally executed ops to well-defined overflow behavior.
+ 2018-03-20  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84990
+       * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off
+       flag_section_anchors.
+       * varasm.c (use_blocks_for_decl_p): Remove hack for
+       dw2_force_const_mem.
  
-       PR middle-end/69915
-       * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
-       elements.
+       PR target/84845
+       * config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename
+       to ...
+       (*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this.  If pseudos can't
+       be created, use lowpart_subreg of operands[0] rather than operands[0]
+       itself.
+       (*aarch64_reg_<mode>3_minus_mask): Rename to ...
+       (*aarch64_ashl_reg_<mode>3_minus_mask): ... this.
+       (*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate
+       and n constraint instead of aarch64_shift_imm_di and Usd.
+       (*aarch64_reg_<optab>_minus<mode>3): Rename to ...
+       (*aarch64_<optab>_reg_minus<mode>3): ... this.
+ 2018-03-20  Sudakshina Das  <sudi.das@arm.com>
+       PR target/82989
+       * config/arm/neon.md (ashldi3_neon): Update ?s for constraints
+       to favor GPR over NEON registers.
+       (<shift>di3_neon): Likewise.
  
- 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-03-20  Tom de Vries  <tom@codesourcery.com>
  
-       PR rtl-optimization/69886
-       * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
-       argument.  Use it when checking validity of set instructions.
-       (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
-       (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
-       callsite.
-       * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
-       * store-motion.c (find_moveable_store): Update
-       can_assign_to_reg_without_clobbers_p callsite.
+       PR target/84952
+       * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync.
+       (nvptx_process_pars): Emit bar.sync asap and alap.
  
- 2016-02-24  Richard Biener  <rguenther@suse.de>
+ 2018-03-20  Tom de Vries  <tom@codesourcery.com>
  
-       PR middle-end/68963
-       * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
-       bogus check.
-       (record_nonwrapping_iv): Do not fall back to the low/high bound
-       for non-constant IV bases if the stmt is not always executed.
+       PR target/84954
+       * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update
+       seen_label if seen_label is already set.
  
- 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-03-20  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/arm/arm-cores.def (cortex-a32): New entry.
-       * config/arm/arm-tables.opt: Regenerate.
-       * config/arm/arm-tune.md: Regenerate.
-       * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
-       * config/arm/t-aprofile: Handle mcpu=cortex-a32.
-       * doc/invoke.texi (ARM Options): Document cortex-a32 as value
-       for -mcpu and -mtune.
+       PR target/84945
+       * config/i386/i386.c (fold_builtin_cpu): For features above 31
+       use __cpu_features2 variable instead of __cpu_model.__cpu_features[0].
+       Use 1U instead of 1.  Formatting fixes.
  
- 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR c/84953
+       * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type
+       instead of TREE_TYPE (s1) for the return value.
  
-       PR target/69875
-       * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
-       * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
-       * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
-       (atomic_loaddi_1): Delete.
-       (atomic_loaddi): Rewrite expander using the above changes.
+ 2018-03-19  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/84946
+       * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute
+       bitsize + bitsize in poly_uint64 rather than poly_int64.
  
-       PR c/69918
-       * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
-       2 to 3.
+       PR sanitizer/78651
+       * dwarf2asm.c: Include fold-const.c.
+       (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR
+       of decl rather than decl itself.
  
- 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
-           Richard Biener  <rguenth@suse.de>
+       PR rtl-optimization/84643
+       * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator.
  
-       PR middle-end/69909
-       * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
-       set_mem_attributes if tem is SSA_NAME which got expanded
-       as a MEM.
+ 2018-03-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
  
- 2016-02-24  Richard Biener  <rguenther@suse.de>
+       PR sanitizer/78651
+       * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before
+       calling assemble_variable.
  
-       PR tree-optimization/69907
-       * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
-       end of permutations for BB vectorization.
+ 2018-03-19  Sudakshina Das  <sudi.das@arm.com>
  
- 2016-02-24  Christian Bruel  <christian.bruel@st.com>
+       PR target/81647
+       * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify
+       instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED.
  
-       * config/arm/arm-c.c (arm_option_override): Initialize
-       target_option_current_node.
-       * config/arm/arm.c (arm_pragma_target_parse): Replace
-       build_target_option_node call by target_option_current_node.
-       Set target_option_current_node.
-       Fix comments.
+ 2018-03-19  Jim Wilson  <jimw@sifive.com>
  
- 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
+       PR bootstrap/84856
+       * config/riscv/riscv.c (riscv_function_arg_boundary): Use
+       PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY.
+       (riscv_first_stack_step): Likewise.
+       (riscv_option_override): Use STACK_BOUNDARY instead of
+       MIN_STACK_BOUNDARY.
+       * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from
+       MIN_STACK_BOUNDARY.
+       (BIGGEST_ALIGNMENT): Set to 128.
+       (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY.
+       (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of
+       STACK_BOUNDARY.
  
-       PR target/69810
-       * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
-       define_insn_and_split to define_insn.
-       (zero_extendqi<mode>2_dot2): Same.
-       (extendqi<mode>2_dot): Same.
-       (extendqi<mode>2_dot2): Same.
+ 2018-03-19  Richard Biener  <rguenther@suse.de>
  
- 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
+       PR tree-optimization/84933
+       * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound
+       values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE.
  
-       * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
-       and add bypass for AES{D,E} and AESMC pairs.
-       * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
-       and AESMC pairs.
+ 2018-03-19  Richard Biener  <rguenther@suse.de>
  
- 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
+       PR tree-optimization/84859
+       * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function.
+       (cond_if_else_store_replacement): Perform sinking operation on
+       single-store BBs regardless of MAX_STORES_TO_SINK setting.
+       Generalize what a BB with a single eligible store is.
  
-       * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
-       series for reciprocal square root in Exynos M1.
+ 2018-03-19  Richard Biener  <rguenther@suse.de>
  
- 2016-02-23  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/84929
+       * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard
+       chrec_is_positive against non-chrec arg.
  
-       PR c/69759
-       * doc/extend.texi (Other Builtins): Document __builtin_alloca and
-       __builtin_alloca_with_align.
+ 2018-03-19  Tamar Christina  <tamar.christina@arm.com>
  
- 2016-02-23  Richard Henderson  <rth@redhat.com>
+       PR target/84711
+       * config/arm/arm.c (arm_can_change_mode_class): revert r258554.
  
-       * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
-       (ix86_register_pragmas): Remove __seg_tls.
-       * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
-       * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
-       (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
-       (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
-       (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
-       * doc/extend.texi (__seg_tls): Remove item.
+ 2018-03-18  Martin Liska  <mliska@suse.cz>
  
- 2016-02-23  Richard Biener  <rguenther@suse.de>
+       PR rtl-optimization/84635
+       * regrename.c (build_def_use): Use matches_mode only when
+       matches >= 0.
  
-       * alloc-pool.h (struct allocation_object): Make id member
-       conditional on CHECKING_P again.
-       (get_instance): Adjust.
-       (base_pool_allocator): Likewise.
+ 2018-03-18  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
+       PR tree-optimization/84913
+       * tree-vect-loop.c (vectorizable_reduction): Don't try to
+       vectorize chains of COND_EXPRs.
  
-       * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
-       (parallelize_loops): In OpenACC kernels mode, set n_threads to
-       zero.
-       (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
-       flag_openacc.
-       * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
+ 2018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-02-23  Richard Biener  <rguenther@suse.de>
+       * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value.
  
-       * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
-       * bitmap.h (struct bitmap_usage): Likewise.
-       (bitmap_move): Declare.
-       * bitmap.c (register_overhead): Take size_t argument.
-       (bitmap_move): New function.
-       * df-problems.c (df_rd_transfer_function): Use bitmap_move
-       to properly account overhead.
-       * tree.c (free_node): Use tree_size.
+ 2018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
+       * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
  
-       PR c++/69902
-       * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
-       when inverting comparison.
+ 2018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR c/69900
-       * common.opt (Wunreachable-code): Add Warning flag.
+       * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
  
- 2016-02-23  Mark Wielaard  <mjw@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
+ 2018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
-       PR c/69911
-       * cgraphunit.c (check_global_declaration): Check main_input_filename
-       and DECL_SOURCE_FILE are not NULL.
+       * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare.
+       * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array.
+       (nds32_adjust_reg_alloc_order): New function.
+       * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define.
  
- 2016-02-23  Martin Jambor  <mjambor@suse.cz>
+ 2018-03-17  Kito Cheng  <kito.cheng@gmail.com>
  
-       PR tree-optimization/69666
-       * tree-sra.c (sra_modify_assign): Do not attempt to create
-       default_def replacements for unscalarizable regions.
+       * config/nds32/nds32.c (nds32_asm_output_mi_thunk,
+       nds32_print_operand, nds32_print_operand_address): Use
+       HOST_WIDE_INT_PRINT_DEC instead.
  
- 2016-02-20  Mark Wielaard  <mjw@redhat.com>
+ 2018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR c/28901
-       * cgraphunit.c (check_global_declaration): Check level of
-       warn_unused_const_variable and main_input_filename.
-       * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
-       (-Wunused-variable): For C implies -Wunused-const-variable=1.
-       (-Wunused-const-variable): Explain levels 1 and 2.
+       * config/nds32/nds32.c (nds32_register_priority): Modify cost.
  
- 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
+ 2018-03-17  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/69888
-       * config/i386/i386.c (decide_alg): Ensure we don't recurse with
-       identical arguments.  Formatting and spelling fixes.
+       PR target/84902
+       * config/i386/i386.c (initial_ix86_tune_features,
+       initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than
+       unsigned long long.
+       (set_ix86_tune_features): Change ix86_tune_mask from unsigned int
+       to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune
+       rather than 1u << ix86_tune.  Formatting fix.
+       (ix86_option_override_internal): Change ix86_arch_mask from
+       unsigned int to unsigned HOST_WIDE_INT, initialize to
+       HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch.
+       (ix86_function_specific_restore): Likewise.
  
-       PR target/69885
-       * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
-       be specified.
+ 2018-03-16  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/69894
-       PR target/69895
-       * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
-       and m68k-devices.def.
-       * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
-       * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
+       PR target/84899
+       * postreload.c (reload_combine_recognize_pattern): Perform
+       INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and
+       truncate_int_for_mode the result for the destination's mode.
  
- 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
+       PR c/84909
+       * hsa-gen.c (mem_type_for_type): Fix comment typo.
+       * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks):
+       Likewise.
+       * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
+       Likewise.
  
-       * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
-       and HImode registers.
+ 2018-03-16  Vladimir Makarov  <vmakarov@redhat.com>
  
- 2016-02-22  Richard Biener  <rguenther@suse.de>
+       PR target/84876
+       * lra-assigns.c (lra_split_hard_reg_for): Don't use
+       regno_allocno_class_array and sorted_pseudos.
+       * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in
+       insns where regno is used.
  
-       PR tree-optimization/69882
-       * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
-       preserve permutations present because of gaps.
-       (vect_supported_load_permutation_p): Always continue checking
-       permutations after vect_attempt_slp_rearrange_stmts.
+ 2018-03-16  Martin Liska  <mliska@suse.cz>
  
- 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
+       PR ipa/84833
+       * multiple_target.c (create_dispatcher_calls): Redirect
+       reference in the symbol table.
  
-       * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
-       min_profitable_estimate, rather than min_profitable_iters.
+ 2018-03-16  Martin Liska  <mliska@suse.cz>
  
- 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
+       PR ipa/84722
+       * multiple_target.c (create_dispatcher_calls): Redirect also
+       an alias.
  
-       PR target/69885
-       * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
-       SImode for last match_operand.
+ 2018-03-16  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-22  Martin Liska  <mliska@suse.cz>
+       PR c++/79937
+       PR c++/82410
+       * tree.h (TARGET_EXPR_NO_ELIDE): Define.
+       * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with
+       TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR.
  
-       * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
-       return bitsize - 1 as the return value.
+ 2018-03-16  Julia Koval  <julia.koval@intel.com>
  
- 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
+       * doc/invoke.texi (Skylake Server): Add CLWB.
+       Cannonlake): Remove CLWB.
  
-       PR target/69806
-       PR target/54089
-       * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
-       Handle negative shift counts.
-       * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
-       force_reg on the shift constant.
-       (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
-       (lshrsi3_d): Handle negative shift counts.
+ 2018-03-16  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-22  Richard Biener  <rguenther@suse.de>
-           Tom de Vries  <tom@codesourcery.com>
+       PR tree-optimization/84841
+       * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
+       1 << 3.
+       (FLOAT_ONE_CONST_TYPE): Define.
+       (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
+       (sort_by_operand_rank): Put entries with higher constant_type last
+       rather than first to match comments.
  
-       * graph.c: Include dumpfile.h.
-       (print_graph_cfg): Split into three overloads.
-       * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
+ 2018-03-15  Sandra Loosemore  <sandra@codesourcery.com>
  
- 2016-02-22  Tom de Vries  <tom@codesourcery.com>
+       * config/nios2/nios2.md (movsi_internal): Fix thinko in
+       split predicate.
  
-       * gdbhooks.py (class DumpFn): Add and instantiate, adding command
-       dump-fn.
+ 2018-03-15  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-22  Richard Biener  <rguenther@suse.de>
+       PR c++/79085
+       * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment
+       check and use address of target always.
  
-       PR ipa/37448
-       * ipa-inline-transform.c (inline_call): When not updating
-       overall summaries adjust self size by the growth estimate.
-       * ipa-inline.c (inline_to_all_callers_1): Add to the callers
-       hash-set, do not update overall summaries here.  Renamed from ...
-       (inline_to_all_callers): ... this which is now wrapping the
-       above and performing delayed overall summary update.
-       (early_inline_small_functions): Delay updating of the overall
-       summary.
+ 2018-03-15  H.J. Lu  <hongjiu.lu@intel.com>
  
- 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
+       PR target/84574
+       * config/i386/i386.c (indirect_thunk_needed): Update comments.
+       (indirect_thunk_bnd_needed): Likewise.
+       (indirect_thunks_used): Likewise.
+       (indirect_thunks_bnd_used): Likewise.
+       (indirect_return_needed): New.
+       (indirect_return_bnd_needed): Likewise.
+       (output_indirect_thunk_function): Add a bool argument for
+       function return.
+       (output_indirect_thunk_function): Don't generate alias for
+       function return thunk.
+       (ix86_code_end): Call output_indirect_thunk_function to generate
+       function return thunks.
+       (ix86_output_function_return): Set indirect_return_bnd_needed
+       and indirect_return_needed instead of indirect_thunk_bnd_needed
+       and indirect_thunk_needed.
  
-       * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
-       variable.
+ 2018-03-15  Olga Makhotina  <olga.makhotina@intel.com>
  
- 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+       * config/i386/sgxintrin.h (_enclv_u32): New intrinsic.
+       (__enclv_bc, __enclv_cd, __enclv_generic): New definitions.
+       (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves.
  
-       PR driver/69805
-       * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
-       :%* in %:gt() argument.
-       (greater_than_spec_func): Adjust for expecting only numbers,
-       if there are more than two numbers, compare the last two.
+ 2018-03-15  David Malcolm  <dmalcolm@redhat.com>
+           Paul Hua <paul.hua.gm@gmail.com>
  
- 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
+       PR c/84852
+       * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp.
  
-       * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
-       -Wnarrowing with -std.
+ 2018-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+       * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the
+       TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode
+       resp. SFmode cases.
  
-       PR c++/69851
-       * expr.c (store_field): Don't use bit-field path if exp is
-       COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
-       different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
-       and the assignment can be performed by bitwise copy.  Formatting
-       fix.
+ 2018-03-15  Tamar Christina  <tamar.christina@arm.com>
  
-       PR middle-end/69838
-       * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
-       call copy_reg_eh_region_note_forward on before and/or after sequences
-       and remove note from insn if it no longer can throw.
+       PR target/84711
+       * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
+       instead of GET_MODE_SIZE when comparing Units.
  
-       PR target/69820
-       * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
-       if TARGET_AVX512BW.
+ 2018-03-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR target/68256
+       * varasm.c (hash_section): Return an unchangeble hash value
+       * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p):
+       Return !aarch64_can_use_per_function_literal_pools_p ().
  
-       * config/s390/vector.md: Add missing commutative operand markers
-       to the patterns which qualify for one.
-       * config/s390/vx-builtins.md: Likewise.
+ 2018-03-15  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR target/84860
+       * optabs.c (emit_conditional_move): Pass address of cmode's copy
+       rather than address of cmode as last argument to prepare_cmp_insn.
  
-       * config/s390/vector.md (VI, VI_QHS): Add single element vector
-       types to mode iterators.
-       (vec_double): ... and mode attribute.
-       * config/s390/vx-builtins.md (non_vec_int): Likewise.
+ 2018-03-15  Julia Koval  <julia.koval@intel.com>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,
+       F_AVX512VNNI, F_AVX512BITALG): New.
  
-       * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
-       Change the predicate of op2 from nonimmediate to general and let
-       reload fix it if necessary.
+ 2018-03-14  John David Anglin  <danglin@gcc.gnu.org>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR target/83451
+       * config/pa/pa.c (pa_emit_move_sequence):  Always emit secondary reload
+       insn for floating-point loads and stores.
  
-       * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
+ 2018-03-14  Carl Love  <cel@us.ibm.com>
+       * config/rs6000/rs6000-c.c: Add macro definitions for
+       ALTIVEC_BUILTIN_VEC_PERMXOR.
+       * config/rs6000/rs6000.h: Add #define for vec_permxor builtin.
+       * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR.
+       * config/rs6000/altivec.md (altivec_vpermxor): New define expand.
+       * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case
+       UNSPEC_VPERMXOR.
+       * config/doc/extend.texi: Add prototypes for vec_permxor.
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+ 2018-03-14  David Malcolm  <dmalcolm@redhat.com>
+       PR c/84852
+       * diagnostic-show-locus.c (class layout_point): Convert m_line
+       from int to linenum_type.
+       (line_span::comparator): Use linenum "compare" function when
+       comparing line numbers.
+       (test_line_span): New function.
+       (layout_range::contains_point): Convert param "row" from int to
+       linenum_type.
+       (layout_range::intersects_line_p): Likewise.
+       (layout::will_show_line_p): Likewise.
+       (layout::print_source_line): Likewise.
+       (layout::should_print_annotation_line_p): Likewise.
+       (layout::print_annotation_line): Likewise.
+       (layout::print_leading_fixits): Likewise.
+       (layout::annotation_line_showed_range_p): Likewise.
+       (struct line_corrections): Likewise for field m_row.
+       (line_corrections::line_corrections): Likewise for param "row".
+       (layout::print_trailing_fixits): Likewise.
+       (layout::get_state_at_point): Likewise.
+       (layout::get_x_bound_for_row): Likewise.
+       (layout::print_line): Likewise.
+       (diagnostic_show_locus): Likewise for locals "last_line" and "row".
+       (selftest::diagnostic_show_locus_c_tests): Call test_line_span.
+       * input.c (selftest::test_linenum_comparisons): New function.
+       (selftest::input_c_tests): Call it.
+       * selftest.c (selftest::test_assertions): Test ASSERT_GT,
+       ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT.
+       * selftest.h (ASSERT_GT): New macro.
+       (ASSERT_GT_AT): New macro.
+       (ASSERT_LT): New macro.
+       (ASSERT_LT_AT): New macro.
  
-       * config/s390/s390.c (s390_expand_vcond): Use the compare operand
-       mode.
+ 2018-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR rtl-optimization/84780
+       * combine.c (distribute_links): Don't make a link based on pc_rtx.
  
-       * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
-       * config/s390/s390.c (s390_expand_vec_movstr): New function.
-       * config/s390/s390.md ("movstr<P:mode>"): Call
-       s390_expand_vec_movstr.
+ 2018-03-14  Martin Liska  <mliska@suse.cz>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       * tree.c (record_node_allocation_statistics): Use
+       get_stats_node_kind.
+       (get_stats_node_kind): New function extracted from
+       record_node_allocation_statistics.
+       (free_node): Use get_stats_node_kind.
  
-       * config/s390/s390.md: Add missing output modifier for operand 1
-       to print it as address properly.
+ 2018-03-14  Richard Biener  <rguenther@suse.de>
  
- 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
+       that the value-set of ANTIC_IN doesn't grow.
  
-       * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
-       * config/s390/2964.md: New file.
-       * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
-       of insn grouping attributes depending on the CPU level.
-       (s390_get_unit_mask): New function.
-       (s390_sched_score): Remove the OOO from the scheduling macros.
-       Add loop to calculate a score for the instruction mix.
-       (s390_sched_reorder): Likewise plus improve debug output.
-       (s390_sched_variable_issue): Rename macros as above.  Calculate
-       the unit distances after actually scheduling an insn.  Improve
-       debug output.
-       (s390_sched_init): Clear last_scheduled_unit_distance array.
-       * config/s390/s390.md: Include 2964.md.
+       Revert
+       * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
+       member.
+       (BB_VISITED_WITH_VISITED_SUCCS): New define.
+       (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
+ 2018-03-14  Julia Koval  <julia.koval@intel.com>
+       * config.gcc (icelake-client, icelake-server): New.
+       (icelake): Remove.
+       * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit.
+       (initial_ix86_arch_features): Ditto.
+       (PTA_SKYLAKE): Add SGX.
+       (PTA_ICELAKE): Remove.
+       (PTA_ICELAKE_CLIENT): New.
+       (PTA_ICELAKE_SERVER): New.
+       (ix86_option_override_internal): Split up icelake on icelake client and
+       icelake server.
+       (get_builtin_code_for_version): Ditto.
+       (fold_builtin_cpu): Ditto.
+       * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Ditto
+       * config/i386/i386.h (processor_type): Ditto.
+       * doc/invoke.texi: Ditto.
  
- 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 2018-03-14  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/69671
-       * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
-       *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
-       *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
-       *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
-       *avx512f_<code>v8div16qi2_mask_1): New insns.
+       PR sanitizer/83392
+       * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also
+       INTEGER_CST offset, add it together with bitpos / 8 and
+       sign extend based on POINTER_SIZE.
  
- 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       PR target/84844
+       Revert
+       2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
  
-       PR target/68404
-       * config/rs6000/predicates.md (fusion_gpr_addis): Revert
-       2016-02-09 change.
+       PR target/78090
+       * config/i386/constraints.md (Yc): New register constraint.
+       * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
+       Use Yc constraint for alternative 2 of operand 0.  Remove
+       preferred_for_speed attribute.
  
-       * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
-       earlyclobber from target.  Use wF constraint for fused memory
-       address.
-       (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
+ 2018-03-14  Richard Biener  <rguenther@suse.de>
  
- 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
-           Martin Liska  <mliska@suse.cz>
+       PR tree-optimization/84830
+       * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN
+       with the old one to avoid oscillations.
  
-       PR sanitizer/69863
-       * cfgexpand.c (asan_sanitize_stack_p): New function.
-       (partition_stack_vars): Use the function.
-       (expand_stack_vars): Likewise.
-       (defer_stack_allocation): Likewise.
-       (expand_used_vars): Likewise.
+ 2018-03-13  Vladimir Makarov  <vmakarov@redhat.com>
  
- 2016-02-18  Richard Biener  <rguenther@suse.de>
+       PR target/83712
+       * lra-assigns.c (find_all_spills_for): Ignore uninteresting
+       pseudos.
+       (assign_by_spills): Return a flag of reload assignment failure.
+       Do not process the reload assignment failures.  Do not spill other
+       reload pseudos if they has the same reg class.  Update n if
+       necessary.
+       (lra_assign): Add a return arg.  Set up from the result of
+       assign_by_spills call.
+       (find_reload_regno_insns, lra_split_hard_reg_for): New functions.
+       * lra-constraints.c (split_reg): Add a new arg.  Use it instead of
+       usage_insns if it is not NULL.
+       (spill_hard_reg_in_range): New function.
+       (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
+       * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
+       function prototypes.
+       (lra_assign): Change prototype.
+       * lra.c (lra): Add code to deal with fails by splitting hard reg
+       live ranges.
+ 2018-03-01  Palmer Dabbelt  <palmer@sifive.com>
+       * config/riscv/riscv.opt (mrelax): New option.
+       * config/riscv/riscv.c (riscv_file_start): Emit ".option
+       "norelax" when riscv_mrelax is disabled.
+       * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax".
+ 2018-03-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+       PR target/84743
+       * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel
+       reassociation for int modes.
+ 2018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks):
+       Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR
+       for big-endian.
+       * config/aarch64/iterators.md (hi_lanes_optab): New int attribute.
+       * config/aarch64/aarch64-sve.md
+       (*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to...
+       (aarch64_sve_<perm_insn><perm_hilo><mode>): ...this.
+       (*extend<mode><Vwide>2): Rename to...
+       (aarch64_sve_extend<mode><Vwide>2): ...this.
+       (vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand,
+       renaming the old pattern to...
+       (aarch64_sve_punpk<perm_hilo>_<mode>): ...this.  Only define
+       unsigned packs.
+       (vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a
+       define_expand, renaming the old pattern to...
+       (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this.
+       (*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete.
+       (vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into
+       account when deciding which SVE instruction the optab should use.
+       (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise.
+ 2018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM)
+       (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM)
+       (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM)
+       (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants.
+       (tlsdesc_small_<mode>): Turn a define_expand and use
+       tlsdesc_small_sve_<mode> for SVE.  Rename original define_insn to...
+       (tlsdesc_small_advsimd_<mode>): ...this.
+       (tlsdesc_small_sve_<mode>): New pattern.
+ 2018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART)
+       (UNSPEC_UMUL_HIGHPART): New constants.
+       (MUL_HIGHPART): New int iteraor.
+       (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART.
+       * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New
+       define_expand.
+       (*<su>mul<mode>3_highpart): New define_insn.
  
-       PR middle-end/69553
-       * fold-const.c (operand_equal_p): Properly compare offsets for
-       IMAGPART_EXPR and ARRAY_REF.
+ 2018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-02-18  Nick Clifton  <nickc@redhat.com>
+       PR lto/84805
+       * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
+       incomplete types.
  
-       PR target/62254
-       PR target/69610
-       * config/arm/arm.c (arm_option_override_internal): Disable
-       interworking if the target does not support thumb instructions.
-       (arm_reload_in_hi): Handle the case where a register to register
-       move needs reloading because there is no simple pattern to handle
-       it.
-       (arm_reload_out_hi): Likewise.
+ 2018-03-13  Martin Liska  <mliska@suse.cz>
  
- 2016-02-18  Richard Biener  <rguenther@suse.de>
+       PR ipa/84658.
+       * (sem_item_optimizer::sem_item_optimizer): Initialize new
+       vector.
+       (sem_item_optimizer::~sem_item_optimizer): Release it.
+       (sem_item_optimizer::merge_classes): Register variable aliases.
+       (sem_item_optimizer::fixup_pt_set): New function.
+       (sem_item_optimizer::fixup_points_to_sets): Likewise.
+       * ipa-icf.h: Declare new variables and functions.
  
-       PR middle-end/69854
-       * match.pd: Don't use fold_binary or fold_unary for folding
-       constants.
+ 2018-03-13  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/84834
+       * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of
+       integer_pow2p@2 and test integer_pow2p in condition.
+       (A < 0 ? C : 0): Similarly for @1.
  
-       PR c++/69850
-       * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
-       on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
-       * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
-       warn on gimple_no_warning_p statements.
+       PR middle-end/84831
+       * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p)
+       characters starting at p contain '\0' character, don't look beyond
+       that.
  
- 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
+       PR target/84827
+       * config/i386/i386.md (round<mode>2): For 387 fancy math, disable
+       pattern if -ftrapping-math -fno-fp-int-builtin-inexact.
  
-       * doc/extend.texi (C++ Attributes): Correct description of
-       warn_unused type attribute.
+       PR target/84828
+       * reg-stack.c (change_stack): Change update_end var from int to
+       rtx_insn *, if non-NULL don't update just BB_END (current_block), but
+       also call set_block_for_insn on the newly added insns and rescan.
  
- 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       PR target/84786
+       * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v
+       on the last operand.
  
-       * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
-       correct instruction.
+       PR c++/84704
+       * tree.c (stabilize_reference_1): Return save_expr (e) for
+       STATEMENT_LIST even if it doesn't have side-effects.
  
- 2016-02-17  Richard Biener  <rguenther@suse.de>
+ 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
  
-       PR rtl-optimization/69609
-       * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
-       (find_traces_1_round): When ending a trace update cached priority
-       of successors.
-       (bb_to_key): Use cached priority when available.
-       (copy_bb): Initialize cached priority.
-       (reorder_basic_blocks_software_trace_cache): Likewise.
+       * doc/invoke.texi (-mclflushopt): Fix spelling of option.
  
- 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-03-12  Renlin Li  <renlin.li@arm.com>
  
-       PR target/69161
-       * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
-       New predicate.
-       (aarch64_comparison_operator): Break overly long line into two.
-       (aarch64_comparison_operation): Likewise.
-       * config/aarch64/aarch64.md (cstorecc4): Use
-       aarch64_comparison_operator_mode instead of
-       aarch64_comparison_operator.
-       (cstore<mode>4): Likewise.
-       (aarch64_cstore<mode>): Likewise.
-       (*cstoresi_insn_uxtw): Likewise.
-       (cstore<mode>_neg): Likewise.
-       (*cstoresi_neg_uxtw): Likewise.
- 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/69161
-       * config/arm/predicates.md (arm_comparison_operator_mode):
-       New predicate.
-       * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
-       instead of arm_comparison_operator.
-       (*mov_negscc): Likewise.
-       (*mov_notscc): Likewise.
-       * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
-       (*thumb2_mov_negscc): Likewise.
-       (*thumb2_mov_negscc_strict_it): Likewise.
-       (*thumb2_mov_notscc): Likewise.
-       (*thumb2_mov_notscc_strict_it): Likewise.
- 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
-       Add missing return.
- 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
-       * config/visium/visium.c (machine_libfunc_index): New enum.
-       (machine_libfuncs): New structure.
-       (visium_libfuncs): New static variable.
-       (TARGET_INIT_LIBFUNCS): Define to...
-       (visium_init_libfuncs): ...this.  New function.
-       (expand_block_move_4): Use the appropriate libfunc.
-       (expand_block_move_2): Likewise.
-       (expand_block_move_1): Likewise.
-       (expand_block_set_4): Likewise.
-       (expand_block_set_2): Likewise.
-       (expand_block_set_1): Likewise.
-       (visium_trampoline_init): Likewise.
- 2016-02-17  Nick Clifton  <nickc@redhat.com>
-       * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
-       TI's devices.csv file as of March 2016.
- 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
-       PR Target/48344
-       * opts-global.c (handle_common_deferred_options): Introduce and
-       initialize two global variables to remember command-line options
-       specifying a stack-limiting register.
-       * opts.h: Add extern declarations of the two new global variables.
-       * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
-       variable based on the values of the two new global variables.
- 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
-       PR c/69835
-       * common.opt (Wnonnull-compare): New warning.
-       * doc/invoke.texi (-Wnonnull): Remove text about comparison
-       of arguments against NULL.
-       (-Wnonnull-compare): Document.
-       * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
-       * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
-       * passes.def (pass_warn_nonnull_compare): Add.
-       * gimple-ssa-nonnull-compare.c: New file.
- 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.c (cortexa57_tunings): Remove
-       AARCH64_EXTRA_TUNE_RECIP_SQRT.
- 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
-       reciprocal sqrt for -mlow-precision-recip-sqrt.
- 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
-           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
-       always use lane loads to construct non-constant vectors.
- 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
-       * config/aarch64/aarch64.md
-       (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
-       constraints for operand 3.
-       (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
- 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
-           Richard Biener  <rguenther@suse.de>
+       * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to
+       aarch64_output_scalar_simd_mov_immediate.
  
-       PR tree-optimization/69820
-       * tree-vect-patterns.c (type_conversion_p): Return false if
-       *orig_type is unsigned single precision or boolean.
-       (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
-       Formatting fix.
- 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/69764
-       PR rtl-optimization/69771
-       * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
-       op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
- 2016-02-16  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69776
-       * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
-       sets from caller.
-       (indirect_refs_may_alias_p): Likewise.
-       (refs_may_alias_p_1): Pass alias sets as from ao_ref.
-       * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
-       according to tbaa_p.
-       * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
-       (optimize_stmt): For redundant store discovery do not allow tbaa.
- 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
-       PR tree-optimization/69714
-       * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
-       Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
- 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
-       * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
-       (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
-       * config/arc/arc.c (arc_init): Check FPU options.
-       (get_arc_condition_code): Handle new CC_FPU* modes.
-       (arc_select_cc_mode): Likewise.
-       (arc_conditional_register_usage): Allow 64 bit datum into even-odd
-       register pair only. Allow access for ARCv2 accumulator.
-       (gen_compare_reg): Whenever we have FPU support use FPU compare
-       instructions.
-       (arc_reorg): Don't generate brcc insns when FPU compare
-       instructions are involved.
-       * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
-       (TARGET_OPTFPE): Add condition when ARC EM can use optimized
-       floating point emulation.
-       (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
-       (REVERSE_CONDITION): Add new CC_FPU* modes.
-       (TARGET_FP_SP_BASE): Define.
-       (TARGET_FP_DP_BASE): Likewise.
-       (TARGET_FP_SP_FUSED): Likewise.
-       (TARGET_FP_DP_FUSED): Likewise.
-       (TARGET_FP_SP_CONV): Likewise.
-       (TARGET_FP_DP_CONV): Likewise.
-       (TARGET_FP_SP_SQRT): Likewise.
-       (TARGET_FP_DP_SQRT): Likewise.
-       (TARGET_FP_DP_AX): Likewise.
-       * config/arc/arc.md (ARCV2_ACC): New constant.
-       (type): New fpu type attribute.
-       (SDF): Conditional iterator.
-       (cstore<mode>, cbranch<mode>): Change expand condition.
-       (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
-       handles FPU/FPX cases as well.
-       * config/arc/arc.opt (mfpu): New option.
-       * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
-       Renamed.
-       (adddf3, muldf3, subdf3): Removed.
-       * config/arc/predicates.md (proper_comparison_operator): Recognize
-       CC_FPU* modes.
-       * config/arc/fpu.md: New file.
-       * doc/invoke.texi (ARC Options): Document mfpu option.
- 2016-02-16  Richard Biener  <rguenther@suse.de>
-       PR rtl-optimization/69291
-       * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
-       noce_operand_ok check.
- 2016-02-16  Tom de Vries  <tom@codesourcery.com>
-       PR lto/67709
-       * omp-low.c (simd_clone_create): Remove call to
-       symtab->call_cgraph_insertion_hooks.
- 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/69802
-       * tree-ssa-reassoc.c (update_range_test): If op is
-       SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
-       op == 1 test of precision 1 integral op, otherwise handle
-       that case as op itself.  Fix up formatting.
-       (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
-       up formatting.
- 2016-02-16  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69586
-       * tree-vrp.c (register_edge_assert_for_2): Handle all integral
-       types for conversion sources.
- 2016-02-16  Richard Biener  <rguenther@suse.de>
-       PR middle-end/69801
-       * fold-const.c (operand_equal_p): For COND_EXPR zero operand
-       mask OEP_ADDRESS_OF.
- 2016-02-16  Alan Modra  <amodra@gmail.com>
-       PR target/68973
-       * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
-       (p8_mtvsrd_df, p8_mtvsrd_sf): New.
-       (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
-       (p8_mtvsrwz): New.
-       (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
-       (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
-       (p8_fmrgow_<mode>): Likewise.
-       (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
-       changes.
-       (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
-       (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
-       to use movdi_internal64.  Remove op0_di.
-       * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
- 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
-       Add support for the FCCMP insn types
-       * config/aarch64/aarch64.md (fccmp): Change insn type.
-       (fccmpe): Likewise.
-       * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
-       * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
-       * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
-       * config/arm/xgene1.md (xgene1_fcmp): Likewise.
-       * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
-       * config/arm/types.md (fccmps): Add new insn type.
-       (fccmpd): Likewise.
- 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * alias.c (get_alias_set): Fix a typo in comment.
- 2016-02-15  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69595
-       * match.pd: Complete range test simplification to true.
- 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
-       PR rtl-optimization/69648
-       * lra-constraints.c (update_ebb_live_info): Don't remove sets of
-       pic_offset_table_rtx.
-       PR rtl-optimization/69752
-       * ira.c (update_equiv_regs): When looking for more than a single SET,
-       also take other side effects into account.
- 2016-02-15  Marcin KoÅ›cielnicki  <koriakin@0x04.net>
+ 2018-03-12  Martin Sebor  <msebor@redhat.com>
  
-       * config/s390/s390.c (s390_function_profiler): Add a new sequence
-       for z900+ CPUs in 31-bit mode.
+       PR tree-optimization/83456
+       * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning
+       for perfectly overlapping calls to memcpy.
+       (gimple_fold_builtin_memory_chk): Same.
+       (gimple_fold_builtin_strcpy): Handle no-warning.
+       (gimple_fold_builtin_stxcpy_chk): Same.
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning.
  
- 2016-02-15  Marcin KoÅ›cielnicki  <koriakin@0x04.net>
+ 2018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       * common/config/s390/s390-common.c (s390_supports_split_stack):
-       New function.
-       (TARGET_SUPPORTS_SPLIT_STACK): New macro.
-       * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
-       * config/s390/s390.c (struct machine_function): New field
-       split_stack_varargs_pointer.
-       (s390_register_info): Mark r12 as clobbered if it'll be used as temp
-       in s390_emit_prologue.
-       (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
-       vararg pointer.
-       (morestack_ref): New global.
-       (SPLIT_STACK_AVAILABLE): New macro.
-       (s390_expand_split_stack_prologue): New function.
-       (s390_live_on_entry): New function.
-       (s390_va_start): Use split-stack vararg pointer if appropriate.
-       (s390_asm_file_end): Emit the split-stack note sections.
-       (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
-       * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
-       (UNSPECV_SPLIT_STACK_CALL): New unspec.
-       (UNSPECV_SPLIT_STACK_DATA): New unspec.
-       (split_stack_prologue): New expand.
-       (split_stack_space_check): New expand.
-       (split_stack_data): New insn.
-       (split_stack_call): New expand.
-       (split_stack_call_*): New insn.
-       (split_stack_cond_call): New expand.
-       (split_stack_cond_call_*): New insn.
- 2016-02-15  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69783
-       * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
-       Add trivially correct cases.
- 2016-02-15  Tom de Vries  <tom@codesourcery.com>
-       PR lto/69655
-       * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
-       do_force_output.
-       * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
- 2016-02-15  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69776
-       * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
-       * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
-       indicate whether we can use TBAA to disambiguate against stores.
-       Use alias-set zero if not.
-       (visit_reference_op_store): Do not use TBAA when looking up
-       redundant stores.
-       * tree-ssa-pre.c (compute_avail): Use TBAA here.
-       (eliminate_dom_walker::before_dom_children): But not when looking
-       up redundant stores.
- 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
- 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
-       *  config/i386/znver1.md
-       (znver1_pop, znver1_pop_mem,
-       znver1_load_imov_double_store,
-       znver1_load_imov_direct_store,
-       znver1_load_imov_direct_load,
-       znver1_load_imov_double_load): Add new.
-       (znver1_insn, znver1_insn_load): Add icmov type.
-       (znver1_sseavx_fma,
-       znver1_sseavx_fma_load,
-       znver1_avx256_fma,
-       znver1_avx256_fma_load): Fix pipe usage.
- 2016-02-14  Alan Modra  <amodra@gmail.com>
-       PR target/68973
-       * reload.c (find_reloads_address_1): For pre/post-inc/dec
-       with an invalid hard reg, reload just the reg not the entire
-       pre/post-inc/dec address expression.
- 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/67260
-       * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
-       fixed R1_REG scratch reg.
-       (sibcall_value_pcrel_fdpic): Likewise.
- 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
-       PR target/67636
-       PR target/64345
-       * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
- 2016-02-12  Walter Lee  <walt@tilera.com>
-       * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
-       * config/tilegx/t-tilegx: Likewise.
- 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
-       PR other/69554
-       * diagnostic-show-locus.c (struct line_span): New struct.
-       (layout::get_first_line): Delete.
-       (layout::get_last_line): Delete.
-       (layout::get_num_line_spans): New member function.
-       (layout::get_line_span): Likewise.
-       (layout::print_heading_for_line_span_index_p): Likewise.
-       (layout::get_expanded_location): Likewise.
-       (layout::calculate_line_spans): Likewise.
-       (layout::m_first_line): Delete.
-       (layout::m_last_line): Delete.
-       (layout::m_line_spans): New field.
-       (layout::layout): Update comment.  Replace m_first_line and
-       m_last_line with m_line_spans, replacing their initialization
-       with a call to calculate_line_spans.
-       (diagnostic_show_locus): When printing source lines and
-       annotations, rather than looping over a single span
-       of lines, instead loop over each line_span within
-       the layout, with an inner loop over the lines within them.
-       Call the context's start_span callback when changing line spans.
-       * diagnostic.c (diagnostic_initialize): Initialize start_span.
-       (diagnostic_build_prefix): Break out the building of the location
-       part of the string into...
-       (diagnostic_get_location_text): ...this new function, rewriting
-       it from nested ternary expressions to a sequence of "if"
-       statements.
-       (default_diagnostic_start_span_fn): New function.
-       * diagnostic.h (diagnostic_start_span_fn): New typedef.
-       (diagnostic_context::start_span): New field.
-       (default_diagnostic_start_span_fn): New prototype.
- 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
-       PR driver/69779
-       * gcc.c (driver::finalize): Fix cleanup of "specs".
- 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
-       PR driver/69265
-       PR driver/69453
-       * gcc.c (driver::driver): Initialize m_option_suggestions.
-       (driver::~driver): Clean up m_option_suggestions.
-       (suggest_option): Convert to...
-       (driver::suggest_option): ...this, and split out into
-       driver::build_option_suggestions and find_closest_string.
-       (driver::build_option_suggestions): New function, from
-       first half of suggest_option.  Special-case
-       OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
-       the sanitizer_opts array.  For options of enum types, add the
-       various enum values to the candidate strings.
-       (driver::handle_unrecognized_options): Remove "const".
-       * gcc.h (driver::handle_unrecognized_options): Likewise.
-       (driver::build_option_suggestions): New decl.
-       (driver::suggest_option): New decl.
-       (driver::m_option_suggestions): New field.
-       * opts-common.c (add_misspelling_candidates): New function.
-       * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
-       and make non-static.
-       * opts.h (sanitizer_opts): New array decl.
-       (add_misspelling_candidates): New function decl.
-       * spellcheck.c (find_closest_string): New function.
-       * spellcheck.h (find_closest_string): New function decl.
- 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/69764
-       PR rtl-optimization/69771
-       * optabs.c (expand_binop_directly): For shift_optab_p, force
-       convert_modes with VOIDmode if xop1 has VOIDmode.
- 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
-       PR target/69729
-       * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
-       to correctly determine instrumentation thunks.
- 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
-       PR ipa/69241
-       * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
-       type by reference, force lhs on the call.
-       PR ipa/68672
-       * ipa-split.c (split_function): Don't compute/use main_part_return_p.
-       Compute retval and retbnd early in all cases if split_part_return_p
-       and return_bb is not EXIT.  Remove all clobber stmts and reset
-       all debug stmts that refer to SSA_NAMEs defined in split part,
-       except if it is retval, in that case replace the old retval with the
-       lhs of the call to the split part.
- 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       revert:
-       2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/66726
-       * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
-       whose result is used in PHI.
-       (maybe_optimize_range_tests): Likewise.
-       (final_range_test_p): Likweise.
- 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
-       PR middle-end/66726
-       * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
-       whose result is used in PHI.
-       (maybe_optimize_range_tests): Likewise.
-       (final_range_test_p): Likweise.
- 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
-       * cgraph.c: Spelling fixes - behaviour -> behavior and
-       neighbour -> neighbor.
-       * target.def: Likewise.
-       * sel-sched.c: Likewise.
-       * config/mips/mips.c: Likewise.
-       * config/arc/arc.md: Likewise.
-       * config/arm/cortex-a57.md: Likewise.
-       * config/arm/arm.c: Likewise.
-       * config/arm/neon.md: Likewise.
-       * config/arm/arm-c.c: Likewise.
-       * config/vms/vms-c.c: Likewise.
-       * config/s390/s390.c: Likewise.
-       * config/i386/znver1.md: Likewise.
-       * config/i386/i386.c: Likewise.
-       * config/ia64/hpux-unix2003.h: Likewise.
-       * config/msp430/msp430.md: Likewise.
-       * config/rx/rx.c: Likewise.
-       * config/rx/rx.md: Likewise.
-       * config/aarch64/aarch64-simd.md: Likewise.
-       * config/aarch64/aarch64.c: Likewise.
-       * config/nvptx/nvptx.c: Likewise.
-       * config/bfin/bfin.c: Likewise.
-       * config/cris/cris.opt: Likewise.
-       * config/rs6000/rs6000.c: Likewise.
-       * target.h: Likewise.
-       * spellcheck.c: Likewise.
-       * ira-build.c: Likewise.
-       * tree-inline.c: Likewise.
-       * builtins.c: Likewise.
-       * lra-constraints.c: Likewise.
-       * explow.c: Likewise.
-       * hwint.h: Likewise.
-       * targhooks.c: Likewise.
-       * tree-vect-data-refs.c: Likewise.
-       * expr.c: Likewise.
-       * doc/tm.texi: Likewise.
-       * doc/extend.texi: Likewise.
-       * doc/install.texi: Likewise.
-       * doc/md.texi: Likewise.
-       * tree-ssa-tail-merge.c: Likewise.
-       * sched-int.h: Likewise.
-       * match.pd: Likewise.
-       * sched-ebb.c: Likewise.
-       * target.def (omit_struct_return_reg): Likewise.
-       * gimple-ssa-isolate-paths.c: Likewise.
-       (find_implicit_erroneous_behaviour): Renamed to...
-       (find_implicit_erroneous_behavior): ... this.
-       (find_explicit_erroneous_behaviour): Renamed to...
-       (find_explicit_erroneous_behavior): ... this.
-       (gimple_ssa_isolate_erroneous_paths): Adjust caller.
- 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named"
+       parameter.  Use it for SFmode.
+       (rs6000_function_arg_advance_1): Adjust.
+       (rs6000_function_arg): Adjust.
+       (rs6000_gimplify_va_arg): Pass false for that new parameter.
  
-       PR rtl-optimization/64682
-       PR rtl-optimization/69567
-       PR rtl-optimization/69737
-       * combine.c (distribute_notes) <REG_DEAD>: If the register is set
-       in I2 as well, just lose it.
+ 2018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR rtl-optimization/84169
+       PR rtl-optimization/84780
+       * combine.c (can_combine_p): Check for a 2-insn combination whether
+       the destination register is used between the two insns, too.
  
-       * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
-       New variable.
-       (aarch64_last_printed_tune_string): Likewise.
-       (aarch64_declare_function_name): Only output .arch assembler
-       directive if it will be different from the previously output
-       directive.  Same for .tune comment but only if -dA is set.
-       (aarch64_start_file): New function.
-       (TARGET_ASM_FILE_START): Define.
+ 2018-03-12  Richard Biener  <rguenther@suse.de>
  
- 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
+       PR tree-optimization/84803
+       * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything
+       for refs DR analysis didn't process.
  
-       PR plugins/69758
-       * Makefile.in (PLUGIN_HEADERS): Add params.list.
+ 2018-03-12  Richard Biener  <rguenther@suse.de>
  
- 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/84777
+       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For
+       force-vectorize loops ignore whether we are optimizing for size.
  
-       PR target/65313
-       * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
-       -Wmaybe-uninitialized warning.
+ 2018-03-12  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
+       * config/nds32/nds32.c (nds32_md_asm_adjust): New function.
+       (TARGET_MD_ASM_ADJUST): Define.
  
-       PR target/69713
-       * config/sh/sh.md (casesi_worker_0): Add T_REG use.
+ 2018-03-12  Monk Chiang  <sh.chiang04@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-02-11  Richard Biener  <rguenther@suse.de>
+       * config/nds32/nds32.c (nds32_compute_stack_frame,
+       nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple,
+       nds32_emit_stack_v3push, nds32_emit_stack_v3pop,
+       nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue,
+       nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine.
+       * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM,
+       NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New.
+       * config/nds32/nds32.md (prologue, epilogue): Use macro
+       NDS32_V3PUSH_AVAILABLE_P to do checking.
  
-       PR rtl-optimization/69291
-       * ifcvt.c (noce_try_store_flag_constants): Do not allow
-       subexpressions affected by changing the result.
- 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
-       PR target/69148
-       * lra-constraints.c (curr_insn_transform): Find in/out operands
-       for secondary memory moves.  Update dups.
- 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR tree-optimization/69652
-       * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
-       to nested loop, did source re-formatting, skip debug statements,
-       add check on statement with volatile operand, remove dead scalar
-       statements.
- 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
-           Patrick Palka  <ppalka@gcc.gnu.org>
-       PR ipa/69241
-       PR c++/69649
-       * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
-       calls if the return type is TREE_ADDRESSABLE.
-       * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
-       * ipa-split.c (split_function): Fix doubled "we" in comment.
-       Use void return type for the split part even if
-       !split_point->split_part_set_retval.
- 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/68021
-       * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
-       when computing the value of biv cand by itself.
- 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
-       (cortexa57_tunings): Likewise.
-       (cortexa72_tunings): Likewise.
-       (arch_macro_fusion_pair_p): Add support for AES fusion.
-       * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
-       * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
-       Allow virtual registers before reload so early scheduling works.
-       * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
-       correct latency and pipeline.
-       (cortex_a57_crypto_complex): Likewise.
-       (cortex_a57_crypto_xor): Likewise.
-       (define_bypass): Add AES bypass.
- 2016-02-10  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69726
-       * passes.def: Add DCE pass before late uninit.
-       * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
-       really fixup if-conversions job.
- 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
-       (arm_cortex_a57_tune): Likewise.
-       (aarch_macro_fusion_pair_p): Add support for AES fusion.
-       * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
- 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
-       * timevar.def (TV_PHASE_DBGINFO): Delete.
-       (TV_PHASE_CHECK_DBGINFO): Likewise.
-       * varpool.c (varpool_node::assemble_decl): Do not change timevar.
- 2016-02-10  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69719
-       * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
-       Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
- 2016-02-09  Andrew Pinski  <apinski@cavium.com>
-       PR tree-opt/69282
-       * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
-       get_vcond_mask_icode returns false.
- 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
-       PR target/68404
-       * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
-       an ADDIS that adds a pointer to a large constant that sets the
-       upper16 bits with a load operation.
- 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
-       PR target/68532
-       * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
-       order.
-       * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
-       endian.
-       (vzipq_s16): Likewise.
-       (vzipq_s32): Likewise.
-       (vzipq_f32): Likewise.
-       (vzipq_u8): Likewise.
-       (vzipq_u16): Likewise.
-       (vzipq_u32): Likewise.
-       (vzipq_p8): Likewise.
-       (vzipq_p16): Likewise.
- 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
-       PR target/68532
-       * config/arm/arm.c (neon_endian_lane_map): New function.
-       (neon_vector_pair_endian_lane_map): New function.
-       (arm_evpc_neon_vuzp): Allow for big endian lane order.
-       * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
-       endian.
-       (vuzpq_s16): Likewise.
-       (vuzpq_s32): Likewise.
-       (vuzpq_f32): Likewise.
-       (vuzpq_u8): Likewise.
-       (vuzpq_u16): Likewise.
-       (vuzpq_u32): Likewise.
-       (vuzpq_p8): Likewise.
-       (vuzpq_p16): Likewise.
- 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
-       PR target/69634
-       * regstat.c (regstat_bb_compute_calls_crossed): Disregard
-       debug insns.
+ 2018-03-11  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/58150
+       * dwarf2out.c (gen_enumeration_type_die): Don't guard adding
+       DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf,
+       but on TYPE_SIZE.  Don't do anything for ENUM_IS_OPAQUE if not creating
+       a new die.  Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE.  Guard
+       addition of most attributes on !orig_type_die or the attribute not
+       being present already.  Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE.
  
- 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-03-11  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
-       truncate const_int operand 1 to QImode.
+       * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define
+       __NDS32_VH__ macro.
+       * config/nds32/nds32.opt (mvh): New option.
  
- 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-03-11  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
-       corresponding to an abnormal edge.
+       * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare
+       function.
+       * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function.
+       * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its
+       definition.
  
- 2016-02-09  Tom de Vries  <tom@codesourcery.com>
+ 2018-03-11  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
  
-       PR tree-optimization/69599
-       * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
+       * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New
        function.
-       (find_func_aliases_for_builtin_call, find_func_clobbers)
-       (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
-       partition.
+       * config/nds32/nds32-multiple.md (strlensi): New pattern.
+       * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function.
+ 2018-03-11  Monk Chiang  <sh.chiang04@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB,
+       UNSPEC_FFMISM and UNSPEC_FLMISM.
+       * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description
+       for ffb, ffmism and flmism.
+       * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern.
+       (unspec_ffmism): Ditto.
+       (unspec_flmism): Ditto.
+       (nds32_expand_builtin_impl): Check if string extension is available.
+       * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB,
+       NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM.
+ 2018-03-10  Vladimir Makarov  <vmakarov@redhat.com>
+       Reverting patch:
+       2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
+       PR target/83712
+       * lra-assigns.c (assign_by_spills): Return a flag of reload
+       assignment failure.  Do not process the reload assignment
+       failures.  Do not spill other reload pseudos if they has the same
+       reg class.
+       (lra_assign): Add a return arg.  Set up from the result of
+       assign_by_spills call.
+       (find_reload_regno_insns, lra_split_hard_reg_for): New functions.
+       * lra-constraints.c (split_reg): Add a new arg.  Use it instead of
+       usage_insns if it is not NULL.
+       (spill_hard_reg_in_range): New function.
+       (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
+       * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
+       function prototypes.
+       (lra_assign): Change prototype.
+       * lra.c (lra): Add code to deal with fails by splitting hard reg
+       live ranges.
+ 2018-03-10  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/84807
+       * config/i386/i386.opt: Replace Enforcment with Enforcement.
+ 2018-03-10  Alexandre Oliva  <aoliva@redhat.com>
+       PR debug/84620
+       * dwarf2out.h (dw_val_class): Add dw_val_class_symview.
+       (dw_val_node): Add val_symbolic_view.
+       * dwarf2out.c (dw_line_info_table): Add symviews_since_reset.
+       (symview_upper_bound): New.
+       (new_line_info_table): Initialize symviews_since_reset.
+       (dwarf2out_source_line): Count symviews_since_reset and set
+       symview_upper_bound.
+       (dw_val_equal_p): Handle symview.
+       (add_AT_symview): New.
+       (print_dw_val): Handle symview.
+       (attr_checksum, attr_checksum_ordered): Likewise.
+       (same_dw_val_p, size_of_die): Likewise.
+       (value_format, output_die): Likewise.
+       (add_high_low_attributes): Use add_AT_symview for entry_view.
+       (dwarf2out_finish): Reset symview_upper_bound, clear
+       zero_view_p.
+ 2018-03-09  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/83969
+       * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype.
+       Add strict argument and use it.
+       (rs6000_split_multireg_move): Update for new strict argument.
+       (mem_operand_gpr): Disallow all non-offsettable addresses.
+       * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint.
+ 2018-03-09  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84772
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp
+       temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY.
+       * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise.
+       PR c++/84767
+       * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped
+       decl, use remap_type if we want to use the type.
+ 2018-03-09  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/84526
+       * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
+       Remove dead code.
+       (builtin_access::generic_overlap): Be prepared to handle non-array
+       base objects.
+ 2018-03-09  Alexandre Oliva  <aoliva@redhat.com>
+       PR rtl-optimization/84682
+       * lra-constraints.c (process_address_1): Check is_address flag
+       for address constraints.
+       (process_alt_operands): Likewise.
+       * lra.c (lra_set_insn_recog_data): Pass asm operand locs to
+       preprocess_constraints.
+       * recog.h (preprocess_constraints): Add oploc parameter.
+       Adjust callers.
+       * recog.c (preprocess_constraints): Test address_operand for
+       CT_ADDRESS constraints.
+ 2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
+       PR target/83712
+       * lra-assigns.c (assign_by_spills): Return a flag of reload
+       assignment failure.  Do not process the reload assignment
+       failures.  Do not spill other reload pseudos if they has the same
+       reg class.
+       (lra_assign): Add a return arg.  Set up from the result of
+       assign_by_spills call.
+       (find_reload_regno_insns, lra_split_hard_reg_for): New functions.
+       * lra-constraints.c (split_reg): Add a new arg.  Use it instead of
+       usage_insns if it is not NULL.
+       (spill_hard_reg_in_range): New function.
+       (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
+       * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
+       function prototypes.
+       (lra_assign): Change prototype.
+       * lra.c (lra): Add code to deal with fails by splitting hard reg
+       live ranges.
+ 2018-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR target/83193
+       * common/config/arm/arm-common.c (arm_parse_arch_option_name):
+       Accept complain bool parameter.  Only emit errors if it is true.
+       (arm_parse_cpu_option_name): Likewise.
+       (arm_target_thumb_only): Adjust callers of the above.
+       * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust
+       prototype to take a default true bool parameter.
+       (arm_parse_arch_option_name): Likewise.
+ 2018-03-09  David Malcolm  <dmalcolm@redhat.com>
+           Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+       PR jit/64089
+       PR jit/84288
+       * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New.
+       * configure: Regenerate.
+       * configure.ac ("linker --version-script option"): New.
+       ("linker soname option"): New.
+ 2018-03-09  Richard Biener  <rguenther@suse.de>
  
- 2016-02-09  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84775
+       * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink
+       immediate uses of predicate stmts and mark them modified.
  
-       PR tree-optimization/69715
-       * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
-       LHS on calls as non-rewritable.
+       Revert
+       PR tree-optimization/84178
+       * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
+       to caller.
+       (version_loop_for_if_conversion): Delay update_ssa call.
+       (tree_if_conversion): Delay update_ssa until after predicate
+       insertion.
  
- 2016-02-09  Tom de Vries  <tom@codesourcery.com>
+ 2018-03-09  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR lto/69707
-       * lto-wrapper.c (append_diag_options): New function.
-       (compile_offload_image): Call append_diag_options.
+       PR target/84763
+       * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation
+       when the function accesses prior frames.
  
- 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-03-08  Jakub Jelinek  <jakub@redhat.com>
  
-       PR other/69722
-       * doc/extend.texi (Flag Output Operands): Correct sectioning.
-       Minor copy-edit to fix verb tenses.
+       PR debug/84456
+       * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call
+       gen_llsym, otherwise call maybe_gen_llsym.
  
- 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
+       PR inline-asm/84742
+       * recog.c (asm_operand_ok): Return 0 if multi-character constraint
+       has ',' character inside of it.
  
-       PR tree-optimization/69209
-       * ipa-split.c (split_function): If split part is not
-       returning retval, retval has gimple type but is not
-       gimple value, force it into a SSA_NAME first.
+ 2018-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
- 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
+       PR target/84748
+       * config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
+       as clobbering CC_REGNUM.
  
-       * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
-       outdated section.
+ 2018-03-08  Richard Biener  <rguenther@suse.de>
  
- 2016-02-08  Jason Merrill  <jason@redhat.com>
+       PR middle-end/84552
+       * tree-scalar-evolution.c: Include tree-into-ssa.h.
+       (follow_copies_to_constant): Do not follow SSA names registered
+       for update.
  
-       PR c++/69631
-       * convert.c (convert_to_integer_1): Check dofold on truncation
-       distribution.
-       (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
-       (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
-       Rename from *_nofold.
-       * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
-       (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
+ 2018-03-08  Richard Biener  <rguenther@suse.de>
  
- 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
+       PR tree-optimization/84178
+       * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
+       to caller.
+       (version_loop_for_if_conversion): Delay update_ssa call.
+       (tree_if_conversion): Delay update_ssa until after predicate
+       insertion.
  
-       PR target/60410
-       * tree.c (build_common_tree_nodes): Remove short_double argument.
-       All callers changed.
-       * tree.h (build_common_tree_nodes): Adjust declaration.
-       * doc/invoke.texi (-fshort-double): Remove documentation.
-       * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
-       MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
-       * lto-wrapper.c (merge_and_complain, append_compiler_options)
-       (append_linker_options): Don't handle OPT_fshort_double.
+ 2018-03-08  David Malcolm  <dmalcolm@redhat.com>
  
-       PR rtl-optimization/68730
-       * lra-remat.c (insn_to_cand_activation): New static variable.
-       (lra_remat): Allocate and free it.
-       (create_cand): New arg activation. Initialize a field in
-       insn_to_cand_activation if it is nonnull.
-       (create_cands): Pass the activation insn to create_cand when making
-       a candidate involving an output reload.  Reorganize code a little.
-       (do_remat): Keep track of active status of candidates in a separate
-       bitmap.
+       PR tree-optimization/84178
+       * tree-if-conv.c (release_bb_predicate): Remove the
+       the assertion that the stmts have NULL use_ops.
+       Discard the statements, asserting that they haven't
+       yet been added to a BB.
  
- 2016-02-08  Richard Biener  <rguenther@suse.de>
+ 2018-03-08  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/69719
-       * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
-       Properly use absolute of the difference of the two offsets to
-       compare or adjust the segment length.
+       PR tree-optimization/84746
+       * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL.
+       (phi_translate): Pass in destination ANTIC_OUT set.
+       (phi_translate_1): Likewise.  For a simplified result lookup
+       a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets.
+       (phi_translate_set): Adjust.
+       (do_pre_regular_insertion): Likewise.
+       (do_pre_partial_partial_insertion): Likewise.
  
- 2016-02-08  Richard Biener  <rguenther@suse.de>
-           Jeff Law  <law@redhat.com>
+ 2018-03-08  Martin Liska  <mliska@suse.cz>
  
-       PR target/68273
-       * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
-       types for anonymous SSA names.
+       PR gcov-profile/84735
+       * doc/gcov.texi: Document usage of profile files.
+       * gcov-io.h: Document changes in the format.
  
- 2016-02-08   Richard Biener  <rguenther@suse.de>
+ 2018-03-08  Alexandre Oliva  <aoliva@redhat.com>
  
-       PR rtl-optimization/69274
-       * ira.c (ira_setup_alts): Do not change recog_data.operand order.
+       PR debug/84404
+       PR debug/84408
+       * dwarf2out.c (struct dw_line_info_table): Update comments for
+       view == -1.
+       (FORCE_RESET_NEXT_VIEW): New.
+       (FORCE_RESETTING_VIEW_P): New.
+       (RESETTING_VIEW_P): Check for -1 too.
+       (ZERO_VIEW_P): Likewise.
+       (new_line_info_table): Force-reset next view.
+       (dwarf2out_begin_function): Likewise.
+       (dwarf2out_source_line): Simplify zero_view_p initialization.
+       Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
+       view directly.  Omit view when omitting .loc at line 0.
  
- 2016-02-08  Jeff Law  <law@redhat.com>
+ 2018-03-08  Jakub Jelinek  <jakub@redhat.com>
  
-       PR tree-optimization/65917
-       * tree-ssa-dom.c (record_temporary_equivalences): Record both
-       equivalences from if (x == y) style conditionals.
-       (loop_depth_of_name): Remove.
-       (record_equality): Remove loop depth check.
-       * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
-       (const_and_copies::record_const_or_copy_raw): New member function.
-       * tree-ssa-scopedtables.c
-       (const_and_copies::record_const_or_copy_raw): New, factored out of
-       (const_and_copies::record_const_or_copy): Call new member function.
+       PR tree-optimization/84740
+       * tree-switch-conversion.c (process_switch): Call build_constructors
+       only if info.phi_count is non-zero.
+       PR tree-optimization/84739
+       * tree-tailcall.c (find_tail_calls): Check call arguments against
+       DECL_ARGUMENTS (current_function_decl) rather than
+       DECL_ARGUMENTS (func) when checking for tail recursion.
+ 2018-03-07  Jakub Jelinek  <jakub@redhat.com>
+       * doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
+       Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
+       Volker Reichelt's entry and add entries for people that perform
+       GCC fuzzy testing and report numerous bugs.
+ 2018-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-02-05  Jeff Law  <law@redhat.com>
+       PR target/82411
+       * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
+       readonly data in sdata, if that is disabled.
+       * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document
+       -mreadonly-in-sdata option.
+ 2018-03-07  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/84468
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
+       basic block when looking for nul assignment.
+ 2018-03-07  Eric Botcazou  <ebotcazou@adacore.com>
+       PR target/84277
+       * except.h (output_function_exception_table): Adjust prototype.
+       * except.c (output_function_exception_table): Remove FNNAME parameter
+       and add SECTION parameter.  Ouput one part of the table at a time.
+       * final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
+       the first part of the exception table and emit unwind directives.
+       * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
+       (i386_pe_seh_cold_init): Likewise.
+       * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
+       (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
+       * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
+       (ix86_output_call_insn): Emit a nop in one more case for SEH.
+       * config/i386/winnt.c: Include except.h.
+       (struct seh_frame_state): Add reg_offset, after_prologue and
+       in_cold_section fields.
+       (i386_pe_seh_end_prologue): Set seh->after_prologue.
+       (i386_pe_seh_cold_init): New function.
+       (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
+       to seh->in_cold_section.
+       (seh_emit_push): Record the offset of the push.
+       (seh_emit_save): Record the offet of the save.
+       (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
+       Test seh->after_prologue to disregard the epilogue.
+       (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
+       (i386_pe_end_cold_function): New function.
+ 2018-03-07  Jakub Jelinek  <jakub@redhat.com>
+       PR fortran/84565
+       * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
+       aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.
+       PR c++/84704
+       * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
+       on tmp_var.
+       * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
+       don't print names of DECL_NAMELESS DECL_IGNORED_P decls.
+       PR middle-end/84723
+       * multiple_target.c: Include tree-inline.h and intl.h.
+       (expand_target_clones): Diagnose and fail if node->definition and
+       !tree_versionable_function_p (node->decl).
+ 2018-03-06  John David Anglin  <danglin@gcc.gnu.org>
+       * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
+       sprint_ul.
+       (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
+       (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
+       * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.
+ 2018-03-06  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84710
+       * combine.c (try_combine): Use reg_or_subregno instead of handling
+       just paradoxical SUBREGs and REGs.
+ 2018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.c (arc_finalize_pic): Remove function.
+       (arc_must_save_register): We use single base PIC register, remove
+       checks to save/restore the PIC register.
+       (arc_expand_prologue): Likewise.
+       * config/arc/arc-protos.h (arc_set_default_type_attributes):
+       Remove.
+       (arc_verify_short): Likewise.
+       (arc_attr_type): Likewise.
+       * config/arc/arc.c (arc_set_default_type_attributes): Remove.
+       (walk_stores): Likewise.
+       (arc_address_cost): Make it static.
+       (arc_verify_short): Likewise.
+       (branch_dest): Likewise.
+       (arc_attr_type): Likewise.
+       * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
+       (TARGET_INSN_LENGTH_PARAMETERS): Likewise.
+       (arc_final_prescan_insn): Remove inserting the nops due to
+       hardware hazards.  It is done in reorg step.
+       (insn_length_variant_t): Remove.
+       (insn_length_parameters_t): Likewise.
+       (arc_insn_length_parameters): Likewise.
+       (arc_get_insn_variants): Likewise.
+       * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.
+ 2018-03-06  Jakub Jelinek  <jakub@redhat.com>
+       PR inline-asm/84683
+       * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
+       assertion failure.
+       PR tree-optimization/84687
+       * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
+       on new_node->decl.
+       * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.
+ 2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
+       Rename to ppc_speculation_barrier.
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
+       __builtin_ppc_speculation_barrier.
+ 2018-03-05  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84700
+       * combine.c (combine_simplify_rtx): Don't try to simplify if
+       if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
+       are equal to x.
+ 2018-03-05  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
+       to 32 bytes when compiling for POWER9.
+ 2018-03-05  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84564
+       * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
+       regparm >= 3 with no arg reg available also for calls with
+       flag_force_indirect_call.  Pass decl to ix86_function_regparm.
+       PR target/84524
+       * config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
+       orig,vex.
+       (*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.
+ 2018-03-05  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/84264
+       * config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.
+ 2018-03-05  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84486
+       * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
+       When inserting a __builtin_assume_aligned call set the LHS
+       SSA name alignment info accordingly.
+ 2018-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
+       PR tree-optimization/84114
+       * config/aarch64/aarch64.c (aarch64_reassociation_width)
+       Avoid reassociation of FLOAT_MODE addition.
+ 2018-03-05  Olga Makhotina  <olga.makhotina@intel.com>
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
+       OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
+       OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
+       (ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
+       * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
+       * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
+       and -mwbnoinvd.
+       * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
+       __builtin_ia32_wbinvd): New builtins.
+       (SPECIAL_ARGS2): New.
+       * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
+       (SPECIAL_ARGS2): New.
+       * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
+       (ix86_valid_target_attribute_inner_p): Ditto.
+       (ix86_init_mmx_sse_builtins): Add special_args2.
+       * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
+       TARGET_WBNOINVD_P): New.
+       * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
+       (define_insn "wbinvd", define_insn "wbnoinvd"): New.
+       * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
+       * config/i386/immintrin.h (_wbinvd): New intrinsic.
+       * config/i386/pconfigintrin.h: New file.
+       * config/i386/wbnoinvdintrin.h: Ditto.
+       * config/i386/x86intrin.h: Add headers pconfigintrin.h and
+       wbnoinvdintrin.h.
+       * doc/invoke.texi (-mpconfig, -mwbnoinvd): New.
+ 2018-03-05  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84670
+       * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
+       member.
+       (BB_VISITED_WITH_VISITED_SUCCS): New define.
+       (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
+       (compute_antic_aux): Only assert the number of values in ANTIC_IN
+       doesn't grow if all successors (recursively) were visited at least
+       once.
+ 2018-03-05  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84650
+       * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
+       if executed in the loop pipeline.
+ 2018-03-05  Sandra Loosemore  <sandra@codesourcery.com>
+       * doc/configfiles.texi (Configuration Files): Move info about
+       conditionalizing $target-protos.h to...
+       * doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
+       differs from $target-protos.h.
+ 2018-03-05  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
+       * config/nds32/nds32-multiple.md (setmemsi): Define.
+       * config/nds32/nds32-memory-manipulation.c
+       (nds32_gen_dup_4_byte_to_word_value): New.
+       (emit_setmem_word_loop): New.
+       (emit_setmem_byte_loop): New.
+       (nds32_expand_setmem_loop): New.
+       (nds32_expand_setmem_loop_v3m): New.
+       (nds32_expand_setmem_unroll): New.
+       (nds32_expand_setmem): New.
+ 2018-03-04  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-memory-manipulation.c
+       (nds32_emit_load_store): New.
+       (nds32_emit_post_inc_load_store): New.
+       (nds32_emit_mem_move): New.
+       (nds32_emit_mem_move_block): New.
+       (nds32_expand_movmemsi_loop_unknown_size): New.
+       (nds32_expand_movmemsi_loop_known_size): New.
+       (nds32_expand_movmemsi_loop): New.
+       (nds32_expand_movmemsi_unroll): New.
+       (nds32_expand_movmemqi): Rename ...
+       (nds32_expand_movmemsi): ... to this.
+       * config/nds32/nds32-multiple.md (movmemqi): Rename ...
+       (movmemsi): ... to this.
+       * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
+       (nds32_expand_movmemsi): ... to this.
+ 2018-03-04  Kito Cheng  <kito.cheng@gmail.com>
+           Monk Chiang  <sh.chiang04@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-protos.h
+       (nds32_expand_load_multiple): New arguments.
+       (nds32_expand_store_multiple): Ditto.
+       (nds32_valid_multiple_load_store): Rename ...
+       (nds32_valid_multiple_load_store_p): ... to this.
+       * config/nds32/nds32-memory-manipulation.c
+       (nds32_expand_load_multiple): Refine implementation.
+       (nds32_expand_store_multiple): Ditto.
+       * config/nds32/nds32-multiple.md
+       (load_multiple): Update nds32_expand_load_multiple interface.
+       (store_multiple): Update nds32_expand_store_multiple interface.
+       * config/nds32/nds32-predicates.c
+       (nds32_valid_multiple_load_store): Rename ...
+       (nds32_valid_multiple_load_store_p): ... to this and refine
+       implementation.
+       * config/nds32/predicates.md
+       (nds32_load_multiple_and_update_address_operation): New predicate.
+       (nds32_store_multiple_and_update_address_operation): New predicate.
+ 2018-03-04  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.md (type): Add load_multiple and store_multiple.
+       (combo): New attribute.
+       * config/nds32/nds32-multiple.md: Refine patterns with new attributes.
+ 2018-03-03  Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32.opt: Change -mcmodel= default value.
+ 2018-03-03  Kito Cheng  <kito.cheng@gmail.com>
+           Monk Chiang  <sh.chiang04@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/constants.md (unspec_element): New enum.
+       * config/nds32/constraints.md (Umw): New constraint.
+       * config/nds32/nds32-intrinsic.c: Add more builtin functions.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New.
+       (nds32_valid_smw_lwm_base_p): New.
+       (nds32_output_smw_single_word): New.
+       (nds32_output_lmw_single_word): New.
+       (nds32_expand_unaligned_load): New.
+       (nds32_expand_unaligned_store): New.
+       * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare.
+       (nds32_output_smw_single_word): Declare.
+       (nds32_output_lmw_single_word): Declare.
+       (nds32_expand_unaligned_load): Declare.
+       (nds32_expand_unaligned_store): Declare.
+       * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW,
+       NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW,
+       NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W,
+       NDS32_BUILTIN_UASTORE_DW.
+       * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New
+       predicate.
  
-       PR tree-optimization/68541
-       * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
-       (count_stmts_in_block): New function.
-       (poor_ifcvt_candidate_code): Likewise.
-       (is_feasible_trace): Add some heuristics to determine when path
-       splitting is profitable.
-       (find_block_to_duplicate_for_splitting_paths): Make sure the graph
-       is a diamond with a single exit.
+ 2018-03-03  Monk Chiang  <sh.chiang04@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-intrinsic.c
+       (nds32_expand_builtin_null_ftype_reg): Delete.
+       (nds32_expand_builtin_reg_ftype_imm): Ditto.
+       (nds32_expand_builtin_null_ftype_reg_imm): Ditto.
+       (nds32_read_argument): New.
+       (nds32_legitimize_target): Ditto.
+       (nds32_legitimize_argument): Ditto.
+       (nds32_check_constant_argument): Ditto.
+       (nds32_expand_unop_builtin): Ditto.
+       (nds32_expand_unopimm_builtin): Ditto.
+       (nds32_expand_binop_builtin): Ditto.
+       (nds32_builtin_decl_impl): Ditto.
+       (builtin_description): Ditto.
+       (nds32_expand_builtin_impl): Rewrite with new infrastructure.
+       (nds32_init_builtins_impl): Ditto.
+       * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
+       (nds32_builtin_decl): New.
+       * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
+       * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.
+ 2018-03-02  Jeff Law  <law@redhat.com>
+       * reorg.c (stop_search_p): Handle DEBUG_INSN.
+       (redundant_insn, fill_simple_delay_slots): Likewise.
+       (fill_slots_from_thread): Likewise.
+       * resource.c (mark_referenced_resources): Likewise.
+       (mark_set_resources, find_dead_or_set_registers): Likewise.
  
- 2016-02-05  Martin Sebor  <msebor@redhat.com>
+ 2018-03-02  Jakub Jelinek  <jakub@redhat.com>
  
-       PR c++/69662
-       * doc/invoke.texi: Update -Wplacement-new to take an optional
+       * substring-locations.h (format_warning_va): Formatting fix for
+       ATTRIBUTE_GCC_DIAG.
+       (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second
        argument.
+       (format_warning_n_va, format_warning_at_substring_n): New prototypes.
+       * substring-locations.c: Include intl.h.
+       (format_warning_va): Turned into small wrapper around
+       format_warning_n_va, renamed to ...
+       (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments,
+       rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID,
+       use ngettext.
+       (format_warning_at_substring_n): New function.
+       * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma.
+       (fmtwarn): Add ATTRIBUTE_GCC_DIAG.  Turn into a copy of
+       format_warning_at_substring with just a shorter name instead of
+       const function pointer.
+       (fmtwarn_n): New function.
+       (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where
+       appropriate, get rid of all the fmtstr temporaries, move conditionals
+       with G_() wrapped string literals directly into fmtwarn arguments,
+       cast dir.len to (int), formatting fixes.
+ 2018-03-02  Thomas Schwinge  <thomas@codesourcery.com>
+       * doc/invoke.texi: Remove "Cilk Plus" references.
+ 2018-03-02  Jakub Jelinek  <jakub@redhat.com>
+           Richard Biener  <rguenther@suse.de>
+       PR ipa/84628
+       * expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
+       for error or warning attributes if CALL_FROM_THUNK_P is set.
+       Formatting fixes.
  
- 2016-02-06  Richard Henderson  <rth@redhat.com>
+ 2018-03-02  Jakub Jelinek  <jakub@redhat.com>
  
-       PR c/69643
-       * tree.c (tree_nop_conversion_p): Do not strip casts into or
-       out of non-standard address spaces.
+       PR target/56540
+       * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine
+       __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY.
  
- 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
+       PR target/56540
+       * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine
+       __SIZEOF_{FPREG,FLOAT{80,128}}__ macros.
  
-       PR rtl-optimization/69691
-       * lra-eliminations.c (move_plus_up): Don't add the addend twice.
+       * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED
+       instead of -1U in last predictors element's probability member.
  
- 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
+ 2018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
-       * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
-       (*ieee128_mfvsrd_64bit): Likewise.
-       (*ieee128_mfvsrd_32bit): Likewise.
+       PR ipa/83983
+       * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
+       arguments if they are comparable.
  
- 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
+ 2018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/69369
-       Revert r232560:
-       2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
+       PR tree-optimization/84634
+       * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace
+       masks and masked_loop_p with a single loop_masks, making sure it's
+       null for bb vectorization.
  
-       * cgraphunit.c (cgraph_node::reset): Clear thunk info and
-       instrumented_version.
+ 2018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
+       (vect_analyze_data_ref_access): Use loop->safe_len rather than
+       loop->force_vectorize to check whether there is no alias.
  
-       * doc/invoke.texi (Optimize Options): In table of --param options
-       rename second occurrence of tracer-min-branch-ratio to
-       tracer-min-branch-probability, rename
-       tracer-min-branch-ratio-feedback to
-       tracer-min-branch-probability-feedback and clarify description,
-       rename sched-spec-state-edge-prob-cutoff to
-       sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
-       to selsched-insns-to-rename, rename lto-minpartition to
-       lto-min-partition, delete reorder-blocks-duplicate and
-       reorder-blocks-duplicate-feedback.
+ 2018-03-02  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR target/84614
+       * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New
+       prototypes.
+       * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function
+       comments.
+       (next_real_nondebug_insn, prev_real_nondebug_insn): New functions.
+       * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn
+       instead of a loop around prev_real_insn.
+       * combine.c (move_deaths): Use prev_real_nondebug_insn instead of
+       prev_real_insn.
+       PR inline-asm/84625
+       * config/i386/i386.c (ix86_print_operand): Use conditional
+       output_operand_lossage instead of gcc_assert if CONST_VECTOR is not
+       zero vector.
+ 2018-03-02  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84427
+       * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove.
+       (bitmap_set_subtract_values): Rewrite to handle multiple
+       exprs per value.
+       (clean): Likewise.
+       (prune_clobbered_mems): Likewise.
+       (phi_translate): Take edge instead of pred/phiblock.
+       (phi_translate_1): Likewise.
+       (phi_translate_set): Likewise.  Insert all translated
+       exprs for a value into the set, keeping possibly multiple
+       expressions per value.
+       (compute_antic_aux): Adjust for phi_translate changes.
+       When intersecting union the expressions and prune those
+       not in the final value set, keeping possibly multiple
+       expressions per value.  Do not use value-insertion
+       for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge
+       all expressions.  Add verification that the value-sets
+       only shrink during iteration.
+       (compute_partial_antic_aux): Adjust for the phi_translate changes.
+       (do_pre_regular_insertion): Likewise.
+       (do_pre_partial_partial_insertion): Likewise.
  
-       * config/s390/s390.c (s390_register_info_set_ranges): Remove
-       superfluous loops.
+ 2018-03-02  Richard Biener  <rguenther@suse.de>
  
- 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+       PR target/82005
+       * config/darwin.c (saved_debug_info_level): New static global.
+       (darwin_asm_lto_start): Disable debug info generation for LTO out.
+       (darwin_asm_lto_end): Restore debug info generation settings.
  
-       * doc/extend.texi: S/390: Correct some typos.
+ 2018-03-01  Martin Liska  <mliska@suse.cz>
  
- 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR sanitizer/82484
+       * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
+       volatile arguments.
  
-       * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
+ 2018-03-01  Richard Biener  <rguenther@suse.de>
  
- 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       PR debug/84645
+       * dwarf2out.c (gen_variable_die): Properly handle late VLA
+       type annotation with LTO when debug was disabled at compile-time.
  
-       PR target/69625
-       * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
-       (s390_register_info_gprtofpr): Use new macros above.
-       (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
-       its name.
-       (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
-       its name.  Adjust restore and save gpr ranges.
-       (s390_register_info_set_ranges): New function.
-       (s390_register_info): Use new macros above.  Call
-       s390_register_info_set_ranges.
-       (s390_optimize_register_info): Likewise.
-       (s390_hard_regno_rename_ok): Use new macros.
-       (s390_hard_regno_scratch_ok): Likewise.
-       (s390_emit_epilogue): Likewise.
-       (s390_can_use_return_insn): Likewise.
-       (s390_optimize_prologue): Likewise.
-       * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
+ 2018-03-01  Matthew Fortune  <mfortune@gmail.com>
  
- 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
+       * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect
+       XINT with INTVAL.
+       (mips_final_postscan_insn): Likewise.
  
-       PR bootstrap/69677
-       * config/i386/i386.c (convert_scalars_to_vector): Readd stack
-       alignment fixes.
-       (ix86_option_override_internal): Disable TARGET_STV even for
-       -m{incoming,preferred}-stack-boundary=3.
+ 2018-03-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+       PR rtl-optimization/84528
+       * alias.c (init_alias_target): Add commentary.
+       (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM
+       a unique base value if the frame pointer is not eliminated
+       to the stack pointer.
  
-       * config.gcc: Mark deprecated rtems targets as obsolete.
+ 2018-03-01  Tom de Vries  <tom@codesourcery.com>
  
- 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR rtl-optimization/83327
+       * lra-int.h (hard_regs_spilled_into): Declare.
+       * lra.c (hard_regs_spilled_into): Define.
+       (init_reg_info): Init hard_regs_spilled_into.
+       * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into.
+       * lra-lives.c (make_hard_regno_born, make_hard_regno_dead)
+       (process_bb_lives): Handle hard_regs_spilled_into.
+       (lra_create_live_ranges_1): Before doing liveness propagation, clear
+       regs in all_hard_regs_bitmap if set in hard_regs_spilled_into.
  
-       PR rtl-optimization/64682
-       PR rtl-optimization/69567
-       * combine.c (distribute_notes) <REG_DEAD>: Place the death note
-       before I2 only if the register is both used and set in I2.
+ 2018-02-28  David Edelsohn  <dje.gcc@gmail.com>
  
- 2016-02-04  DJ Delorie  <dj@redhat.com>
+       * config.gcc (powerpc-ibm-aix7.1.*): New stanza.
+       (powerpc-ibm-aix[789]*): Default to AIX 7.2.
+       * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA.
+       * config/rs6000/aix72.h: New file.
  
-       * config/msp430/msp430.c (msp430_start_function): Add function type.
+ 2018-02-28  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
+       * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n
+       instead of warning_at with conditional singular and plural messages
+       where possible.
  
-       PR fortran/69368
-       * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
+       PR target/52991
+       * stor-layout.c (update_alignment_for_field): For
+       targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
+       && !DECL_PACKED (field), do the alignment update, just use
+       only desired_align instead of MAX (type_align, desired_align)
+       as the alignment.
+       (place_field): Don't do known_align < desired_align handling
+       early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
+       is non-NULL, instead do it after rli->prev_field handling and
+       only if not within a bitfield word.  For DECL_PACKED (field)
+       use type_align of BITS_PER_UNIT.
  
- 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR rtl-optimization/69577
-       Revert:
-       2015-10-29  Richard Henderson  <rth@redhat.com>
+       * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
+       superfluous parentheses and trailing spaces.
  
-       PR target/68124
-       PR rtl-opt/67609
-       * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
-       sse check to the exact conditions of PR 67609.
+ 2018-02-28  Richard Biener  <rguenther@suse.de>
  
- 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       PR tree-optimization/84584
+       * graphite-scop-detection.c (scop_detection::add_scop): Discard
+       SCoPs with fake exit edge.
  
-       PR target/69667
-       * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
-       instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
-       not allowed into the traditional Altivec registers.
-       (movtd_64bit_nodm): Likewise.
-       (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
+ 2018-02-28  Martin Liska  <mliska@suse.cz>
  
- 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
+       PR testsuite/84597
+       * timevar.c (timer::print): Fix format to properly print 100%
+       values.
  
-       * config/aarch64/cortex-a57-fma-steering.c
-       (aarch64_register_fma_steering): Remove "static" from arguments
-       to register_pass.
+ 2018-02-28  Richard Biener  <rguenther@suse.de>
+       PR middle-end/84607
+       * genmatch.c (capture_info::walk_match): Do not mark
+       captured expressions without operands as expr_p given
+       they act more like predicates and should be subject to
+       "lost tail" side-effect preserving.
+ 2018-02-28  Alexandre Oliva  <aoliva@redhat.com>
+       PR rtl-optimization/81611
+       * auto-inc-dec.c (attempt_change): Move dead note from
+       mem_insn if it's the next use of regno
+       (find_address): Take address use of reg holding
+       non-incremented value.  Add parm to limit search to the named
+       reg only.
+       (merge_in_block): Attempt to use a mem insn that is the next
+       use of the original regno.
+ 2018-02-27  Martin Sebor  <msebor@redhat.com>
+       PR c++/83871
+       * gcc/doc/invoke.texi (-Wmissing-attributes): New option.
+       * gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE.
+ 2018-02-27  Martin Sebor  <msebor@redhat.com>
+       PR translation/84207
+       * diagnostic-core.h (warning_n, error_n, inform_n): Change
+       n argument to unsigned HOST_WIDE_INT.
+       * diagnostic.c (warning_n, error_n, inform_n): Ditto.
+       (diagnostic_n_impl): Ditto.  Handle arguments in excess of LONG_MAX.
+       * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call.
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n.
+ 2018-02-27  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84512
+       * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
+       Do not use the estimate returned from record_stmt_cost for
+       the scalar iteration cost but sum properly using add_stmt_cost.
+ 2018-02-27  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84466
+       * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
+       Adjust last change to less strictly validate use operands.
+ 2018-02-27  Martin Liska  <mliska@suse.cz>
+       PR gcov-profile/84548
+       * gcov.c (process_file): Allow partial overlap and consider it
+       also as group functions.
+       (output_lines): Properly calculate range of lines for a group.
+ 2018-02-27  Martin Liska  <mliska@suse.cz>
+       * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
+       'ggc' suffixes.  Change first column width.
+       (timer::print): Fix formatting of the column.
+ 2018-02-27  Alexandre Oliva  <aoliva@redhat.com>
+       * tree-ssa-live.c (remove_unused_scope_block_p): Do not
+       preserve inline entry blocks for the sake of debug inline
+       entry point markers alone.
+       (remove_unused_locals): Suggest in comments a better place to
+       force the preservation of inline entry blocks that are
+       otherwise unused, but do not preserve them.
+ 2018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
+ 2018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/84039
+       * config/i386/constraints.md (Bs): Replace
+       ix86_indirect_branch_register with
+       TARGET_INDIRECT_BRANCH_REGISTER.
+       (Bw): Likewise.
+       * config/i386/i386.md (indirect_jump): Likewise.
+       (tablejump): Likewise.
+       (*sibcall_memory): Likewise.
+       (*sibcall_value_memory): Likewise.
+       Peepholes of indirect call and jump via memory: Likewise.
+       (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
+       (*sibcall_value_GOT_32): Likewise.
+       * config/i386/predicates.md (indirect_branch_operand): Likewise.
+       (GOT_memory_operand): Likewise.
+       (call_insn_operand): Likewise.
+       (sibcall_insn_operand): Likewise.
+       (GOT32_symbol_operand): Likewise.
+       * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.
+ 2018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
+       PR rtl-optimization/83496
+       * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
+       booleans to RTXes.  Call fix_reg_dead_note on every non-null element.
+       (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
+       redundant insn, if any.
+       (relax_delay_slots): Likewise.
+       (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.
  
- 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
+ 2018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/69619
-       * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
-       twice when complex.
+       PR tree-optimization/83965
+       * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
+       that grouped statements are part of a reduction chain.  Return
+       true if the statement is not marked as a reduction itself but
+       is part of a group.
+       (vect_recog_dot_prod_pattern): Don't check whether the statement
+       is part of a group here.
+       (vect_recog_sad_pattern): Likewise.
+       (vect_recog_widen_sum_pattern): Likewise.
+ 2018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
+       PR debug/84545
+       * final.c (rest_of_clean_state): Also look for calls inside sequences.
+ 2018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/84530
+       * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
+       the bool argument.
+       (ix86_output_indirect_function_return): New prototype.
+       (ix86_split_simple_return_pop_internal): Likewise.
+       * config/i386/i386.c (indirect_return_via_cx): New.
+       (indirect_return_via_cx_bnd): Likewise.
+       (indirect_thunk_name): Handle return va CX_REG.
+       (output_indirect_thunk_function): Create alias for
+       __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
+       (ix86_output_indirect_jmp): Remove the bool argument.
+       (ix86_output_indirect_function_return): New function.
+       (ix86_split_simple_return_pop_internal): Likewise.
+       * config/i386/i386.md (*indirect_jump): Don't pass false
+       to ix86_output_indirect_jmp.
+       (*tablejump_1): Likewise.
+       (simple_return_pop_internal): Change it to define_insn_and_split.
+       Call ix86_split_simple_return_pop_internal to split it for
+       -mfunction-return=.
+       (simple_return_indirect_internal): Call
+       ix86_output_indirect_function_return instead of
+       ix86_output_indirect_jmp.
+ 2018-02-26  Jakub Jelinek  <jakub@redhat.com>
+       PR bootstrap/84405
+       * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
+       memset and value initialization afterwards.
+ 2018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>
+       * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.
+ 2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+       PR target/84521
+       * common/config/aarch64/aarch64-common.c
+       (aarch_option_optimization_table[]): Switch
+       off fomit-frame-pointer
+ 2018-02-26  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+       * config/nds32/nds32-multiple.md (load_multiple): Disallow
+       volatile memory.
+       (store_multiple): Ditto.
+ 2018-02-26  Kito Cheng  <kito.cheng@gmail.com>
+       * config.gcc: Add --with-cpu support for nds32 target.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): New.
+       * config/nds32/nds32.opt: Add -mcpu= option.
+ 2018-02-25  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no,
+       isel=yes): Warn for these deprecated options.
+ 2018-02-23  David Edelsohn  <dje.gcc@gmail.com>
+       * config/rs6000/aix71.h (TARGET_DEFAULT): Change to
+       ISA_2_5_MASKS_EMBEDDED.
+ 2018-02-23  Jakub Jelinek  <jakub@redhat.com>
+       * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and
+       p->max as pointers rather than using iterative_hash_expr.
+ 2018-02-23  Carl Love  <cel@us.ibm.com>
+       * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2
+       macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to
+       BU_P8V_OVERLOAD_2.
+       * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to
+       P8V_BUILTIN_VEC_VSIGNED2.  Change VSX_BUILTIN_VEC_VUNSIGNED2 to
+       P8V_BUILTIN_VEC_VUNSIGNED2.
+ 2018-02-22  Vladimir Makarov  <vmakarov@redhat.com>
+       PR target/81572
+       * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
+       * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
+       LRA_UNKNOWN_ALT.
+       * lra-constraints.c (curr_insn_transform): Set up
+       LRA_NON_CLOBBERED_ALT for moves processed on the fast path.  Use
+       LRA_UNKNOWN_ALT.
+       (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
+       * lra-eliminations.c (spill_pseudos): Ditto.
+       (process_insn_for_elimination): Ditto.
+       * lra-lives.c (reg_early_clobber_p): Use the new macros.
+       * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
+       LRA_NON_CLOBBERED_ALT.
+ 2018-02-22  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/84480
+       * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings
+       to maybe_diag_stxncpy_trunc.  Call it.
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings
+       from gimple_fold_builtin_strcpy.  Print inlining stack.
+       (handle_builtin_stxncpy): Print inlining stack.
+       * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare.
+ 2018-02-22  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/84176
+       * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
+       error when -mindirect-branch=thunk-extern, -fcf-protection=branch
+       and -fcheck-pointer-bounds are used together.
+       (indirect_thunk_prefix): New enum.
+       (indirect_thunk_need_prefix): New function.
+       (indirect_thunk_name): Replace need_bnd_p with need_prefix.  Use
+       "_nt" instead of "_bnd" for NOTRACK prefix.
+       (output_indirect_thunk): Replace need_bnd_p with need_prefix.
+       (output_indirect_thunk_function): Likewise.
+       (): Likewise.
+       (ix86_code_end): Update output_indirect_thunk_function calls.
+       (ix86_output_indirect_branch_via_reg): Replace
+       ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix.
+       (ix86_output_indirect_branch_via_push): Likewise.
+       (ix86_output_function_return): Likewise.
+       * doc/invoke.texi: Document -mindirect-branch=thunk-extern is
+       incompatible with -fcf-protection=branch and
+       -fcheck-pointer-bounds.
  
- 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
+ 2018-02-22  Steve Ellcey  <sellcey@cavium.com>
  
-       * doc/invoke.texi: Delete -mno-fma4.
+       PR target/83335
+       * config/aarch64/aarch64.c (aarch64_print_address_internal):
+       Change gcc_assert call to output_operand_lossage.
  
- 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 2018-02-22  Steve Ellcey  <sellcey@cavium.com>
+       * doc/extend.texi (__builtin_extend_pointer): Document builtin.
+ 2018-02-22  DJ Delorie  <dj@redhat.com>
+           Sebastian Perta  <sebastian.perta@renesas.com>
+           Oleg Endo  <olegendo@gcc.gnu.org>
+       * config/rx/rx.c (rx_rtx_costs): New function.
+       (TARGET_RTX_COSTS): Override to use rx_rtx_costs.
+ 2018-02-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+       * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.
+ 2018-02-22  Martin Liska  <mliska@suse.cz>
+       PR driver/83193
+       * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
+       Add "native" as a possible value.
+ 2018-02-22  Martin Liska  <mliska@suse.cz>
+       PR driver/83193
+       * config/i386/i386.c (ix86_option_override_internal):
+       Add "native" as a possible value for -march and -mtune.
+ 2018-02-22  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84502
+       * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag
+       to all type variants.
+       PR tree-optimization/84503
+       * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute
+       width as info->bitpos + info->bitsize - start.
+       (merged_store_group::merge_overlapping): Simplify width computation.
+       (check_no_overlap): New function.
+       (imm_store_chain_info::try_coalesce_bswap): Compute expected
+       start + width and last_order of the group, fail if check_no_overlap
+       fails.
+       (imm_store_chain_info::coalesce_immediate_stores): Don't merge info
+       to group if check_no_overlap fails.
+ 2018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/altivec.md: Delete contraint arguments to
+       define_expand, define_split, and define_peephole2, and in
+       define_insn_and_split if always unused.
+       * config/rs6000/darwin.md: Ditto.
+       * config/rs6000/dfp.md: Ditto.
+       * config/rs6000/rs6000.md: Ditto.
+       * config/rs6000/sync.md: Ditto.
+       * config/rs6000/vector.md: Ditto.
+       * config/rs6000/vsx.md: Ditto.
  
-       PR rtl-optimization/69577
-       * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
-       (find_subregs_of_mode): Update accordingly.  Iterate over partial
-       definitions.
+ 2018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
  
- 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
-       * config/arm/arm-protos.h (neon_reinterpret): Remove.
-       * config/arm/arm.c (neon_reinterpret): Remove.
-       * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
-       vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
-       vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
-       vreinterpretti): Remove.
-       * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
-       neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
-       neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
-       neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
-       neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
-       neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
-       * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
-       vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
-       vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
-       vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
-       vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
-       vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
-       vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
-       vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
-       vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
-       vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
-       vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
-       vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
-       vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
-       vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
-       vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
-       vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
-       vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
-       vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
-       vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
-       vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
-       vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
-       vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
-       vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
-       vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
-       vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
-       vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
-       vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
-       vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
-       vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
-       vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
-       vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
-       vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
-       vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
-       vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
-       vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
-       vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
-       vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
-       vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
-       vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
-       vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
-       vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
-       vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
-       vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
-       vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
-       vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
-       vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
-       vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
-       vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
-       vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
-       vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
-       vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
-       vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
-       vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
-       vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
-       vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
-       vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
-       vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
-       vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
-       vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
-       vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
-       vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
-       vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
-       vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
-       vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
-       vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
-       vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
-       vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
-       vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
-       vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
-       vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
-       vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
-       vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
-       vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
-       vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
-       vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
-       vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
-       vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
-       vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
-       vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
-       vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
-       vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
-       vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
-       vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
-       vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
-       vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
-       vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
-       vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
-       vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
-       vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
-       vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
-       vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
-       vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
-       vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
-       vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
-       vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
-       vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
-       vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
- 2016-02-04  Martin Liska  <mliska@suse.cz>
-       PR sanitizer/69276
-       * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
-       that are gimple_store_p.
-       (maybe_instrument_call): Likewise.
- 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
-       * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
-       register scaling out of memory reference and comment why.
- 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/65932
-       PR target/67714
-       * cse.c (cse_insn): Pass NULL to fold_rtx when initially
-       folding the source of a SET.
- 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/65932
-       PR target/67714
-       * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
-       the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
- 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
-       PR target/65932
-       PR target/67714
-       * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
-       HImode.
- 2016-02-04  Christian Bruel  <christian.bruel@st.com>
-       * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
-       * config/arm/arm.c (arm_set_current_function): Likewise.
- 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
-           Ilya Enkovich  <enkovich.gnu@gmail.com>
-           H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/69454
-       * config/i386/i386.c (convert_scalars_to_vector): Remove
-       stack alignment fixes.
-       (ix86_option_override_internal): Disable TARGET_STV if stack
-       might not be aligned enough.
-       (ix86_minimum_alignment): Assert that TARGET_STV is false.
- 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
-       * config/i386/x86-tune.def: Disable default prefetching
-       for -march=znver1.
- 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
-           Vladimir Makarov  <vmakarov@redhat.com>
-       PR target/69461
-       * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
-       in validating fused toc addresses.
- 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
-       PR c/69627
-       * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
-       range->m_caret fields if range->m_show_caret_p is false.
+       * config/rs6000/altivec.md: Write output control strings as braced
+       blocks instead of double-quoted strings.
+       * config/rs6000/darwin.md: Ditto.
+       * config/rs6000/rs6000.md: Ditto.
+       * config/rs6000/vector.md: Ditto.
+       * config/rs6000/vsx.md: Ditto.
  
-       PR target/69644
-       * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
-       Force oldval into register if it does not satisfy reg_or_short_operand
-       predicate.  Fix up formatting.
+ 2018-02-21  Jason Merrill  <jason@redhat.com>
  
- 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
-           Alexandre Oliva  <aoliva@redhat.com>
+       PR c++/84314 - ICE with templates and fastcall attribute.
+       * attribs.c (build_type_attribute_qual_variant): Remove assert.
  
-       PR target/69461
-       * lra-constraints.c (simplify_operand_subreg): Check additionally
-       address validity after potential reloading.
-       (process_address_1): Check insns validity.  In case of failure do
-       nothing.
+ 2018-02-21  Jan Hubicka  <hubicka@ucw.cz>
  
- 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
+       * ipa-cp.c (determine_versionability): Fix comment typos.
  
-       PR target/69118
-       * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
-       Fix target.
+ 2018-02-21  Jan Hubicka  <hubicka@ucw.cz>
  
- 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
+       PR c/84229
+       * ipa-cp.c (determine_versionability): Do not version functions caling
+       va_arg_pack.
  
-       * wide-int.cc (canonize_uhwi): New function.
-       (wi::divmod_internal): Use it.
+ 2018-02-21  Martin Liska  <mliska@suse.cz>
  
- 2016-02-02  James Norris  <jnorris@codesourcery.com>
+       PR driver/83193
+       * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
+       Add "native" as a possible value.
+       * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT):  Define
+       the macro when native cpu detection is available.
  
-       * gimplify.c (omp_notice_variable): Add usage check.
+ 2018-02-21  Martin Liska  <mliska@suse.cz>
  
- 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
+       PR driver/83193
+       * common/config/arm/arm-common.c (arm_print_hint_for_arch_option):
+       Add "native" as a possible value.
+       * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro
+       when native cpu detection is available.
  
-       * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
-       like LE, GE, LT, GT when emitting relational operator.
+ 2018-02-21  Jakub Jelinek  <jakub@redhat.com>
+           Martin Sebor  <msebor@redhat.com>
  
- 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
+       PR tree-optimization/84478
+       * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to
+       false.
+       * gimple-fold.c (get_range_strlen): Make minlen const and assume it
+       can't be NULL.  Change FUZZY from bool to int, for 1 add PHI/COND_EXPR
+       support which is conservatively correct, for 2 only stay conservative
+       for maxlen.  Formatting and comment capitalization fixes.  Add STRICT
+       argument to the 2 argument get_range_strlen, adjust 6 arg
+       get_range_strlen caller and clear minmaxlen[0] and [1] if it returned
+       false.
+       (get_maxval_strlen): Adjust 6 arg get_range_strlen caller.
+       (gimple_fold_builtin_strlen): Pass true as last argument to
+       get_range_strlen.
+ 2018-02-20  Martin Sebor  <msebor@redhat.com>
+       PR middle-end/84095
+       * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New.
+       (builtin_memref::set_base_and_offset): Same.  Handle inner references.
+       (builtin_memref::builtin_memref): Factor out parts into
+       set_base_and_offset and call it.
+ 2018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR middle-end/84406
+       * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode
+       is a scalar_int_mode, assert that to_mode is a scalar_int_mode with
+       greater precision.  If to_mode is a MODE_PARTIAL_INT, stop the
+       search at the associated MODE_INT.
+ 2018-02-20  Jeff Law  <law@redhat.com>
+       PR middle-end/82123
+       PR tree-optimization/81592
+       PR middle-end/79257
+       * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer
+       for range data rather than using global data.
+       * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for
+       range data rather than using global data.
+       * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter
+       pass it to children as needed.
+       (struct directive::fmtresult): Similarly.
+       (struct directive::set_width): Similarly.
+       (struct directive::set_precision): Similarly.
+       (format_integer, format_directive, parse_directive): Similarly.
+       (format_none): Accept unnamed vr_values parameter.
+       (format_percent, format_floating, format_character): Similarly.
+       (format_string, format_plain): Similarly.
+       * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query
+       the EVRP range analyzer for range data rather than using global data.
+       * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and
+       gimple-ssa-evrp-analyze.h
+       (class sprintf_dom_walker): Add after_dom_children member function.
+       Add evrp_range_analyzer member.
+       (sprintf_dom_walker::before_dom_children): Call into the EVRP
+       range analyzer as needed.
+       (sprintf_dom_walker::after_dom_children): New member function.
+       * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing
+       if not optimizing.
+       (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
+       (evrp_range_analyzer::pop_to_marker): Likewise.
+ 2018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/84419
+       * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF
+       with the required type if its current type is compatible but
+       different.
+ 2018-02-20  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/82004
+       * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until
+       after vectorization.
+ 2018-02-20  Martin Liska  <mliska@suse.cz>
+       PR driver/83193
+       * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print
+       possible values if we don't have a hint.
+ 2018-02-20  Martin Liska  <mliska@suse.cz>
+       PR c/84310
+       PR target/79747
+       * final.c (shorten_branches): Build align_tab array with one
+       more element.
+       * opts.c (finish_options): Add alignment option limit check.
+       (MAX_CODE_ALIGN): Likewise.
+       (MAX_CODE_ALIGN_VALUE): Likewise.
+       * doc/invoke.texi: Document maximum allowed option value for
+       all -falign-* options.
+ 2018-02-19  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84146
+       * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note.
+       * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove.
+       * var-tracking.c (emit_note_insn_var_location): Remove all references
+       to NOTE_INSN_CALL_ARG_LOCATION.
+       (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on
+       the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note.
+       Use copy_rtx_if_shared.
+       * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of
+       NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note.
+       (dwarf2out_var_location): Remove handling of
+       NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note
+       on call_insn.
+       * final.c (final_scan_insn): Remove all references to
+       NOTE_INSN_CALL_ARG_LOCATION.
+       (rest_of_clean_state): Likewise.  Remove REG_CALL_ARG_LOCATION notes
+       before dumping final insns.
+       * except.c (emit_note_eh_region_end): Remove all references to
+       NOTE_INSN_CALL_ARG_LOCATION.
+       * config/alpha/alpha.c (alpha_pad_function_end): Likewise.
+       * config/c6x/c6x.c (c6x_gen_bundles): Likewise.
+       * config/arc/arc.c (hwloop_optimize): Likewise.
+       * config/arm/arm.c (create_fix_barrier): Likewise.
+       * config/s390/s390.c (s390_chunkify_start): Likewise.
+       * config/sh/sh.c (find_barrier): Likewise.
+       * config/i386/i386.c (rest_of_insert_endbranch,
+       ix86_seh_fixup_eh_fallthru): Likewise.
+       * config/xtensa/xtensa.c (hwloop_optimize): Likewise.
+       * config/iq2000/iq2000.c (final_prescan_insn): Likewise.
+       * config/frv/frv.c (frv_function_prologue): Likewise.
+       * emit-rtl.c (try_split): Likewise.  Copy over REG_CALL_ARG_LOCATION
+       reg note.
+       (note_outside_basic_block_p): Remove all references to
+       NOTE_INSN_CALL_ARG_LOCATION.
+       * gengtype.c (adjust_field_rtx_def): Likewise.
+       * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn):
+       Likewise.
+       * jump.c (cleanup_barriers, delete_related_insns): Likewise.
+       * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
  
-       * ira-costs.c (find_costs_and_classes): Add extra argument.
-       * target.def (ira_change_pseudo_allocno_class): Add parameter.
-       * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
-       * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
-       * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
-       Add best_class parameter, and return it if not ALL_REGS.
-       * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
-       Add parameter.
-       * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
-       Update target hook.
+       PR c++/84444
+       * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t)
+       is ADDR_EXPR.
  
- 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
+       PR tree-optimization/84452
+       * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call
+       expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen
+       is NULL.
  
-       * config/aarch64/aarch64.c
-       (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
-       (aarch64_ira_change_pseudo_allocno_class): New function.
+ 2018-02-19  Martin Liska  <mliska@suse.cz>
  
- 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
+       PR sanitizer/82183
+       * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0.
  
-       PR target/67032
-       * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
+ 2018-02-19  Martin Liska  <mliska@suse.cz>
+           Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+       PR tree-optimization/82491
+       * gimple-fold.c (get_base_constructor): Make earlier bail out
+       to prevent ubsan.
  
-       * config/avr/avr.c (avr_option_override): Set
-       PARAM_ALLOW_STORE_DATA_RACES to 1.
+ 2018-02-19  Carl Love  <cel@us.ibm.com>
  
- 2016-02-02  Richard Biener  <rguenther@suse.de>
+       * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from
+       BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to
+       BU_P8V_OVERLOAD_1.
+       * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to
+       P8V_BUILTIN_VEC_NEG.
  
-       PR tree-optimization/69595
-       * match.pd: Add range test simplifications to true/false.
+ 2018-02-19  Sebastian Perta  <sebastian.perta@renesas.com>
  
- 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
+       * config/rl78/rl78.md (movdf): New define expand.
  
-       * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
-       * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
-       instead.
+ 2018-02-19  Martin Liska  <mliska@suse.cz>
  
- 2016-02-02  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69606
-       * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
-       info on the result before moving a stmt.
- 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR middle-end/68542
-       * config/i386/i386.c (ix86_expand_branch): Add support for conditional
-       branch with vector comparison.
-       * config/i386/sse.md (VI48_AVX): New mode iterator.
-       (define_expand "cbranch<mode>4): Add support for conditional branch
-       with vector comparison.
-       * tree-vect-loop.c (optimize_mask_stores): New function.
-       * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
-       has_mask_store field of vect_info.
-       * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
-       vectorized loops having masked stores after vec_info destroy.
-       * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
-       correspondent macros.
-       (optimize_mask_stores): Add prototype.
+       PR other/80589
+       * doc/invoke.texi: Fix typo.
+       * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise.
  
- 2016-02-02  Alan Modra  <amodra@gmail.com>
+ 2018-02-18  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR target/69548
-       * config/rs6000/predicates.md (quad_int_reg_operand): Don't
-       allow subregs.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
+       handle rs6000_single_float and rs6000_double_float specially for
+       e500 family CPUs.
  
- 2016-02-02  Alan Modra  <amodra@gmail.com>
+ 2018-02-16  Jeff Law  <law@redhat.com>
  
-       PR target/68662
-       * config/rs6000/rs6000.c (need_toc_init): New var, set it
-       whenever toc_label_name used.
-       (rs6000_file_start): Don't set up toc section here,
-       (rs6000_output_function_epilogue): do so here instead,
-       (rs6000_xcoff_file_start): and here.
-       * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
-       (load_toc_aix_di): Likewise.
+       * config/rx/rx.c (add_pop_cfi_notes): New function.;
+       (pop_regs): Use it.
  
- 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
  
-       PR rtl-optimization/69592
-       * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
-       (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
-       (num_sign_bit_copies_binary_arith_p): New inline function.
-       (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
+       PR ipa/84425
+       * ipa-inline.c (inline_small_functions): Fix a typo.
  
- 2016-02-01  Jeff Law  <law@redhat.com>
+ 2018-02-16  Nathan Sidwell  <nathan@acm.org>
  
-       PR tree-optimization/69580
-       * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
-       * tree-ssa-threadbackward.c
-       (fsm_find_control_statement_thread_paths): Do not try to walk
-       through large PHI nodes.
+       * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'.
  
- 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-16  Carl Love  <cel@us.ibm.com>
  
-       * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
-       when count is incremented above limit, don't analyze further
-       insns afterwards.
+       * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition.
+       Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and
+       from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2.
+       * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2
+       expansion to P8V_BUILTIN_VEC_FLOAT2.
  
-       * omp-low.c (oacc_parse_default_dims): Avoid
-       -Wsign-compare warning, make sure value fits into int
-       rather than just unsigned int.
+ 2018-02-16  Vladimir Makarov  <vmakarov@redhat.com>
  
- 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
-       PR tree-optimization/67921
-       * fold-const.c (split_tree): New parameters.  Convert pointer
-       type variable part to proper type before negating.
-       (fold_binary_loc): Pass new arguments to split_tree.
- 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
-       * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
-       (nvptx_goacc_validate_dims): Extend to handle global defaults.
-       * target.def (OACC_VALIDATE_DIMS): Extend documentation.
-       * doc/tm.texti: Rebuilt.
-       * doc/invoke.texi (fopenacc-dim): Document.
-       * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
-       (append_compiler_options): Likewise.
-       * omp-low.c (oacc_default_dims, oacc_min_dims): New.
-       (oacc_parse_default_dims): New.
-       (oacc_validate_dims): Add USED arg.  Select non-unity default when
-       possible.
-       (oacc_loop_fixed_partitions): Return mask of used partitions.
-       (oacc_loop_auto_partitions): Emit dump info.
-       (oacc_loop_partition): Return mask of used partitions.
-       (execute_oacc_device_lower): Parse default dimension arg.  Adjust
-       loop partitioning and validation calls.
- 2016-02-01  Richard Biener  <rguenther@suse.de>
-       PR middle-end/69556
-       * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
- 2016-02-01  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69574
-       * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
-       of asserting return chrec_dont_know.
- 2016-02-01  Martin Liska  <mliska@suse.cz>
-       * mem-stats-traits.h: Add copyright header.
-       * mem-stats.h: Likewise.
- 2016-02-01  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69579
-       * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
-       Do not propagate through abnormal PHI results.
- 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
-       * postreload.c (reload_cse_simplify): Remove dead code.
- 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/69570
-       * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
-       if there is more than one set, not if there is a single set.
- 2016-02-01  Richard Henderson  <rth@redhat.com>
-       PR rtl-opt/69535
-       * combine.c (make_compound_operation): When looking through a
-       subreg, make sure to re-extend to the width of the outer mode.
- 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/69546
-       * wide-int.cc (wi::divmod_internal): For unsigned division
-       where both operands fit into uhwi, if o1 is 1 and o0 has
-       msb set, if divident_prec is larger than bits per hwi,
-       clear another quotient word and return 2 instead of 1.
-       Similarly for remainder with msb in HWI set, if dividend_prec
-       is larger than bits per hwi.
+       PR rtl-optimization/70023
+       * lra-constraints.c (inherit_in_ebb): Take hard reg mode of
+       src_regno into account.
  
- 2016-01-29  Martin Jambor  <mjambor@suse.cz>
+ 2018-02-16  Carl Love  <cel@us.ibm.com>
  
-       * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
-       Use short lowercase names.
-       (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
-       MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
-       acq_rel one.  Protect warning agains segfaults if
-       get_memory_order_name returns NULL.
-       (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
-       with release semantics.  Do not warn if get_memory_order already did.
-       (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
-       semantics.  Fix check for relaxed or acquire semantics.  Do not warn
-       if get_memory_order already did.
+       * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b.
+       * config/rs6000/rs6000-builtin.def: Remove macro expansion for
+       VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B.
+       * config/rs6000/rs6000.c: Remove case statements for
+       P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B,
+       P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI,
+       and P9V_BUILTIN_VEC_VINSERT4B.
+       * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for
+       P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B.
+       * config/rs6000/vsx.md:
+       * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for
+       vec_insert4b.
  
- 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
+ 2018-02-16  Carl Love  <cel@us.ibm.com>
  
-       * doc/install.texi: Document that isl-0.16 is supported.
+       * config/rs6000/altivec.h: Add builtin names vec_extract4b
+       vec_insert4b.
+       * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B
+       definitions.
+       * config/rs6000/rs6000-c.c: Add the definitions for
+       P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B.
+       * config/rs6000/rs6000.c (altivec_expand_builtin): Add
+       P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements.
+       * config/rs6000/vsx.md: Add define_insn extract4b.  Add define_expand
+       definition for insert4b and define insn *insert3b_internal.
+       * doc/extend.texi: Add documentation for vec_extract4b.
  
- 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
+ 2018-02-16  Nathan Sidwell  <nathan@acm.org>
  
-       PR target/69299
-       * config/i386/constraints.md (Bm): Describe as special memory
-       constraint.
-       * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
-       * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
-       * genpreds.c (struct constraint_data): Add is_special_memory.
-       (have_special_memory_constraints, special_memory_start): New
-       static vars.
-       (special_memory_end): Ditto.
-       (add_constraint): Add new arg is_special_memory.  Add code to
-       process its true value.  Update have_special_memory_constraints.
-       (process_define_constraint): Pass the new arg.
-       (process_define_register_constraint): Ditto.
-       (choose_enum_order): Process special memory.
-       (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
-       function insn_extra_special_memory_constraint.
-       (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
-       * gensupport.c (process_rtx): Process
-       DEFINE_SPECIAL_MEMORY_CONSTRAINT.
-       * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
-       * ira-lives.c (single_reg_class): Use
-       insn_extra_special_memory_constraint.
-       * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
-       * lra-constraints.c (process_alt_operands): Ditto.
-       (curr_insn_transform): Use insn_extra_special_memory_constraint.
-       * recog.c (asm_operand_ok, preprocess_constraints): Process
-       CT_SPECIAL_MEMORY.
-       * reload.c (find_reloads): Ditto.
-       * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
-       * stmt.c (parse_input_constraint): Use
-       insn_extra_special_memory_constraint.
+       * doc/extend.texi (Backwards Compatibility): Mention friend
+       injection.  Note for-scope is deprecated.
+       * doc/invoke.texi (-ffriend-injection): Deprecate.
  
- 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
+ 2018-02-16  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR target/69530
-       * lra-splill.c (lra_final_code_change): Revert r229087 by
-       removing all sub-registers.
+       * combine.c (try_combine): When adjusting LOG_LINKS for the destination
+       that moved to I2, also allow destinations that are a paradoxical
+       subreg (instead of a normal reg).
  
- 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
+ 2018-02-16  Oleg Endo  <olegendo@gcc.gnu.org>
  
-       PR target/65604
-       * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
+       PR target/83831
+       * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand
+       to QImode.
  
- 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-16  Richard Biener  <rguenther@suse.de>
  
-       PR target/69551
-       * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
-       SSE1, copy target into the temporary reg first before recursing
-       on it.
- 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
-       * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
-       with vm.
- 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
-       * ginclude/stdarg.h: Test __cplusplus instead of
-       __GXX_EXPERIMENTAL_CXX0X__.
- 2016-01-29  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69547
-       * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
-       Do not mark clobbers necessary.
-       (mark_all_reaching_defs_necessary_1): Likewise.
- 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
-       declaration name with %qs and print it in both error messages.
-       Also fix indentation.
- 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
-       PR other/69006
-       * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
-       trailing blank line from error message.
- 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
-       PR c++/69462
-       * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
-       for C++-11.
- 2016-01-29  Richard Biener  <rguenther@suse.de>
-       PR middle-end/69537
-       * match.pd: Allow all integral types when simplifying a
-       widening or sign-changing conversion.
- 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
-       * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
-       back to setting codegen_error to fail codegen.
- 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
-       PR target/69459
-       * config/i386/constraints.md (C): Only accept constant zero operand.
-       (BC): New constraint.
-       * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
-       instead of C constraint.
-       * doc/md.texi (Machine Constraints): Update description
-       of C constraint.
- 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
-       PR target/68400
-       * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
+       PR tree-optimization/84037
+       PR tree-optimization/84016
+       PR target/82862
+       * config/i386/i386.c (ix86_builtin_vectorization_cost):
+       Adjust vec_construct for the fact we need additional higher latency
+       128bit inserts for AVX256 and AVX512 vector builds.
+       (ix86_add_stmt_cost): Scale vector construction cost for
+       elementwise loads.
  
- 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-16  Richard Biener  <rguenther@suse.de>
  
-       PR middle-end/69542
-       * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
-       non-debug insns.
+       PR tree-optimization/84417
+       * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain
+       the MEM_REF offset when conversion to BIT_FIELD_REF is desired.
+       (non_rewritable_lvalue_p): Likewise, use poly-ints.
  
- 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
+ 2018-02-16  Martin Liska  <mliska@suse.cz>
  
-       * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
-       branches if using guessed profile.
+       PR sanitizer/84307
+       * internal-fn.def (ASAN_CHECK): Set proper flags.
+       (ASAN_MARK): Likewise.
  
- 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
+ 2018-02-16  Julia Koval  <julia.koval@intel.com>
  
-       * graphite-optimize-isl.c (optimize_isl): Fix dump.
+       * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB
+       from PTA_CANNONLAKE.
  
- 2016-01-28  Richard Henderson  <rth@redhat.com>
+ 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/69305
-       * config/aarch64/aarch64-modes.def (CC_Cmode): New
-       * config/aarch64/aarch64-protos.h: Update.
-       * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
-       (aarch64_select_cc_mode): Add check for use of CC_Cmode.
-       (aarch64_get_condition_code_1): Handle CC_Cmode.
-       * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
-       (*add<mode>3_compareC_cconly_imm): New.
-       (*add<mode>3_compareC_cconly): New.
-       (*add<mode>3_compareC_imm): New.
-       (add<mode>3_compareC): New.
-       (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
-       to be first.  Use aarch64_carry_operation.
-       (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
-       (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
-       (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
-       (subti3): Use subdi3_compare1.
-       (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
-       (sub<mode>3_compare1): New.
-       (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
-       (*sub<mode>3_carryin): Use aarch64_borrow_operation.
-       (*subsi3_carryin_uxtw): Likewise.
-       (*ngc<mode>, *ngcsi_uxtw): Likewise.
-       (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
-       * config/aarch64/iterators.md (DWI): New.
-       * config/aarch64/predicates.md (aarch64_carry_operation): New.
-       (aarch64_borrow_operation): New.
+       PR target/84272
+       * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest):
+       Use ++iter rather than iter++ for std::list iterators.
+       (func_fma_steering::dfs): Likewise.  Don't delete nodes right away,
+       defer deleting them until all nodes in the forest are processed.  Do
+       free even leaf nodes.  Change to_process into auto_vec.
  
- 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
+       PR bootstrap/84405
+       * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3.
+       * vec.h (vec_default_construct): Use memset instead of placement new
+       if BROKEN_VALUE_INITIALIZATION is defined.
+       * hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use
+       memset instead of value initialization if BROKEN_VALUE_INITIALIZATION
+       is defined.
  
-       * graphite-optimize-isl.c (optimize_isl): Print a different debug
-       message when isl does not return a valid schedule.
+       PR rtl-optimization/83723
+       * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument.
+       * lra.c (lra_substitute_pseudo): Likewise.  If true, use
+       gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG.  Pass DEBUG_P to
+       recursive calls.
+       (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo
+       callers.
+       * lra-constraints.c (inherit_reload_reg, split_reg): Likewise.
  
- 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
+ 2018-02-16  Eric Botcazou  <ebotcazou@adacore.com>
  
-       * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
-       Remove comments from class declarations: they are already in the code
-       close by the defs.
+       PR rtl-optimization/81443
+       * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
+       from inner REGs to paradoxical SUBREGs.
  
- 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
+ 2018-02-16  Richard Biener  <rguenther@suse.de>
  
-       * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
-       codegen_error_p.
-       (ternary_op_to_tree): Same.
-       (unary_op_to_tree): Same.
-       (nary_op_to_tree): Same.
-       (gcc_expression_from_isl_expr_op): Same.
-       (gcc_expression_from_isl_expression): Same.
-       (graphite_create_new_loop): Same.
-       (graphite_create_new_loop_guard): Same.
-       (build_iv_mapping): Same.
-       (graphite_create_new_guard): Same.
-       (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
-       (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
+       PR tree-optimization/84399
+       * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
+       For operands we can analyze at their definition make sure we can
+       analyze them at each use as well.
  
- 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
+ 2018-02-16  Richard Biener  <rguenther@suse.de>
  
-       * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
-       instead of setting codegen_error to fail codegen.
+       PR tree-optimization/84190
+       * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch
+       volatile accesses if the decl isn't volatile.
  
- 2016-01-28  Jason Merrill  <jason@redhat.com>
+ 2018-02-15  Jason Merrill  <jason@redhat.com>
  
-       * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
+       PR c++/84314 - ICE with templates and fastcall attribute.
+       * attribs.c (build_type_attribute_qual_variant): Don't clobber
+       TYPE_CANONICAL on an existing type.
  
- 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
-       Remove CONST_INT_P check in CCMP cost calculation.
- 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.c (generic_vector_cost):
-       Set vec_permute_cost.
-       (cortexa57_vector_cost): Likewise.
-       (exynosm1_vector_cost): Likewise.
-       (xgene1_vector_cost): Likewise.
-       (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
-       * config/aarch64/aarch64-protos.h (cpu_vector_cost):
-       Add vec_permute_cost entry.
+ 2018-02-15  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
-       * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
-       immediate as %1.
-       (add<mode>3_compare0): Likewise.
-       (addsi3_compare0_uxtw): Likewise.
-       (add<mode>3nr_compare0): Likewise.
-       (compare_neg<mode>): Likewise.
-       (<optab><mode>3): Likewise.
- 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
-       * tree-vect-stmts.c (vectorizable_comparison): Add
-       NULL check for vectype.
- 2016-01-28  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69466
-       * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
-       Account for PHIs we couldn't duplicate.
- 2016-01-28  Martin Liska  <mliska@suse.cz>
-       PR pch/68758
-       * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
-       instead of ENABLE_VALGRIND_CHECKING.
- 2016-01-27  Richard Henderson  <rth@redhat.com>
-       PR rtl-opt/69447
-       * lra-remat.c (subreg_regs): New.
-       (dump_candidates_and_remat_bb_data): Dump it.
-       (operand_to_remat): Reject if operand in subreg_regs.
-       (set_bb_regs): Collect subreg_regs.
-       (lra_remat): Init and free subreg_regs.  Compute
-       calculate_local_reg_remat_bb_data before create_cands.
+       PR tree-optimization/84383
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at
+       dstoff nor call operand_equal_p if dstbase is NULL.
  
- 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
+       PR tree-optimization/84334
+       * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is
+       also a CONSTANT_CLASS_P, punt.
  
-       PR target/68986
-       * config/i386/i386.c (ix86_update_stack_boundary): Don't
-       change stack_alignment_needed for __tls_get_addr call.
+ 2018-02-14  Jim Wilson  <jimw@sifive.com>
  
- 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/riscv/riscv.c (riscv_first_stack_step): Move locals after
+       first SMALL_OPERAND check.  New local min_second_step.  Move assert
+       to where locals are set.  Add TARGET_RVC support.
+       * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New.
  
-       * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
+ 2018-02-14  Indu Bhagat  <indu.bhagat@oracle.com>
  
- 2016-01-27  Jeff Law  <law@redhat.com>
+       * doc/invoke.texi: Correct -Wformat-overflow code sample.
  
-       PR tree-optimization/68398
-       PR tree-optimization/69196
-       * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
-       (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
-       * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
-       Only count PHIs in the last block in the path.  The others will
-       const/copy propagate away.  Add heuristic to allow more irreducible
-       subloops to be created when it is likely profitable to do so.
+ 2018-02-14  Martin Sebor  <msebor@redhat.com>
  
-       * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
-       Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
-       check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
+       PR tree-optimization/83698
+       * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For
+       arrays constrain the offset range to their bounds.
+       (builtin_access::strcat_overlap): Adjust the bounds of overlap offset.
+       (builtin_access::overlap): Avoid setting the size of overlap if it's
+       already been set.
+       (maybe_diag_overlap): Also consider arrays when deciding what values
+       of offsets to include in diagnostics.
  
- 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-14  Martin Sebor  <msebor@redhat.com>
  
-       PR lto/69254
-       * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
-       END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
-       * asan.c (DEF_BUILTIN_STUB): Temporarily define.
-       * tree-streamer-in.c: Include asan.h.
-       (streamer_get_builtin_tree): For builtins in sanitizer
-       range call initialize_sanitizer_builtins and retry.
+       PR c/84108
+       * attribs.c (diag_attr_exclusions): Consider the exclusion(s)
+       that correspond to the kind of a declaration.
  
- 2016-01-27  Ian Lance Taylor  <iant@google.com>
+ 2018-02-14  John David Anglin  <danglin@gcc.gnu.org>
  
-       * common.opt (fkeep-gc-roots-live): New undocumented option.
-       * tree-ssa-loop-ivopts.c (add_candidate_1): If
-       -fkeep-gc-roots-live, skip pointers.
-       (add_iv_candidate_for_biv): Handle add_candidate_1 returning
-       NULL.
+       PR target/83984
+       * config/pa/pa.md: Load address of PIC label using the linkage table
+       if the label is nonlocal.
  
- 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-02-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
-       PR target/69512
-       * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
-       (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue
+       warning message if user requests -maltivec=be.
+       * doc/invoke.texi: Document deprecation of -maltivec=be.
+ 2018-02-14  Will Schmidt  <will_schmidt@vnet.ibm.com>
+       PR target/84220
+       * config/rs6000/rs6000-c.c: Update definitions for
+       ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW,
+       VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins.
  
- 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
+ 2018-02-14  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
  
-       PR target/68380
-       * configure.ac: NetBSD provides SSP in its C library.
-       * configure: Updated.
+       PR target/84239
+       * config/i386/cetintrin.h: Remove _rdssp[d|q] and
+       add _get_ssp intrinsics. Remove argument from
+       __builtin_ia32_rdssp[d|q].
+       * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID.
+       * config/i386/i386-builtin.def: Remove argument from
+       __builtin_ia32_rdssp[d|q].
+       * config/i386/i386.c: Use UINT_FTYPE_VOID. Use
+       ix86_expand_special_args_builtin for _rdssp[d|q].
+       * config/i386/i386.md: Remove argument from rdssp[si|di] insn.
+       Clear register before usage.
+       * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q].
+       Add documentation for new _get_ssp and _inc_ssp intrinsics.
  
- 2016-01-27  Richard Biener  <rguenther@suse.de>
+ 2018-02-14  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR tree-optimization/69166
-       * tree-vect-loop.c (vect_is_simple_reduction): Always check
-       reduction code for commutativity / associativity.
+       PR tree-optimization/84357
+       * tree-data-ref.c (object_address_invariant_in_loop_p): Check
+       operand 1 of an ARRAY_REF too.
  
- 2016-01-27  Martin Jambor  <mjambor@suse.cz>
+ 2018-02-14  Oleg Endo  <olegendo@gcc.gnu.org>
  
-       PR tree-optimization/69355
-       * tree-sra.c (analyze_access_subtree): Correct hole detection when
-       total_scalarization fails.
+       PR target/83831
+       * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn,
+       rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
+       declarations.
+       (set_of_reg): New struct.
+       (rx_find_set_of_reg, rx_find_use_of_reg): New functions.
+       * config/rx/rx.c (rx_reg_dead_or_unused_after_insn,
+       rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
+       functions.
+       * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split.
+       Split into bitclr, bitset, bitinvert patterns if appropriate.
+       (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and
+       use rx_fuse_in_memory_bitop.
+       (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert
+       to named insn, correct maximum insn length.
+ 2018-02-14  Jozef Lawrynowicz  <jozefl.gcc@gmail.com>
+       PR target/79242
+       * machmode.def: Define a complex mode for PARTIAL_INT.
+       * genmodes.c (complex_class): Return MODE_COMPLEX_INT for
+       MODE_PARTIAL_INT.
+       * doc/rtl.texi: Document CSPImode.
+       * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode
+       handling.
+       (msp430_hard_regno_nregs_with_padding): Likewise.
+ 2018-02-13  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/84279
+       * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses.
+ 2018-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR rtl-optimization/84169
+       * combine.c (try_combine): New variable split_i2i3.  Set it to true if
+       we generated a parallel as new i3 and we split that to new i2 and i3
+       instructions.  Handle split_i2i3 similar to swap_i2i3: scan the
+       LOG_LINKs of i3 to see which of those need to link to i2 now.  Link
+       those to i2, not i1.  Partially rewrite this scan code.
+ 2018-02-13  Jakub Jelinek  <jakub@redhat.com>
+       PR c/82210
+       * stor-layout.c (place_field): For variable length fields, adjust
+       offset_align afterwards not just based on the field's alignment,
+       but also on the size.
+       PR middle-end/84309
+       * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead
+       of exps and logs in the use_exp2 case.
+ 2018-02-13  Jeff Law  <law@redhat.com>
+       * config/rl/rl78.c (rl78_attribute_table): Fix terminator and
+       entry for "vector".
+       * config/rl78/rl78.c (rl78_handle_func_attribute): Mark
+       ARGS as unused.
+ 2018-02-13  Alexandre Oliva  <aoliva@redhat.com>
+       PR debug/84342
+       PR debug/84319
+       * common.opt (gas-loc-support, gas-locview-support): New.
+       (ginline-points, ginternal-reset-location-views): New.
+       * doc/invoke.texi: Document them.  Use @itemx where intended.
+       (gvariable-location-views): Adjust.
+       * target.def (reset_location_view): New.
+       * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New.
+       (TARGET_RESET_LOCATION_VIEW): New.
+       * doc/tm.texi: Rebuilt.
+       * dwarf2out.c (dwarf2out_default_as_loc_support): New.
+       (dwarf2out_default_as_locview_support): New.
+       (output_asm_line_debug_info): Use option variables.
+       (dwarf2out_maybe_output_loclist_view_pair): Likewise.
+       (output_loc_list): Likewise.
+       (add_high_low_attributes): Check option variables.
+       Don't output entry view attribute in strict mode.
+       (gen_inlined_subroutine_die): Check option variables.
+       (dwarf2out_inline_entry): Likewise.
+       (init_sections_and_labels): Likewise.
+       (dwarf2out_early_finish): Likewise.
+       (maybe_reset_location_view): New, from...
+       (dwarf2out_var_location): ... here.  Call it.
+       * debug.h (dwarf2out_default_as_loc_support): Declare.
+       (dwarf2out_default_as_locview_support): Declare.
+       * hooks.c (hook_int_rtx_insn_0): New.
+       * hooks.h (hook_int_rtx_insn_0): Declare.
+       * toplev.c (process_options): Take -gas-loc-support and
+       -gas-locview-support from dwarf2out.  Enable
+       -gvariable-location-views by default only with locview
+       assembler support.  Enable -ginternal-reset-location-views by
+       default only if the target defines the corresponding hook.
+       Enable -ginline-points by default if location views are
+       enabled; force it disabled if statement frontiers are
+       disabled.
+       * tree-inline.c (expand_call_inline): Check option variables.
+       * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
+ 2018-02-13  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/84321
+       * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE
+       handling.  Also check whether the anti-range contains any values
+       that satisfy the mask; switch to a VR_RANGE if not.
+ 2018-02-13  Paolo Bonzini  <bonzini@gnu.org>
+       PR sanitizer/84340
+       * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec.
+ 2018-02-13  Martin Jambor  <mjambor@suse.cz>
+       PR c++/83990
+       * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location
+       of call statements, also set location of a load to a temporary.
+ 2018-02-13  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.c (add_vector_labels): New function.
+       * config/rl78/rl78.c (rl78_handle_vector_attribute): New function.
+       * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels.
+       * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert
+       which checks that no arguments are passed.
+       * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute.
+       * doc/extend.texi: Documentation for the new attribute.
+ 2018-02-13  Andreas Schwab  <schwab@suse.de>
+       * config/riscv/linux.h (CPP_SPEC): Define.
+ 2018-02-13  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84335
+       * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass
+       OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of
+       OPTION_MASK_ISA_AES as first argument to def_builtin_const
+       for AES builtins.  Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2
+       instead of OPTION_MASK_ISA_PCLMUL as first argument to
+       def_builtin_const for __builtin_ia32_pclmulqdq128 builtin.
+       * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it
+       temporarily for AES and PCLMUL builtins.
+       PR tree-optimization/84339
+       * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling
+       ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF.
+       Formatting fixes.
  
- 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
+       PR middle-end/84309
+       * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into
+       exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available.
+       * generic-match-head.c (canonicalize_math_after_vectorization_p): New
+       inline function.
+       * gimple-match-head.c (canonicalize_math_after_vectorization_p): New
+       inline function.
+       * omp-simd-clone.h: New file.
+       * omp-simd-clone.c: Include omp-simd-clone.h.
+       (expand_simd_clones): No longer static.
+       * tree-vect-patterns.c: Include fold-const-call.h, attribs.h,
+       cgraph.h and omp-simd-clone.h.
+       (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x).
+       (vect_recog_widen_shift_pattern): Formatting fix.
+       (vect_pattern_recog_1): Don't check optab for calls.
+       PR target/84336
+       * config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force
+       operands[2] into a REG before using gen_lowpart on it.
+ 2018-02-12  Jeff Law  <law@redhat.com>
+       PR target/83760
+       * config/sh/sh.c (find_barrier): Consider a sibling call
+       a barrier as well.
+       * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when
+       successfully back substituting a reg.
+ 2018-02-12  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84037
+       * tree-vect-slp.c (vect_analyze_slp_cost): Add visited
+       parameter, move visited init to caller.
+       (vect_slp_analyze_operations): Separate cost from validity
+       check, initialize visited once for all instances.
+       (vect_schedule_slp): Analyze map to CSE vectorized nodes once
+       for all instances.
+       * tree-vect-stmts.c (vect_model_simple_cost): Make early
+       out an assert.
+       (vect_model_promotion_demotion_cost): Likewise.
+       (vectorizable_bswap): Guard cost modeling with !slp_node
+       instead of !PURE_SLP_STMT to avoid double-counting on hybrid
+       SLP stmts.
+       (vectorizable_call): Likewise.
+       (vectorizable_conversion): Likewise.
+       (vectorizable_assignment): Likewise.
+       (vectorizable_shift): Likewise.
+       (vectorizable_operation): Likewise.
+       (vectorizable_store): Likewise.
+       (vectorizable_load): Likewise.
+       (vectorizable_condition): Likewise.
+       (vectorizable_comparison): Likewise.
+ 2018-02-12  Paolo Bonzini  <bonzini@gnu.org>
+       PR sanitizer/84307
+       * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value.
+       (ASAN_MARK): Fix fnspec to account for return value, change pointer
+       argument from 'R' to 'W' so that the pointed-to datum is clobbered.
+ 2018-02-08  Jan Hubicka  <hubicka@ucw.cz>
+       PR middle-end/83665
+       * params.def (inline-min-speedup): Increase from 8 to 15.
+       (max-inline-insns-auto): Decrease from 40 to 30.
+       * ipa-split.c (consider_split): Add some buffer for function to
+       be considered inlining candidate.
+       * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
+       default values.
+ 2018-02-12  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84037
+       * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the
+       matched stmts if we cannot swap the non-matched ones.
+ 2018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
+       * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd,
+       _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss,
+       _mm_maskz_scalef_round_ss): New intrinsics.
+       (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix.
+       * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round,
+       __builtin_ia32_scalefss_round): Remove.
+       (__builtin_ia32_scalefsd_mask_round,
+       __builtin_ia32_scalefss_mask_round): New intrinsics.
+       * config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ...
+       (vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this.
+       ((match_operand:VF_128 2 "<round_nimm_predicate>"
+       "<round_constraint>")): Changed to ...
+       ((match_operand:VF_128 2 "<round_scalar_nimm_predicate>"
+       "<round_scalar_constraint>")): ... this.
+       ("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|
+       %0, %1, %2<round_op3>}"): Changed to ...
+       ("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1,
+       %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1,
+       %2<round_scalar_mask_op3>}"): ... this.
+       * config/i386/subst.md (round_scalar_nimm_predicate): New.
+ 2018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
+       * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd)
+       (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss)
+       (_mm_maskz_sqrt_round_ss): New intrinsics.
+       (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove.
+       (__builtin_ia32_sqrtsd_mask_round)
+       (__builtin_ia32_sqrtss_mask_round): New builtins.
+       * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round)
+       (__builtin_ia32_sqrtss_round): Remove.
+       (__builtin_ia32_sqrtsd_mask_round)
+       (__builtin_ia32_sqrtss_mask_round): New builtins.
+       * config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ...
+       (vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this.
+       ((match_operand:VF_128 1 "vector_operand"
+       "xBm,<round_constraint>")): Changed to ...
+       ((match_operand:VF_128 1 "vector_operand"
+       "xBm,<round_scalar_constraint>")): ... this.
+       (vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0|
+       %0, %2, %<iptr>1<round_op3>}): Changed to ...
+       (vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2,
+       %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2,
+       %<iptr>1<round_scalar_mask_op3>}): ... this.
+       ((set_attr "prefix" "<round_prefix>")): Changed to ...
+       ((set_attr "prefix" "<round_scalar_prefix>")): ... this.
+ 2018-02-11  Steven Munroe  <munroesj@gcc.gnu.org>
+       PR target/84266
+       * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]):
+       Cast vec_cmpeq result to correct type.
+       * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]):
+       Cast vec_cmpgt result to correct type.
+ 2018-02-11  Alexandre Oliva  <aoliva@redhat.com>
+       * final.c (final_scan_insn_1): Renamed from...
+       (final_scan_insn): ... this.  New wrapper, to recover
+       seen from the outermost call in recursive ones.
+       * config/sparc/sparc.c (output_return): Drop seen from call.
+       (output_sibcall): Likewise.
+       * config/visium/visium.c (output_branch): Likewise.
+ 2018-02-10  John David Anglin  <danglin@gcc.gnu.org>
+       * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as
+       function label.
+ 2018-02-10  Alan Modra  <amodra@gmail.com>
+       PR target/84300
+       * config/rs6000/rs6000.md (split_stack_return): Remove (use ..).
+       Specify LR as an input.
+ 2018-02-10  Jakub Jelinek  <jakub@redhat.com>
+       PR sanitizer/83987
+       * omp-low.c (maybe_remove_omp_member_access_dummy_vars,
+       remove_member_access_dummy_vars): New functions.
+       (lower_omp_for, lower_omp_taskreg, lower_omp_target,
+       lower_omp_1, execute_lower_omp): Use them.
+       PR rtl-optimization/84308
+       * shrink-wrap.c (spread_components): Release todo vector.
+ 2018-02-09  Vladimir Makarov  <vmakarov@redhat.com>
  
-       * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
-       power9.
+       PR rtl-optimization/57193
+       * ira-color.c (struct allocno_color_data): Add member
+       conflict_allocno_hard_prefs.
+       (update_conflict_allocno_hard_prefs): New.
+       (bucket_allocno_compare_func): Add a preference based on
+       conflict_allocno_hard_prefs.
+       (push_allocno_to_stack): Update conflict_allocno_hard_prefs.
+       (color_allocnos): Remove a dead code.  Initiate
+       conflict_allocno_hard_prefs.  Call update_costs_from_prefs.
+ 2018-02-09  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84226
+       * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand
+       constraint from =wa to wa.  Avoid a subreg on the output operand,
+       instead use a pseudo and subreg it in a move.
+       (p9_xxbrd_<mode>): Changed to ...
+       (p9_xxbrd_v2di): ... this insn, without VSX_D iterator.
+       (p9_xxbrd_v2df): New expander.
+       (p9_xxbrw_<mode>): Changed to ...
+       (p9_xxbrw_v4si): ... this insn, without VSX_W iterator.
+       (p9_xxbrw_v4sf): New expander.
+ 2018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rx/rx.md (movsicc): Update expander to be matched by GCC.
+ 2018-02-09  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/83926
+       * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit
+       multiply in 32-bit mode.
+       (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode.
+       (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit
+       mode.
  
- 2016-01-27  Christian Bruel  <christian.bruel@st.com>
+ 2018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
  
-       PR target/69245
-       * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
-       Move arm_reset_previous_fndecl and set_target_option_current_node in
-       the conditional part.  Call save_restore_target_globals.
-       * config/arm/arm.c (arm_set_current_function):
-       Refactor to better support #pragma target and attribute mix.
-       Call save_restore_target_globals.
-       * config/arm/arm-protos.h (save_restore_target_globals): New function.
+       * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint
+       to allow or block "symbol_ref" depending on the value of TARGET_JSR.
+       * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF.
+       * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF.
  
- 2016-01-27  Martin Liska  <mliska@suse.cz>
+ 2018-02-09  Pierre-Marie de Rodat  <derodat@adacore.com>
  
-       * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
-       reference for an HSA kernel and its host function.
+       PR lto/84213
+       * dwarf2out.c (is_trivial_indirect_ref): New function.
+       (dwarf2out_late_global_decl): Do not generate a location
+       attribute for variables that have a non-trivial DECL_VALUE_EXPR
+       and that are not defined in the current unit.
  
- 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR tree-optimization/69399
-       * wide-int.h (wi::lrshift): For larger precisions, only
-       use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
+       * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison
+       instead of a libcall for UNORDERED.
  
- 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
+ 2018-02-09  Tamar Christina  <tamar.christina@arm.com>
  
-       * config/arc/predicates.md (proper_comparison_operator): Reject
-       constant-constant comparison.
+       PR target/82641
+       * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX,
+       __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP.
  
- 2016-01-26  Tom de Vries  <tom@codesourcery.com>
+ 2018-02-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
  
-       PR tree-optimization/69110
-       * tree-data-ref.c (initialize_data_dependence_relation): Handle
-       DR_NUM_DIMENSIONS == 0.
+       PR target/PR84295
+       * config/s390/s390.c (s390_set_current_function): Invoke
+       s390_indirect_branch_settings also if fndecl didn't change.
  
- 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-02-09  Alexandre Oliva  <aoliva@redhat.com>
  
-       * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
-       isl_ast_op_cond and isl_ast_op_select.
-       (gcc_expression_from_isl_expr_op): Same.
+       * config/rs6000/rs6000.md (blockage): Set length to zero.
  
- 2016-01-26  Jason Merrill  <jason@redhat.com>
+ 2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR c++/68782
-       * tree.c (recompute_constructor_flags): Split out from
-       build_constructor.
-       (verify_constructor_flags): New.
-       * tree.h: Declare them.
+       * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
  
- 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 2018-02-09  Jakub Jelinek  <jakub@redhat.com>
  
-       PR rtl-optimization/69217
-       * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
-       are no TYPE_FIELDS set for the record type.
+       PR sanitizer/84285
+       * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS,
+       STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like
+       -static-lib*san.
  
- 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/84252
+       * var-tracking.c (vt_add_function_parameter): Punt for non-onepart
+       PARALLEL incoming that failed vt_get_decl_and_offset check.
  
-       PR target/68662
-       * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
-       toc_label_name unconditionally.
-       (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
-       SYMBOL_REF string.  Use toc_label_name instead of constructing
-       LCTOC1.
-       (rs6000_elf_declare_function_name): Use toc_label_name instead of
-       constructing LCTOC1.
+       PR middle-end/84237
+       * output.h (bss_initializer_p): Add NAMED argument, defaulted to false.
+       * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore
+       TREE_READONLY bit.
+       (get_variable_section): For decls in named .bss* sections pass true as
+       second argument to bss_initializer_p.
  
- 2016-01-26  Martin Sebor  <msebor@redhat.com>
+ 2018-02-09  Marek Polacek  <polacek@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
  
-       PR other/69477
-       * doc/extend.texi (Common Type Attributes): Move text that talks about
-       attribute packed from attribute aligned to the section discussing
-       the former attribute for clarity.
+       PR c++/83659
+       * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro.
+       Formatting fixes.  Verify first that tree_fits_poly_int64_p (op01).
+       Sync some changes from cxx_fold_indirect_ref.
+ 2018-02-09  Alexandre Oliva  <aoliva@redhat.com>
+       * cfgexpand.c (expand_gimple_basic_block): Handle inline entry
+       markers.
+       * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook.
+       (BLOCK_INLINE_ENTRY_LABEL): New.
+       (dwarf2out_var_location): Disregard inline entry markers.
+       (inline_entry_data): New struct.
+       (inline_entry_data_hasher): New hashtable type.
+       (inline_entry_data_hasher::hash): New.
+       (inline_entry_data_hasher::equal): New.
+       (inline_entry_data_table): New variable.
+       (add_high_low_attributes): Add DW_AT_entry_pc and
+       DW_AT_GNU_entry_view attributes if a pending entry is found
+       in inline_entry_data_table.  Add old entry_pc attribute only
+       if debug nonbinding markers are disabled.
+       (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding
+       markers are enabled.
+       (block_within_block_p, dwarf2out_inline_entry): New.
+       (dwarf2out_finish): Check that no entries remained in
+       inline_entry_data_table.
+       * final.c (reemit_insn_block_notes): Handle inline entry notes.
+       (final_scan_insn, notice_source_line): Likewise.
+       (rest_of_clean_state): Skip inline entry markers.
+       * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry
+       markers.
+       * gimple.c (gimple_build_debug_inline_entry): New.
+       * gimple.h (enum gimple_debug_subcode): Add
+       GIMPLE_DEBUG_INLINE_ENTRY.
+       (gimple_build_debug_inline_entry): Declare.
+       (gimple_debug_inline_entry_p): New.
+       (gimple_debug_nonbind_marker_p): Adjust.
+       * insn-notes.def (INLINE_ENTRY): New.
+       * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
+       inline entry marker notes.
+       (print_insn): Likewise.
+       * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support.
+       (INSN_DEBUG_MARKER_KIND): Likewise.
+       (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New.
+       * tree-inline.c (expand_call_inline): Build and insert
+       debug_inline_entry stmt.
+       * tree-ssa-live.c (remove_unused_scope_block_p): Preserve
+       inline entry blocks early, if nonbind markers are enabled.
+       (dump_scope_block): Dump fragment info.
+       * var-tracking.c (reemit_marker_as_note): Handle inline entry note.
+       * doc/gimple.texi (gimple_debug_inline_entry_p): New.
+       (gimple_build_debug_inline_entry): New.
+       * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers):
+       Enable/disable inline entry points too.
+       * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New.
+       (DEBUG_INSN): Describe inline entry markers.
+       * common.opt (gvariable-location-views): New.
+       (gvariable-location-views=incompat5): New.
+       * config.in: Rebuilt.
+       * configure: Rebuilt.
+       * configure.ac: Test assembler for view support.
+       * dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
+       * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
+       * dwarf2out.c (var_loc_view): New typedef.
+       (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
+       (dwarf2out_locviews_in_attribute): New.
+       (dwarf2out_locviews_in_loclist): New.
+       (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
+       (enum dw_line_info_opcode): Add LI_adv_address.
+       (struct dw_line_info_table): Add view.
+       (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
+       (DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
+       (zero_view_p): New variable.
+       (ZERO_VIEW_P): New macro.
+       (output_asm_line_debug_info): New.
+       (struct var_loc_node): Add view.
+       (add_AT_view_list, AT_loc_list): New.
+       (add_var_loc_to_decl): Add view param.  Test it against last.
+       (new_loc_list): Add view params.  Record them.
+       (AT_loc_list_ptr): Handle loc and view lists.
+       (view_list_to_loc_list_val_node): New.
+       (print_dw_val): Handle dw_val_class_view_list.
+       (size_of_die): Likewise.
+       (value_format): Likewise.
+       (loc_list_has_views): New.
+       (gen_llsym): Set vl_symbol too.
+       (maybe_gen_llsym, skip_loc_list_entry): New.
+       (dwarf2out_maybe_output_loclist_view_pair): New.
+       (output_loc_list): Output view list or entries too.
+       (output_view_list_offset): New.
+       (output_die): Handle dw_val_class_view_list.
+       (output_dwarf_version): New.
+       (output_compilation_unit_header): Use it.
+       (output_skeleton_debug_sections): Likewise.
+       (output_rnglists, output_line_info): Likewise.
+       (output_pubnames, output_aranges): Update version comments.
+       (output_one_line_info_table): Output view numbers in asm comments.
+       (dw_loc_list): Determine current endview, pass it to new_loc_list.
+       Call maybe_gen_llsym.
+       (loc_list_from_tree_1): Adjust.
+       (add_AT_location_description): Create view list attribute if
+       needed, check it's absent otherwise.
+       (convert_cfa_to_fb_loc_list): Adjust.
+       (maybe_emit_file): Call output_asm_line_debug_info for test.
+       (dwarf2out_var_location): Reset views as needed.  Precompute
+       add_var_loc_to_decl args.  Call get_attr_min_length only if we have the
+       attribute.  Set view.
+       (new_line_info_table): Reset next view.
+       (set_cur_line_info_table): Call output_asm_line_debug_info for test.
+       (dwarf2out_source_line): Likewise.  Output view resets and labels to
+       the assembler, or select appropriate line info opcodes.
+       (prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
+       (optimize_string_length): Catch it.  Adjust.
+       (resolve_addr): Copy vl_symbol along with ll_symbol.  Handle
+       dw_val_class_view_list, and remove it if no longer needed.
+       (hash_loc_list): Hash view numbers.
+       (loc_list_hasher::equal): Compare them.
+       (optimize_location_lists): Check whether a view list symbol is
+       needed, and whether the locview attribute is present, and
+       whether they match.  Remove the locview attribute if no longer
+       needed.
+       (index_location_lists): Call skip_loc_list_entry for test.
+       (dwarf2out_finish): Call output_asm_line_debug_info for test.
+       Use output_dwarf_version.
+       * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
+       (struct dw_val_node): Add val_view_list.
+       * final.c (SEEN_NEXT_VIEW): New.
+       (set_next_view_needed): New.
+       (clear_next_view_needed): New.
+       (maybe_output_next_view): New.
+       (final_start_function): Rename to...
+       (final_start_function_1): ... this.  Take pointer to FIRST,
+       add SEEN parameter.  Emit param bindings in the initial view.
+       (final_start_function): Reintroduce SEEN-less interface.
+       (final): Rename to...
+       (final_1): ... this.  Take SEEN parameter.  Output final pending
+       next view at the end.
+       (final): Reintroduce seen-less interface.
+       (final_scan_insn): Output pending next view before switching
+       sections or ending a block.  Mark the next view as needed when
+       outputting variable locations.  Notify debug backend of section
+       changes, and of location view changes.
+       (rest_of_handle_final): Adjust.
+       * toplev.c (process_options): Autodetect value for debug variable
+       location views option.  Warn on incompat5 without -gdwarf-5.
+       * doc/invoke.texi (gvariable-location-views): New.
+       (gvariable-location-views=incompat5): New.
+       (gno-variable-location-views): New.
+ 2018-02-08  David Malcolm  <dmalcolm@redhat.com>
+       PR tree-optimization/84136
+       * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion
+       that the result of find_edge is non-NULL.
+ 2018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
+       PR target/83008
+       * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of
+       storing integer register in SImode.  Fix cost of 256 and 512
+       byte aligned SSE register store.
+ 2018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
+       * config/i386/i386.c (ix86_multiplication_cost): Fix
+       multiplication cost for TARGET_AVX512DQ.
+ 2018-02-08  Marek Polacek  <polacek@redhat.com>
+       PR tree-optimization/84238
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of
+       get_range_strlen.
+ 2018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/84265
+       * tree-vect-stmts.c (vectorizable_store): Don't treat
+       VMAT_CONTIGUOUS accesses as grouped.
+       (vectorizable_load): Likewise.
  
- 2016-01-26  Richard Henderson  <rth@redhat.com>
+ 2018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/81635
+       * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare.
+       * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask)
+       (test_round_for_mask): New functions.
+       (wide_int_cc_tests): Call test_round_for_mask.
+       * tree-vrp.h (intersect_range_with_nonzero_bits): Declare.
+       * tree-vrp.c (intersect_range_with_nonzero_bits): New function.
+       * tree-data-ref.c (split_constant_offset_1): Use it to refine the
+       range returned by get_range_info.
+ 2018-02-08  Jan Hubicka  <hubicka@ucw.cz>
+       PR ipa/81360
+       * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare
+       * symtab.c: Include builtins.h
+       (symtab_node::output_to_lto_symbol_table_p): Move here
+       from lto-streamer-out.c:output_symbol_p.
+       * lto-streamer-out.c (write_symbol): Turn early exit to assert.
+       (output_symbol_p): Move all logic to symtab.c
+       (produce_symtab): Update.
+ 2018-02-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+       * config/s390/s390-opts.h (enum indirect_branch): Define.
+       * config/s390/s390-protos.h (s390_return_addr_from_memory)
+       (s390_indirect_branch_via_thunk)
+       (s390_indirect_branch_via_inline_thunk): Add function prototypes.
+       (enum s390_indirect_branch_type): Define.
+       * config/s390/s390.c (struct s390_frame_layout, struct
+       machine_function): Remove.
+       (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask)
+       (indirect_branch_table_label_no, indirect_branch_table_name):
+       Define variables.
+       (INDIRECT_BRANCH_NUM_OPTIONS): Define macro.
+       (enum s390_indirect_branch_option): Define.
+       (s390_return_addr_from_memory): New function.
+       (s390_handle_string_attribute): New function.
+       (s390_attribute_table): Add new attribute handler.
+       (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns.
+       (s390_indirect_branch_via_thunk): New function.
+       (s390_indirect_branch_via_inline_thunk): New function.
+       (s390_function_ok_for_sibcall): When jumping via thunk disallow
+       sibling call optimization for non z10 compiles.
+       (s390_emit_call): Force indirect branch target to be a single
+       register.  Add r1 clobber for non-z10 compiles.
+       (s390_emit_epilogue): Emit return jump via return_use expander.
+       (s390_reorg): Handle JUMP_INSNs as execute targets.
+       (s390_option_override_internal): Perform validity checks for the
+       new command line options.
+       (s390_indirect_branch_attrvalue): New function.
+       (s390_indirect_branch_settings): New function.
+       (s390_set_current_function): Invoke s390_indirect_branch_settings.
+       (s390_output_indirect_thunk_function):  New function.
+       (s390_code_end): Implement target hook.
+       (s390_case_values_threshold): Implement target hook.
+       (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target
+       macros.
+       * config/s390/s390.h (struct s390_frame_layout)
+       (struct machine_function): Move here from s390.c.
+       (TARGET_INDIRECT_BRANCH_NOBP_RET)
+       (TARGET_INDIRECT_BRANCH_NOBP_JUMP)
+       (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK)
+       (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK)
+       (TARGET_INDIRECT_BRANCH_NOBP_CALL)
+       (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE)
+       (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL)
+       (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX)
+       (TARGET_INDIRECT_BRANCH_TABLE): Define macros.
+       * config/s390/s390.md (UNSPEC_EXECUTE_JUMP)
+       (INDIRECT_BRANCH_THUNK_REGNUM): Define constants.
+       (mnemonic attribute): Add values which aren't recognized
+       automatically.
+       ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable
+       pattern for branch conversion.  Fix mnemonic attribute.
+       ("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit
+       indirect branch via thunk if requested.
+       ("indirect_jump", "<code>"): Expand patterns for branch conversion.
+       ("*indirect_jump"): Disable for branch conversion using out of
+       line thunks.
+       ("indirect_jump_via_thunk<mode>_z10")
+       ("indirect_jump_via_thunk<mode>")
+       ("indirect_jump_via_inlinethunk<mode>_z10")
+       ("indirect_jump_via_inlinethunk<mode>", "*casesi_jump")
+       ("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>")
+       ("casesi_jump_via_inlinethunk<mode>_z10")
+       ("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10")
+       ("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10")
+       ("*basr_r_via_thunk", "return<mode>_prez10"): New pattern.
+       ("*indirect2_jump"): Disable for branch conversion.
+       ("casesi_jump"): Turn into expander and expand patterns for branch
+       conversion.
+       ("return_use"): New expander.
+       ("*return"): Emit return via thunk and rename it to ...
+       ("*return<mode>"): ... this one.
+       * config/s390/s390.opt: Add new options and and enum for the
+       option values.
  
-       PR middle-end/60908
-       * trans-mem.c (tm_region_init): Mark entry block as visited.
+ 2018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
+       * lra-constraints.c (match_reload): Unconditionally use
+       gen_lowpart_SUBREG, rather than selecting between that
+       and equivalent gen_rtx_SUBREG code.
  
-       PR other/69006
-       * diagnostic-show-locus.c (layout::print_source_line): Replace
-       call to pp_newline with call to layout::print_newline.
-       (layout::print_annotation_line): Likewise.
-       (layout::move_to_column): Likewise.
-       (layout::print_any_fixits): After printing any fixits, print a
-       trailing newline, if necessary.
-       (layout::print_newline): New method, resetting any colorization
-       before a newline.
-       (diagnostic_show_locus): Move the pp_newline to before the
-       early bailout.  Remove dummy block enclosing the layout instance.
-       * diagnostic.c (default_diagnostic_finalizer): Replace invocation
-       of pp_newline_and_flush with pp_flush.
-       (diagnostic_append_note): Delete use of pp_newline.
-       (diagnostic_append_note_at_rich_loc): Delete.
-       * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
-       * pretty-print.h (output_buffer_append_r): Reset buff->line_length
-       when newline characters are added to the buffer.
- 2016-01-26  Michael Matz  <matz@suse.de>
-       * configure.ac (ac_cv_std_swap_in_utility): New test.
-       * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
-       * configure: Regenerate.
-       * config.in: Regenerate.
+ 2018-02-08  Richard Biener  <rguenther@suse.de>
  
- 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
+       PR tree-optimization/84233
+       * tree-ssa-phiprop.c (propagate_with_phi): Use separate
+       changed flag instead of boguously re-using phi_inserted.
  
-       * config/arc/arc.md (cstoresi4): Force operand into register.
-       (arcset<code>): Fix predicate.
-       (arcsetltu): Likewise.
-       (arcsetgeu): Likewise.
-       (arcsethi): Likewise.
-       (arcsetls): Likewise.
+ 2018-02-08  Martin Jambor  <mjambor@suse.cz>
  
- 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
+       * hsa-gen.c (get_symbol_for_decl): Set program allocation for
+       static local variables.
  
-       PR tree-optimization/69483
-       * gimple-fold.c (canonicalize_constructor_val): Return NULL
-       if base has error_mark_node type.
+ 2018-02-08  Richard Biener  <rguenther@suse.de>
  
- 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
+       PR tree-optimization/84278
+       * tree-vect-stmts.c (vectorizable_store): When looking for
+       smaller vector types to perform grouped strided loads/stores
+       make sure the mode is supported by the target.
+       (vectorizable_load): Likewise.
  
-       PR target/68620
-       * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
-       * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
-       New helper macros.
-       (vget_lane_f16): Handle big-endian.
-       (vgetq_lane_f16): Likewise.
-       (vset_lane_f16): Likewise.
-       (vsetq_lane_f16): Likewise.
-       * config/arm/iterators.md (VQXMOV): Add V8HF.
-       (VDQ): Add V4HF and V8HF.
-       (V_reg): Handle V4HF and V8HF.
-       (Is_float_mode): Likewise.
-       * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
-       neon_vdup_nv8hf): New patterns.
-       (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
-       Use VD_LANE iterator.
-       (neon_vld1_dup<mode>): Use VQ2 iterator.
+ 2018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
  
- 2016-01-26  Nathan Sidwell  <nathan@acm.org>
+       * config/aarch64/aarch64.c (aarch64_components_for_bb):
+       Increase LDP/STP opportunities by adding adjacent callee-saves.
  
-       * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
-       (set_oacc_fn_attrib): Add IS_KERNEL arg.
-       * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
-       (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
-       (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
-       (oacc_validate_dims): Add LEVEL arg, don't return level.
-       (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
-       oacc_validate_dims.
-       (execute_oacc_device_lower): Adjust, add more dump output.
-       * tree-ssa-loop.c (gate_oacc_kernels): Use
-       oacc_fn_attrib_kernels_p.
-       * tree-parloops.c (create_parallel_loop): Adjust
-       set_oacc_fn_attrib call.
+ 2018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
  
- 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
+       PR rtl-optimization/84068
+       PR rtl-optimization/83459
+       * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting.
  
-       PR lto/69254
-       * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
-       (append_compiler_options): Handle -fcilkplus.
-       (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
+ 2018-02-08  Aldy Hernandez  <aldyh@redhat.com>
  
- 2016-01-26  Nick Clifton  <nickc@redhat.com>
+       PR tree-optimization/84224
+       * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert.
+       * calls.c (gimple_alloca_call_p): Only return TRUE when we have
+       non-zero arguments.
  
-       PR target/66655
-       * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
-       been marked as DECL_ONE_ONLY but we do not the means to make it
-       so, then do not allow it to bind locally.
+ 2018-02-07  Iain Sandoe  <iain@codesourcery.com>
  
- 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
+       PR target/84113
+       * config/rs6000/altivec.md (*restore_world): Remove LR use.
+       * config/rs6000/predicates.md (restore_world_operation): Adjust op
+       count, remove one USE.
  
-       PR lto/69254
-       * opts.h (parse_sanitizer_options): New prototype.
-       * opts.c (sanitizer_opts): New array.
-       (parse_sanitizer_options): New function.
-       (common_handle_option): Use parse_sanitizer_options.
+ 2018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
- 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
+       * doc/install.texi (Configuration): Document the
+       --with-long-double-format={ibm,ieee} PowerPC configuration
+       options.
  
-       PR target/68986
-       * config/i386/i386.c (ix86_compute_frame_layout): Move stack
-       alignment adjustment to ...
-       (ix86_update_stack_boundary): Here.  Don't over-align stack for
-       __tls_get_addr.
-       (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
-       if __tls_get_addr is called.
+       PR target/84154
+       * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2):
+       Convert from define_expand to be define_insn_and_split.  Rework
+       float/double/_Float128 conversions to QI/HI/SImode to work with
+       both ISA 2.07 (power8) or ISA 3.0 (power9).  Fix regression where
+       conversions to QI/HImode types did a store and then a load to
+       truncate the value.  For conversions to VSX registers, don't split
+       the insn, instead emit the code directly.  Use the code iterator
+       any_fix to combine signed and unsigned conversions.
+       (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise.
+       (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
+       (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise.
+       (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise.
+       (fix_<mode>di2_hw): Likewise.
+       (fixuns_<mode>di2_hw): Likewise.
+       (fix_<mode>si2_hw): Likewise.
+       (fixuns_<mode>si2_hw): Likewise.
+       (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise.
+       (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise.
+       (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to
+       fix<uns>_trunc<SFDF:mode>si2_p8.
+       (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer used.
+       (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
+       (fix<uns>_<mode>_mem): Likewise.
+       (fctiw<u>z_<mode>_mem): Likewise.
+       (fix<uns>_<mode>_mem): Likewise.
+       (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent
+       the register allocator from doing a direct move to the GPRs to do
+       a store, and instead use the ISA 3.0 store byte/half-word from
+       vector register instruction.  For IEEE 128-bit floating point,
+       also optimize stores of 32-bit ints.
+       (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise.
+ 2018-02-07  Alan Hayward  <alan.hayward@arm.com>
+       * genextract.c (push_pathstr_operand): New function to support
+       [a-zA-Z].
+       (walk_rtx): Call push_pathstr_operand.
+       (print_path): Support [a-zA-Z].
+ 2018-02-07  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84037
+       * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member.
+       (cse_and_gimplify_to_preheader): Declare.
+       (vect_get_place_in_interleaving_chain): Likewise.
+       * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
+       ivexpr_map.
+       (_loop_vec_info::~_loop_vec_info): Delete it.
+       (cse_and_gimplify_to_preheader): New function.
+       * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export.
+       * tree-vect-stmts.c (vectorizable_store): CSE base and steps.
+       (vectorizable_load): Likewise.  For grouped stores always base
+       the IV on the first element.
+       * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning
+       condition before gimplifying.
+ 2018-02-07  Jakub Jelinek  <jakub@redhat.com>
+       * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for
+       *DIV_EXPR and *MOD_EXPR.
+ 2018-02-07  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/84248
+       * config/i386/i386.c (ix86_option_override_internal): Mask out
+       the CF_SET bit when checking -fcf-protection.
+ 2018-02-07  Tom de Vries  <tom@codesourcery.com>
+       PR libgomp/84217
+       * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large
+       enough.
+ 2018-02-07  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/84204
+       * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
+       this place.
+       PR tree-optimization/84205
+       * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also
+       special-case isl_ast_op_zdiv_r.
+       PR tree-optimization/84223
+       * graphite-scop-detection.c (gather_bbs::before_dom_children):
+       Only add conditions from within the region.
+       (gather_bbs::after_dom_children): Adjust.
+ 2018-02-07  Georg-Johann Lay  <avr@gjlay.de>
+       PR target/84209
+       * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros.
+       * config/avr/avr.md: Only post-reload split REG-REG moves if
+       either register is GENERAL_REG_P.
+ 2018-02-07  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/84235
+       * tree-ssa-scopedtables.c
+       (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt
+       if the subtraction is performed in floating point type where NaNs are
+       honored.  For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't
+       build 1.  Formatting fix.
  
- 2016-01-26  Christian Bruel  <christian.bruel@st.com>
+ 2018-02-06  Jakub Jelinek  <jakub@redhat.com>
  
-       * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
+       PR target/84146
+       * config/i386/i386.c (rest_of_insert_endbranch): Only skip
+       NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else,
+       and skip it regardless of bb boundaries.  Use CALL_P macro,
+       don't test INSN_P (insn) together with CALL_P or JUMP_P check
+       unnecessarily, formatting fix.
  
- 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 2018-02-06  Michael Collison  <michael.collison@arm.com>
  
-       * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
+       * config/arm/thumb2.md:
+       (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it.
+       (*thumb_mov_notscc): Ditto.
  
- 2016-01-26  Richard Biener  <rguenther@suse.de>
+ 2018-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
-       PR middle-end/69467
-       * match.pd: Guard X * CST CMP 0 pattern with single_use.
+       PR target/84154
+       * config/rs6000/rs6000.md (su code attribute): Use "u" for
+       unsigned_fix, not "s".
  
- 2016-01-26  Richard Biener  <rguenther@suse.de>
+ 2018-02-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
-       PR tree-optimization/69452
-       * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
-       (move_computations_dom_walker::before_dom_children): Rename
-       to ...
-       (move_computations_worker): This.
-       (move_computations): Perform an RPO rather than a DOM walk.
- 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
-       PR target/69442
-       * combine.c (combine_instructions): For REG_EQUAL note with
-       SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
-       to the underlying register.
-       * doc/rtl.texi (REG_EQUAL): Document the behavior of
-       REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
- 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
-       PR target/67896
-       * config/aarch64/aarch64-builtins.c
-       (aarch64_init_simd_builtin_types): Do not set structural
-       equality to __Poly{8,16,64,128}_t types.
- 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
-       PR tree-optimization/69400
-       * wide-int.cc (wi_pack): Take the precision as argument and
-       perform canonicalization here rather than in the callers.
-       Use the main loop to handle all full-width HWIs.  Add a
-       zero HWI if in_len isn't a full result.
-       (wi::divmod_internal): Update accordingly.
-       (wi::mul_internal): Likewise.  Simplify.
- 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * graphite-poly.c (apply_poly_transforms): Simplify.
-       (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
-       (print_isl_map): Same.
-       (print_isl_union_map): Same.
-       (print_isl_schedule): New.
-       (debug_isl_schedule): New.
-       * graphite-dependences.c (scop_get_reads): Do not call
-       isl_union_map_add_map that is undocumented isl functionality.
-       (scop_get_must_writes): Same.
-       (scop_get_may_writes): Same.
-       (scop_get_original_schedule): Remove.
-       (scop_get_dependences): Do not call isl_union_map_compute_flow that
-       is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
-       (compute_deps): Remove.
-       * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
-       (debug_schedule_ast): New.
-       (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
-       set_separate_option.
-       (graphite_regenerate_ast_isl): Add dump.
-       (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
-       from scop->transformed_schedule.
-       (graphite_regenerate_ast_isl): Add more dump.
-       * graphite-optimize-isl.c (optimize_isl): Set
-       scop->transformed_schedule.  Check whether schedules are equal.
-       (apply_poly_transforms): Move here.
-       * graphite-poly.c (apply_poly_transforms): ... from here.
-       (free_poly_bb): Static.
-       (free_scop): Static.
-       (pbb_number_of_iterations_at_time): Remove.
-       (print_isl_ast): New.
-       (debug_isl_ast): New.
-       (debug_scop_pbb): New.
-       * graphite-scop-detection.c (print_edge): Move.
-       (print_sese): Move.
-       * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
-       (build_scop_scattering): Remove.
-       (create_pw_aff_from_tree): Assert instead of bailing out.
-       (add_condition_to_pbb): Remove unused code, do not fail.
-       (add_conditions_to_domain): Same.
-       (add_conditions_to_constraints): Remove.
-       (build_scop_context): New.
-       (add_iter_domain_dimension): New.
-       (build_iteration_domains): Initialize pbb->iterators.
-       Call add_conditions_to_domain.
-       (nested_in): New.
-       (loop_at): New.
-       (index_outermost_in_loop): New.
-       (index_pbb_in_loop): New.
-       (outermost_pbb_in): New.
-       (add_in_sequence): New.
-       (add_outer_projection): New.
-       (outer_projection_mupa): New.
-       (add_loop_schedule): New.
-       (build_schedule_pbb): New.
-       (build_schedule_loop): New.
-       (embed_in_surrounding_loops): New.
-       (build_schedule_loop_nest): New.
-       (build_original_schedule): New.
-       (build_poly_scop): Call build_original_schedule.
-       * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
-       (free_poly_dr): Remove.
-       (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
-       (free_poly_bb): Remove.
-       (debug_loop_vec): Remove.
-       (print_isl_ast): Declare.
-       (debug_isl_ast): Declare.
-       (scop_do_interchange): Remove.
-       (scop_do_strip_mine): Remove.
-       (scop_do_block): Remove.
-       (flatten_all_loops): Remove.
-       (optimize_isl): Remove.
-       (pbb_number_of_iterations_at_time): Remove.
-       (debug_scop_pbb): Declare.
-       (print_schedule_ast): Declare.
-       (debug_schedule_ast): Declare.
-       (struct scop): Remove schedule.  Add original_schedule,
-       transformed_schedule.
-       (free_gimple_poly_bb): Remove.
-       (print_generated_program): Remove.
-       (debug_generated_program): Remove.
-       (unify_scattering_dimensions): Remove.
-       * sese.c (print_edge): ... here.
-       (print_sese): ... here.
-       (debug_edge): ... here.
-       (debug_sese): ... here.
-       * sese.h (print_edge): Declare.
-       (print_sese): Declare.
-       (dump_edge): Declare.
-       (dump_sese): Declare.
- 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * Makefile.in: Set ISLVER in site.exp.
- 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
-       * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
-       DECL_VALUE_EXPR of new_var even for the non-array case.  Look
-       through DECL_VALUE_EXPR for expansion.
- 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-       * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
-       the frame info after reload completed.
- 2016-01-25  Jeff Law  <law@redhat.com>
-       PR tree-optimization/69196
-       PR tree-optimization/68398
-       * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
-       tree-ssa-threadupdate.c.
-       (determine_bb_domination_status): Prototype
-       * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
-       (determine_bb_domination_status): No longer static.
-       (valid_jump_thread_path): Remove code to detect characteristics
-       of the jump thread path not associated with correctness.
-       * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
-       Correct test for thread path length.  Count PHIs for real operands as
-       statements that need to be copied.  Do not count ASSERT_EXPRs.
-       Look at all the blocks in the thread path.  Compute and selectively
-       filter thread paths based on threading through the latch, threading
-       a multiway branch or crossing a multiway branch.
- 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
-       decl with __attribute__ ((unused)) annotation.
- 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
-       PR target/69421
-       * tree-vect-stmts.c (vectorizable_condition): Check vectype
-       of operands is compatible with a statement vectype.
- 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
-       * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
-       improve wording for mixed storage order support.
- 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
-       * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
-       (vcvt_u64_f64): Likewise.
-       (vcvta_s64_f64): Likewise.
-       (vcvta_u64_f64): Likewise.
-       (vcvtm_s64_f64): Likewise.
-       (vcvtm_u64_f64): Likewise.
-       (vcvtn_s64_f64): Likewise.
-       (vcvtn_u64_f64): Likewise.
-       (vcvtp_s64_f64): Likewise.
-       (vcvtp_u64_f64): Likewise.
- 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
-       * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
-       (arc_init): Check validity mll64 option.
-       (arc_save_restore): Use double load/store instruction.
-       (arc_expand_movmem): Likewise.
-       (arc_split_move): Don't split if we have double load/store
-       instructions. Returns a boolean.
-       (arc_process_double_reg_moves): Change function to return boolean
-       instead of a sequence of instructions.
-       (arc_dwarf_register_span): New function.
-       * config/arc/arc-protos.h (arc_split_move): Change prototype.
-       * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
-       * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
-       (*movdf_insn): Likewise.
-       * config/arc/arc.opt (mll64): New option.
-       * config/arc/predicates.md (even_register_operand): New predicate.
-       * doc/invoke.texi (ARC Options): Add mll64 documentation.
- 2016-01-25  Richard Biener  <rguenther@suse.de>
-       PR lto/69393
-       * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
-       * tree-streamer-out.c (pack_ts_base_value_fields): Stream
-       DECL_NAMELESS.
-       * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
- 2016-01-25  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69376
-       * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
-       flag.
-       (VN_INFO_ANTI_RANGE_P): New inline.
-       (VN_INFO_RANGE_TYPE): Likewise.
-       * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
-       SSA_NAME_ANTI_RANGE_P.
-       (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
-       Properly query VN_INFO_RANGE_TYPE.
- 2016-01-25  Nick Clifton  <nickc@redhat.com>
-       PR target/66655
-       * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
- 2016-01-23  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/69426
-       * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
-       removed clobber.
- 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
-       * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
-       "the the" with "the" in the comments.
-       * ipa-devirt.c (build_type_inheritance_graph,
-       update_type_inheritance_graph): Likewise.
-       * tree.c (build_function_type_list_1): Likewise.
-       * cfgloopmanip.c (scale_loop_profile): Likewise.
-       * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
-       * gimple-ssa-split-paths.c
-       (find_block_to_duplicate_for_splitting_paths): Likewise.
-       * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
-       * expr.c (convert_move): Likewise.
-       * var-tracking.c (vt_stack_adjustments): Likewise.
-       * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
-       * tree-vrp.c (test_for_singularity): Likewise.
+       * configure.ac (gcc_fn_eh_frame_ro): New function.
+       (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for
+       correct .eh_frame permissions.
+       * configure: Regenerate.
  
-       * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
-       directly instead of building a temporary tree.
+ 2018-02-06  Andrew Jenner  <andrew@codeourcery.com>
  
-       PR bootstrap/69434
-       * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
-       remove <algorithm> include.
+       * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove
+       irrelevant options.
  
- 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
+ 2018-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
  
-       PR target/69432
-       * config/i386/i386.c: Include dojump.h.
-       (expand_small_movmem_or_setmem,
-       expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
-       fixes.
-       (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
-       if dynamic_check != -1.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal):
+       Display warning message for -mno-speculate-indirect-jumps.
  
- 2016-01-21  Jeff Law  <law@redhat.com>
+ 2018-02-06  Andrew Jenner  <andrew@codesourcery.com>
  
-       PR middle-end/69347
-       * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
-       record_temporary_equivalences.  Rewritten to avoid unnecessary calls
-       into dominated_by_p.
-       (cprop_into_successor_phis): Avoid unnecessary tests.
+       * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add
+       Undocumented.
+       * config/powerpcspe/sysv4.opt (mbit-align): Likewise.
  
- 2016-01-22  Richard Henderson  <rth@redhat.com>
+ 2018-02-06  Aldy Hernandez  <aldyh@redhat.com>
  
-       PR target/69416
-       * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
-       (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
+       PR tree-optimization/84225
+       * tree-eh.c (find_trapping_overflow): Only call
+       operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P.
  
- 2016-01-22  Michael Matz  <matz@suse.de>
+ 2018-02-06  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
  
-       * system.h (string, algorithm): Include only conditionally.
-       (new): Include always under C++.
-       * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
-       * final.c (toplevel): Ditto.
-       * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
-       * genconditions.c (write_header): Make gencondmd.c define
-       INCLUDE_STRING.
-       * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
+       PR target/84145
+       * config/i386/i386.c: Reimplement the check of possible options
+       -mibt/-mshstk conbination. Change error messages.
+       * doc/invoke.texi: Fix a typo: remove extra '='.
  
-       * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
-       * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
+ 2018-02-06  Marek Polacek  <polacek@redhat.com>
  
- 2016-01-22  Christian Bruel  <christian.bruel@st.com>
+       PR tree-optimization/84228
+       * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements.
  
-       PR target/68674
-       * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
+ 2018-02-06  Tamar Christina  <tamar.christina@arm.com>
  
- 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR target/82641
+       * config/arm/arm.c (arm_print_asm_arch_directives): Record already
+       emitted arch directives.
+       * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and
+       __ARM_FEATURE_COPROC before changing architectures.
  
-       PR target/69403
-       * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
-       define_insn_and_split.  Ensure operands[1] and operands[0] do not
-       get assigned the same register.
+ 2018-02-06  Richard Biener  <rguenther@suse.de>
  
- 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
+       * config/i386/i386.c (print_reg): Fix typo.
+       (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll.
  
-       * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
+ 2018-02-06  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-01-22  Christian Bruel  <christian.bruel@st.com>
+       * configure: Regenerate.
  
-       * config/arm/arm-c.c (arm_pragma_target_parse):
-       Remove warn_builtin_macro_redefined overwrite.
+ 2018-02-05  Martin Sebor  <msebor@redhat.com>
  
- 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
+       PR tree-optimization/83369
+       * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print
+       inlining context.
  
-       * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
-       flag_non_call_exceptions compatibility.
+ 2018-02-05  Martin Liska  <mliska@suse.cz>
  
- 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
+       * doc/invoke.texi: Cherry-pick upstream r323995.
  
-       PR debug/66668
-       * dwarf2out.c (add_child_die_after): New function.
-       (dwarf_qual_info_t): New type.
-       (dwarf_qual_info): New variable.
-       (qualified_die_p): New function.
-       (modified_type_die): For -fdebug-types-section, ensure
-       canonical order of qualifiers.  Put qualified DIEs adjacent
-       to the corresponding non-qualified type DIE and search there
-       for existing qualified DIEs.
+ 2018-02-05  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
+       * ira.c (ira_init_register_move_cost): Adjust comment.
  
-       * doc/extend.texi (scalar_storage_order type attribute): Document
-       restriction on type punning and aliasing, and remove future tense.
+ 2018-02-05  Martin Liska  <mliska@suse.cz>
  
- 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
+       PR gcov-profile/84137
+       * doc/gcov.texi: Fix typo in documentation.
  
-       PR target/69252
-       * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
-       first stage.
+ 2018-02-05  Martin Liska  <mliska@suse.cz>
  
- 2016-01-21  Jeff Law  <law@redhat.com>
+       PR gcov-profile/83879
+       * doc/gcov.texi: Document necessity of --dynamic-list-data when
+       using dlopen functionality.
  
-       PR middle-end/69347
-       * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
-       useless call to record_temporary_equivalences.
-       * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
-       allocate 10 slots in the bb_path vector and let it grow as needed.
-       (fsm_find_control_statement_thread_paths): Similarly for the next_path
-       vector.
+ 2018-02-05  Olga Makhotina  <olga.makhotina@intel.com>
  
- 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
+       * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd,
+       _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss,
+       _mm_maskz_range_ss, _mm_mask_range_round_ss,
+       _mm_maskz_range_round_ss): New intrinsics.
+       (__builtin_ia32_rangesd128_round)
+       (__builtin_ia32_rangess128_round): Remove.
+       (__builtin_ia32_rangesd128_mask_round,
+       __builtin_ia32_rangess128_mask_round): New builtins.
+       * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round,
+       __builtin_ia32_rangess128_round): Remove.
+       (__builtin_ia32_rangesd128_mask_round,
+       __builtin_ia32_rangess128_mask_round): New builtins.
+       * config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ...
+       (ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this.
+       ((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>"
+       "<round_saeonly_constraint>")): Changed to ...
+       ((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>"
+       "<round_saeonly_scalar_constraint>")): ... this.
+       ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
+       %0, %1, %2<round_saeonly_op4>, %3}"): Changed to ...
+       ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2,
+       %1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1,
+       %2<round_saeonly_scalar_mask_op4>, %3}"): ... this.
  
-       * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
-       Detangle.
-       * configure: Regenerate.
+ 2018-02-02  Andrew Jenner  <andrew@codesourcery.com>
  
- 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
+       * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant
+       options.
+       * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value):
+       Remove all values except native, 8540 and 8548.
+ 2018-02-02  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/i386.c (ix86_output_function_return): Pass
+       INVALID_REGNUM, instead of -1, as invalid register number to
+       indirect_thunk_name and output_indirect_thunk.
+ 2018-02-02  Julia Koval  <julia.koval@intel.com>
+       * config.gcc: Add -march=icelake.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake.
+       * config/i386/i386.c (processor_costs): Add m_ICELAKE.
+       (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2,
+       PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New.
+       (processor_target_table): Add icelake.
+       (ix86_option_override_internal): Handle new PTAs.
+       (get_builtin_code_for_version): Handle icelake.
+       (M_INTEL_COREI7_ICELAKE): New.
+       (fold_builtin_cpu): Handle icelake.
+       * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New.
+       * doc/invoke.texi: Add -march=icelake.
+ 2018-02-02  Julia Koval  <julia.koval@intel.com>
+       * config/i386/i386.c (ix86_option_override_internal): Change flags type
+       to wide_int_bitmask.
+       * wide-int-bitmask.h: New.
+ 2018-02-02  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+       PR target/84066
+       * config/i386/i386.md: Replace Pmode with word_mode in
+       builtin_setjmp_setup and builtin_longjmp to support x32.
+ 2018-02-01  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/56010
+       PR target/83743
+       * config/rs6000/driver-rs6000.c: #include "diagnostic.h".
+       #include "opts.h".
+       (rs6000_supported_cpu_names): New static variable.
+       (linux_cpu_translation_table): Likewise.
+       (elf_platform) <cpu>: Define new static variable and use it.
+       Translate kernel AT_PLATFORM name to canonical name if needed.
+       Error if platform name is unknown.
+ 2018-02-01  Aldy Hernandez  <aldyh@redhat.com>
+       PR target/84089
+       * config/pa/predicates.md (base14_operand): Handle E_VOIDmode.
+ 2018-02-01  Jeff Law  <law@redhat.com>
+       PR target/84128
+       * config/i386/i386.c (release_scratch_register_on_entry): Add new
+       OFFSET and RELEASE_VIA_POP arguments.  Use SP+OFFSET to restore
+       the scratch if RELEASE_VIA_POP is false.
+       (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE.
+       If we have to save a temporary register, decrement SIZE appropriately.
+       Pass new arguments to release_scratch_register_on_entry.
+       (ix86_adjust_stack_and_probe): Likewise.
+       (ix86_emit_probe_stack_range): Pass new arguments to
+       release_scratch_register_on_entry.
+ 2018-02-01  Uros Bizjak  <ubizjak@gmail.com>
+       PR rtl-optimization/84157
+       * combine.c (change_zero_ext): Use REG_P predicate in
+       front of HARD_REGISTER_P predicate.
+ 2018-02-01  Georg-Johann Lay  <avr@gjlay.de>
+       * config/avr/avr.c (avr_option_override): Move disabling of
+       -fdelete-null-pointer-checks to...
+       * common/config/avr/avr-common.c (avr_option_optimization_table):
+       ...here.
  
-       * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
-       * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
+ 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
+       PR tree-optimization/81635
+       * tree-data-ref.c (split_constant_offset_1): For types that
+       wrap on overflow, try to use range info to prove that wrapping
+       cannot occur.
  
-       PR middle-end/66178
-       * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
-       drop EXPAND_INITIALIZER.
-       * rtl.h (contains_symbolic_reference_p): Declare.
-       * rtlanal.c (contains_symbolic_reference_p): New function.
-       * simplify-rtx.c (simplify_binary_operation_1): Don't turn
-       a subtraction into a NOT if symbolic constants are involved.
+ 2018-02-01  Renlin Li  <renlin.li@arm.com>
  
- 2016-01-21  Anton Blanchard  <anton@samba.org>
-           Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       PR target/83370
+       * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
+       TAILCALL_ADDR_REGS.
+       (aarch64_register_move_cost): Likewise.
+       * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to
+       TAILCALL_ADDR_REGS.
+       (REG_CLASS_NAMES): Likewise.
+       (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to
+       TAILCALL_ADDR_REGS. Remove IP registers.
+       * config/aarch64/aarch64.md (Ucs): Update register constraint.
+ 2018-02-01  Richard Biener  <rguenther@suse.de>
+       * domwalk.h (dom_walker::dom_walker): Add additional constructor
+       for specifying RPO order and allow NULL for that.
+       * domwalk.c (dom_walker::dom_walker): Likewise.
+       (dom_walker::walk): Handle NULL RPO order.
+       * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children
+       in RPO order.
+       (rewrite_update_dom_walker): Likewise.
+       (mark_def_dom_walker): Likewise.
+ 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move)
+       (aarch64_maybe_expand_sve_subreg_move): Declare.
+       * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec.
+       * config/aarch64/predicates.md (aarch64_any_register_operand): New
+       predicate.
+       * config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves
+       that are semantically a reverse operation.
+       (*aarch64_sve_mov<mode>_subreg_be): New pattern.
+       * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
+       (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New
+       functions.
+       (aarch64_can_change_mode_class): For big-endian, forbid changes
+       between two SVE modes if they have different element sizes.
  
-       PR target/63354
-       * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
-       #define.
-       * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
-       function.
+ 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
+       * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer
+       the TImode handling for big-endian targets.
  
-       * config/microblaze/microblaze.c
-       (get_branch_target): New.
-       (insert_wic_for_ilb_runout): New.
-       (insert_wic): New.
-       (microblaze_machine_dependent_reorg): New.
-       (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
-       * config/microblaze/microblaze.md
-       (UNSPEC_IPREFETCH): Define.
-       (iprefetch): New pattern
-       * config/microblaze/microblaze.opt
-       (mxl-prefetch): New flag.
+ 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
+       * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with...
+       (*sve_ld1rq<Vesize>): ... this new pattern.  Handle all element sizes,
+       not just bytes.
+       * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate):
+       Remove BSWAP handing for big-endian targets and use the form of
+       LD1RQ appropariate for the mode.
  
-       * config/microblaze/microblaze.h
-       (FIXED_REGISTERS): Update in macro.
-       (CALL_USED_REGISTERS): Update in macro.
+ 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
+       * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle
+       all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single
+       duplicated element.
  
-       PR rtl-optimization/68920
-       * ifcvt.c (cond_move_process_if_block): Limit number of conditional
-       moves.
+ 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
+       PR tearget/83845
+       * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten
+       check for operands that need to go through aarch64_sve_reload_be.
  
-       PR rtl-optimization/68990
-       * lra-coalesce.c (lra_coalesce): Invalidate value for the result
-       pseudo instead of inheritance ones.
+ 2018-02-01  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-           Nick Clifton  <nickc@redhat.com>
+       PR tree-optimization/81661
+       PR tree-optimization/84117
+       * tree-eh.h (rewrite_to_non_trapping_overflow): Declare.
+       * tree-eh.c: Include gimplify.h.
+       (find_trapping_overflow, replace_trapping_overflow,
+       rewrite_to_non_trapping_overflow): New functions.
+       * tree-vect-loop.c: Include tree-eh.h.
+       (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow.
+       * tree-data-ref.c: Include tree-eh.h.
+       (get_segment_min_max): Use rewrite_to_non_trapping_overflow.
  
-       PR target/69129
-       PR target/69012
-       * config/mips/mips.c (mips_compute_frame_info): Initialise
-       args_size and hard_frame_pointer_offset fields of the frame
-       structure before calling mips_global_pointer.
+ 2018-01-31  Uros Bizjak  <ubizjak@gmail.com>
  
- 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
+       PR rtl-optimization/84123
+       * combine.c (change_zero_ext): Check if hard register satisfies
+       can_change_dest_mode before calling gen_lowpart_SUBREG.
  
-       * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
-       label reference.
-       * configure: Regenerate.
+ 2018-01-31  Vladimir Makarov  <vmakarov@redhat.com>
  
- 2016-01-21  Richard Biener  <rguenther@suse.de>
+       PR target/82444
+       * ira.c (ira_init_register_move_cost): Remove assert.
  
-       * graphite-optimize-isl.c (get_schedule_map): Fix typo.
+ 2018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-01-21  Marcin KoÅ›cielnicki  <koriakin@0x04.net>
+       PR rtl-optimization/84071
+       * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case.
+       * doc/tm.texi: Regenerate.
  
-       * config/s390/s390.c (s390_asm_declare_function_size): Add code
-       to actually emit the .size directive.
+ 2018-01-31  Richard Biener  <rguenther@suse.de>
  
- 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
-            Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/84132
+       * tree-data-ref.c (analyze_miv_subscript): Properly
+       check whether evolution_function_is_affine_multivariate_p
+       before calling gcd_of_steps_may_divide_p.
  
-       PR target/69187
-       PR target/65624
-       * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
-       args array size by one to avoid buffer overflow.
+ 2018-01-31  Julia Koval  <julia.koval@intel.com>
  
- 2016-01-21  Marcin KoÅ›cielnicki  <koriakin@0x04.net>
+       PR target/83618
+       * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
+       * config/i386/i386.md (rdpid_rex64) New.
+       (rdpid): Make 32bit only.
  
-       * config/s390/s390.md (pool_section_start): Use switch_to_section
-       to select proper read-only data section instead of hardcoding
-       .rodata.
-       (pool_section_end): Use switch_to_section to match the above.
+ 2018-01-29  Aldy Hernandez  <aldyh@redhat.com>
  
- 2016-01-21  Richard Biener  <rguenther@suse.de>
+       PR lto/84105
+       * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with
+       an IDENTIFIER_NODE for FUNCTION_TYPE's.
  
-       PR tree-optimization/69378
-       * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
-       (set_ssa_val_to): Use it for dominance checks taking into
-       account not executable edges.
+ 2018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
  
- 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
+       Revert
+       2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR c++/69355
-       * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
-       for bitsize instead of GET_MODE_PRECISION (mode).
+       * config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
  
- 2016-01-20  Martin Sebor  <msebor@redhat.com>
+ 2018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
  
-       PR c/52291
-       * extend.texi (__sync Builtins): Clarify the semantics of
-       __sync_fetch_and_OP built-ins on pointers.
-       (__atomic Builtins): Same.
+       PR rtl-optimization/84071
+       * combine.c (record_dead_and_set_regs_1): Record the source unmodified
+       for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.
  
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
-       (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
-       (is_valid_rename): Same.
-       (translate_isl_ast_to_gimple::get_rename): Same.
-       (translate_isl_ast_to_gimple::rename_all_uses): Same.
-       (translate_isl_ast_to_gimple::rename_uses): Same.
-       (get_new_name): Check for close_phi nodes.
-       (copy_loop_phi_args): Use phi_node_kind.
-       (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
-       (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
+       * config/arc/arc.c (arc_handle_aux_attribute): New function.
+       (arc_attribute_table): Add 'aux' attribute.
+       (arc_in_small_data_p): Consider aux like variables.
+       (arc_is_aux_reg_p): New function.
+       (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables.
+       (arc_get_aux_arg): New function.
+       (prepare_move_operands): Handle aux-register access.
+       (arc_handle_aux_attribute): New function.
+       * doc/extend.texi (ARC Variable attributes): Add subsection.
  
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
  
-       Revert commit r229783.
-       * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
-       Remove use of parameter_rename_map.
-       (copy_def): Remove.
-       (copy_internal_parameters): Remove.
-       (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
-       * sese.c (new_sese_info): Do not initialize parameter_rename_map.
-       (free_sese_info): Do not free parameter_rename_map.
-       (set_rename): Do not use parameter_rename_map.
-       (rename_uses): Update call to set_rename.
-       (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
-       * sese.h (parameter_rename_map_t): Remove.
-       (struct sese_info_t): Remove field parameter_rename_map.
+       * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.
+       * config/arc/arc.c (arc_handle_uncached_attribute): New function.
+       (arc_attribute_table): Add 'uncached' attribute.
+       (arc_print_operand): Print '.di' flag for uncached memory
+       accesses.
+       (arc_in_small_data_p): Do not consider for small data the uncached
+       types.
+       (arc_is_uncached_mem_p): New function.
+       * config/arc/predicates.md (compact_store_memory_operand): Check
+       for uncached memory accesses.
+       (nonvol_nonimm_operand): Likewise.
+       * gcc/doc/extend.texi (ARC Type Attribute): New subsection.
  
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
  
-       * graphite-isl-ast-to-gimple.c: Fix comment.
-       * graphite-scop-detection.c (defined_in_loop_p): New.
-       (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
-       names defined in loop.
+       PR c/84100
+       * common.opt (falign-functions=, falign-jumps=, falign-labels=,
+       falign-loops=): Add Optimization flag.
  
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-01-30  Jeff Law  <law@redhat.com>
  
-       * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
-       Discard unstructured if-then-else regions.
+       PR target/84064
+       * i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
+       INT_REGISTERS_SAVED.  Check it prior to calling
+       get_scratch_register_on_entry.
+       (ix86_adjust_stack_and_probe): Similarly.
+       (ix86_emit_probe_stack_range): Similarly.
+       (ix86_expand_prologue): Corresponding changes.
  
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
-       * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
-       (cleanup_loop_iter_dom): Remove.
-       (build_loop_iteration_domains): Remove.
-       (build_scop_context): Remove.
-       (build_scop_iteration_domain): Remove.
-       (add_loop_constraints): New.
-       (build_iteration_domains): New.
-       (build_poly_scop): Call build_iteration_domains.
+       PR target/40411
+       * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*,
+       -std=iso9899:199409 instead of -pedantic to select values-Xc.o.
  
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
+ 2018-01-30  Vladimir Makarov  <vmakarov@redhat.com>
  
-       * graphite-scop-detection.c
-       (scop_detection::harmful_loop_in_region): Free dom and loops.
-       (scop_detection::loop_body_is_valid_scop): Free bbs.
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * graphite-scop-detection.c (record_loop_in_sese): New.
-       (gather_bbs::before_dom_children): Call record_loop_in_sese.
-       (build_scops): Remove call to build_sese_loop_nests.
-       * sese.c (sese_record_loop): Remove.
-       (build_sese_loop_nests): Remove.
-       (new_sese_info): Remove region->loops.
-       (free_sese_info): Same.
-       * sese.h (sese_contains_loop): Same.
-       (build_sese_loop_nests): Remove.
-       (sese_contains_loop): Remove.
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * graphite-scop-detection.c (loop_is_valid_scop): Renamed
-       loop_is_valid_in_scop.
-       (scop_detection::harmful_stmt_in_region): Renamed
-       harmful_loop_in_region.
-       Call loop_is_valid_in_scop.
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
-       isl_ast_node_mark.
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
-       * graphite.h (struct poly_bb): Remove field is_reduction.
-       (PBB_IS_REDUCTION): Remove.
- 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
-           Sebastian Pop  <s.pop@samsung.com>
-       * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
-       (add_pdr_constraints): Same.
-       (scop_get_reads): Same.
-       (scop_get_must_writes): Same.
-       (scop_get_may_writes): Same.
-       (scop_get_original_schedule): Same.
-       (extend_schedule): Same.
-       (apply_schedule_on_deps): Same.
-       (carries_deps): Same.
-       (compute_deps): Same.
-       (scop_get_dependences): Same.
-       * graphite-isl-ast-to-gimple.c
-       (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
-       * graphite-optimize-isl.c (get_schedule_for_band): Same.
-       (get_schedule_for_band_list): Same.
-       (get_schedule_map): Same.
-       (apply_schedule_map_to_scop): Same.
-       * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
-       (build_loop_iteration_domains): Same.
-       (add_condition_to_pbb): Same.
-       (add_param_constraints): Same.
-       (pdr_add_memory_accesses): Same.
-       (pdr_add_data_dimensions): Same.
- 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
-       * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
-       requirements.
- 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
-       * common.opt (feliminate-dwarf2-dups): Replace references to
-       "DWARF 2" with just "DWARF".
-       * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
-       * doc/extend.texi: Likewise.
-       * doc/cpp.texi: Likewise.
-       * doc/invoke.texi: Likewise.
-       (Option Summary): Add -gdwarf to list of Debugging Options.
-       (Debugging Options): Document -gdwarf.
-       * doc/contrib.texi: Spell "DWARF" like that.
- 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
-       * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
-       warning.  Fix up formatting.
-       PR middle-end/67653
-       * gimplify.c (gimplify_asm_expr): Warn if it is too late to
-       attempt to mark memory input operand addressable and
-       call prepare_gimple_addressable in that case.  Don't adjust
-       input_location for diagnostics, use error_at instead.
- 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
-       * config/rs6000/ppc-auxv.h: New file.
-       * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
-       (cpu_is): Likewise.
-       (cpu_supports): Likewise.
-       * config/rs6000/rs6000.c: include "ppc-auxv.h".
-       (cpu_is_info): New variable.
-       (cpu_supports_info): Likewise.
-       (tcb_verification_symbol): Likewise.
-       (cpu_builtin_p): Likewise.
-       (cpu_expand_builtin): New function.
-       (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
-       (rs6000_init_builtins): Likewise.
-       (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
-       * config/rs6000/rs6000.h (TLS_REGNUM): New define.
-       * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
-       * configure: Regenerate.
-       * config.in: Likewise.
-       * doc/extend.texi (PowerPC Built-in Functions): Document
-       __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
+       PR target/84112
+       * lra-constraints.c (curr_insn_transform): Process AND in the
+       address.
  
- 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
+ 2018-01-30  Jakub Jelinek  <jakub@redhat.com>
  
-       PR target/68609
-       * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
-       domain check.
-       * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
-       for V4SFmode.
+       PR rtl-optimization/83986
+       * sched-deps.c (sched_analyze_insn): For frame related insns, add anti
+       dependence against last_pending_memory_flush in addition to
+       pending_jump_insns.
  
- 2016-01-20  Richard Henderson  <rth@redhat.com>
+ 2018-01-30  Alexandre Oliva  <aoliva@redhat.com>
  
-       PR bootstrap/69343
-       PR bootstrap/69339
-       PR tree-opt/68964
-       Revert:
-       * tree.c (tm_define_builtin): New.
-       (find_tm_vector_type): New.
-       (build_tm_vector_builtins): New.
-       (build_common_builtin_nodes): Call it.
+       PR tree-optimization/81611
+       * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening
+       copies.
  
- 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 2018-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
  
-       * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
-       (arm_fp_ok): Likewise.
-       (arm_fp): Likewise.
-       (arm_crypto): Likewise.
+       PR target/83758
+       * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return
+       a reg rtx.
  
- 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
-           Richard Biener  <rguenther@suse.de>
+ 2018-01-30  Richard Biener  <rguenther@suse.de>
+           Jakub Jelinek  <jakub@redhat.com>
  
-       PR tree-optimization/69328
-       * tree-vect-stmts.c (vect_is_simple_cond): Check compared
-       vectors have same number of elements.
-       (vectorizable_condition): Fix masked version recognition.
+       PR tree-optimization/84111
+       * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip
+       inner loops added during recursion, as they don't have up-to-date
+       SSA form.
  
- 2016-01-20  Richard Biener  <rguenther@suse.de>
+ 2018-01-30  Jan Hubicka  <hubicka@ucw.cz>
  
-       PR tree-optimization/69345
-       * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
-       (VN_INFO_PTR_INFO): Likewise.
-       * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
-       info when it is equal between non-dominating SSA names.
-       * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
-       Make sure to look at original SSA infos.
+       PR ipa/81360
+       * ipa-inline.c (can_inline_edge_p): Break out late tests to...
+       (can_inline_edge_by_limits_p): ... here.
+       (can_early_inline_edge_p, check_callers,
+       update_caller_keys, update_callee_keys, recursive_inlining,
+       add_new_edges_to_heap, speculation_useful_p,
+       inline_small_functions,
+       inline_small_functions, flatten_function,
+       inline_to_all_callers_1): Update.
  
- 2016-01-20  Jeff Law  <law@redhat.com>
+ 2018-01-30  Jan Hubicka  <hubicka@ucw.cz>
  
-       PR target/25114
-       * config/m68k/predicates.md (pow2_m1_operand): New predicate
-       extracted from ...
-       (reg_or_pow2_m1_operand): Call pow2_m1_operand.
-       (pc_or_label_operand): New predicate.
-       * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
-       tests for small integers that are 2^n - 1.
+       * profile-count.c (profile_count::combine_with_ipa_count): Handle
+       zeros correctly.
  
- 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
+ 2018-01-30  Richard Biener  <rguenther@suse.de>
  
-       * doc/invoke.texi (Options Summary): Add '.' after @xref.
+       PR tree-optimization/83008
+       * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost
+       invariant and constant vector uses in stmts when they need
+       more than one stmt.
  
- 2016-01-19  Jeff Law  <law@redhat.com>
+ 2018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
-       PR middle-end/69347
-       * tree-ssa-threadbackwards.c
-       (fsm_find_control_statement_thread_paths): Do not try to lookup
-       FSM paths for SSA_NAMEs appearing in abnormal PHIs.
+       PR bootstrap/84017
+       * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86.
+       * configure: Regenerate.
  
- 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
+ 2018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       * doc/lto.texi: Remove text that says only Gold has linker plugin
-       support.
+       * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New
+       pattern.
+       (*vec_extract<mode><Vel>_v128): Require a nonzero lane number.
+       Use gen_rtx_REG rather than gen_lowpart.
  
- 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
-       * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
-       (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
-       the DIE accordingly.
-       (modified_type_die): Add REVERSE parameter and pass it recursively,
-       as well as to base_type_die.  Adjust presence check accordingly.
-       (base_type_for_mode): Adjust call to modified_type_die.
-       (add_type_attribute): Add REVERSE parameter and pass it to
-       modified_type_die.
-       (generic_parameter_die): Adjust call to add_type_attribute.
-       (add_scalar_info): Likewise.
-       (add_subscript_info): Likewise.
-       (gen_array_type_die): Likewise.
-       (gen_descr_array_type_die): Likewise.
-       (gen_entry_point_die): Likewise.
-       (gen_enumeration_type_die): Likewise.
-       (gen_formal_parameter_die): Likewise.
-       (gen_subprogram_die): Likewise.
-       (gen_variable_die ): Likewise.
-       (gen_const_die): Likewise.
-       (gen_field_die): Likewise.
-       (gen_pointer_type_die): Likewise.
-       (gen_reference_type_die): Likewise.
-       (gen_ptr_to_mbr_type_die): Likewise.
-       (gen_inheritance_die): Likewise.
-       (gen_subroutine_type_die): Likewise.
-       (gen_typedef_die): Likewise.
-       (force_type_die): Adjust call to modified_type_die.
- 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
-       * doc/standards.texi: Copy-editing for grammar, markup, and sentence
-       flow throughout the file.  Fix broken link to Objective-C 2.0
-       documentation.
-       * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
-       errors.
- 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
-       * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
- 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
-       PR ipa/66223
-       * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
-       (maybe_record_node): Record cxa_pure_virtual as the only possible
-       target if there are not ohter candidates.
-       (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
- 2016-01-19  Richard Biener  <rguenther@suse.de>
-       * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
-       (get_memory_order): Likewise.
- 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
-       * tree-vect-stmts.c (vectorizable_store): Check
-       rhs vectype.
- 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
-       PR jit/68446
-       * gcc.c (driver::decode_argv): Add call to
-       init_opts_obstack before init_options_struct.
-       * opts.c (init_opts_obstack): Remove idempotency.
-       (init_options_struct): Replace call to init_opts_obstack
-       with a gcc_assert to verify that it has already been called.
-       * toplev.c (toplev::main): Add call to init_opts_obstack before
-       calls to init_options_struct.
-       (toplev::finalize): Move cleanup of opts_obstack next to
-       cleanup of save_decoded_options, clearing the latter, and
-       save_decoded_options_count.
- 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR target/69135
-       * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
-       attribute to unconditional.  Remove %? from output template.
- 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
-           Jiong Wang  <jiong.wang@arm.com>
-       * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
-       generated from different expand order.
- 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
-       * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
-       Add support for CCMP costing.
- 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
-       * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
-       * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
-       (fccmpe<mode>): Likewise.
-       (fcmp): Rename to fcmp and globalize pattern.
-       (fcmpe): Likewise.
-       * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
-       (aarch64_gen_ccmp_next): Add FP support.
- 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
-       * target.def (gen_ccmp_first): Update documentation.
-       (gen_ccmp_next): Likewise.
-       * doc/tm.texi (gen_ccmp_first): Update documentation.
-       (gen_ccmp_next): Likewise.
-       * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
-       expand_ccmp_expr_1.  Improve comments.
-       * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
-       (ccmp_ior<mode>): Remove pattern.
-       (cmp<mode>): Remove expand.
-       (cmp): Globalize pattern.
-       (cstorecc4): Use cc_register.
-       (mov<mode>cc): Remove ccmp_cc_register check.
-       * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
-       Simplify after removal of CC_DNE/* modes.
-       (aarch64_ccmp_mode_to_code): Remove.
-       (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
-       In 'k' case use integer as condition.
-       (aarch64_nzcv_codes): Remove inverted cases.
-       (aarch64_code_to_ccmode): Remove.
-       (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
-       comparison with CC register to be used in folowing CCMP/branch/CSEL.
-       (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
-       pattern.  Return the comparison with CC register.  Invert conditions
-       when bitcode is OR.
-       * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
-       * config/aarch64/predicates.md (ccmp_cc_register): Remove.
- 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
-       * cgraphunit.c (cgraph_node::reset): Clear thunk info and
-       instrumented_version.
- 2016-01-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69336
-       * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
-       handled components with get_ref_base_and_extent.
-       (equal_mem_array_ref_p): Adjust.
- 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
-       PR debug/65779
-       * shrink-wrap.c: Include valtrack.h.
-       (move_insn_for_shrink_wrap): Add DEBUG argument.  If
-       MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
-       in between insn and where it will be moved to.  Call
-       dead_debug_insert_temp.
-       (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
-       first and dead_debug_local_finish at the end.
-       For uses and defs bitmap, handle all regs in between REGNO and
-       END_REGNO, not just the first one.
- 2016-01-19  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69352
-       * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
-       (equal_mem_array_ref_p): Constrain size and max size properly.
-       Compare the reverse flag.
- 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
-       * ira.c (ira): Update regstat data if we deleted insns.
- 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
-       PR rtl-optimization/68955
-       PR rtl-optimization/64557
-       * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
-       here.  Fix up formatting.
-       * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
- 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
-       PR lto/69133
-       * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
-       assume that the node has body.
-       * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
-       check.
- 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
-       * lto-streamer-out.c (lto_output): Do not stream instrumentation
-       thunks.
+ 2018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
+       * lra-constraints.c (match_reload): Use subreg_lowpart_offset
+       rather than 0 when creating partial subregs.
  
-       * symtab.c (symtab_node::asm_name): Do not call printable name directly.
-       (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
+ 2018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-19  Martin Jambor  <mjambor@suse.cz>
-           Martin Liska  <mliska@suse.cz>
-           Michael Matz  <matz@suse.de>
-       * Makefile.in (OBJS): Add new source files.
-       (GTFILES): Add hsa.c.
-       * common.opt (disable_hsa): New variable.
-       (-Whsa): New warning.
-       * config.in (ENABLE_HSA): New.
-       * configure.ac: Treat hsa differently from other accelerators.
-       (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
-       $enable_offloading.
-       (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
-       * doc/install.texi (Configuration): Document --with-hsa-runtime,
-       --with-hsa-runtime-include, --with-hsa-runtime-lib and
-       --with-hsa-kmt-lib.
-       * doc/invoke.texi (-Whsa): Document.
-       (hsa-gen-debug-stores): Likewise.
-       * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
-       to invoke offload compiler for hsa acclerator.
-       * opts.c (common_handle_option): Determine whether HSA offloading
-       should be performed.
-       * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
-       * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
-       (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
-       (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
-       * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
-       * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
-       GF_OMP_FOR_KIND_GRID_LOOP.
-       (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
-       (pp_gimple_stmt_1): Likewise.
-       * gimple-walk.c (walk_gimple_stmt): Likewise.
-       * gimple.c (gimple_build_omp_grid_body): New function.
-       (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
-       * gimple.def (GIMPLE_OMP_GRID_BODY): New.
-       * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
-       GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
-       GF_OMP_TEAMS_GRID_PHONY.
-       (gimple_statement_omp_single_layout): Updated comments.
-       (gimple_build_omp_grid_body): New function.
-       (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
-       (gimple_omp_for_grid_phony): New function.
-       (gimple_omp_for_set_grid_phony): Likewise.
-       (gimple_omp_parallel_grid_phony): Likewise.
-       (gimple_omp_parallel_set_grid_phony): Likewise.
-       (gimple_omp_teams_grid_phony): Likewise.
-       (gimple_omp_teams_set_grid_phony): Likewise.
-       (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
-       * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
-       (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
-       (BUILT_IN_GOMP_TARGET): Updated type.
-       * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
-       (adjust_for_condition): New function.
-       (get_omp_for_step_from_incr): Likewise.
-       (extract_omp_for_data): Moved parts to adjust_for_condition and
-       get_omp_for_step_from_incr.
-       (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
-       (fixup_child_record_type): Bail out if receiver_decl is NULL.
-       (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
-       (scan_omp_parallel): Do not create child functions for phony
-       constructs.
-       (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
-       (scan_omp_1_op): Checking assert we are not remapping to
-       ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
-       (parallel_needs_hsa_kernel_p): New function.
-       (expand_parallel_call): Register apprpriate parallel child
-       functions as HSA kernels.
-       (grid_launch_attributes_trees): New type.
-       (grid_attr_trees): New variable.
-       (grid_create_kernel_launch_attr_types): New function.
-       (grid_insert_store_range_dim): Likewise.
-       (grid_get_kernel_launch_attributes): Likewise.
-       (get_target_argument_identifier_1): Likewise.
-       (get_target_argument_identifier): Likewise.
-       (get_target_argument_value): Likewise.
-       (push_target_argument_according_to_value): Likewise.
-       (get_target_arguments): Likewise.
-       (expand_omp_target): Call get_target_arguments instead of looking
-       up for teams and thread limit.
-       (grid_expand_omp_for_loop): New function.
-       (grid_arg_decl_map): New type.
-       (grid_remap_kernel_arg_accesses): New function.
-       (grid_expand_target_kernel_body): New function.
-       (expand_omp): Call it.
-       (lower_omp_for): Do not emit phony constructs.
-       (lower_omp_taskreg): Do not emit phony constructs but create for them
-       a temporary variable receiver_decl.
-       (lower_omp_taskreg): Do not emit phony constructs.
-       (lower_omp_teams): Likewise.
-       (lower_omp_grid_body): New function.
-       (lower_omp_1): Call it.
-       (grid_reg_assignment_to_local_var_p): New function.
-       (grid_seq_only_contains_local_assignments): Likewise.
-       (grid_find_single_omp_among_assignments_1): Likewise.
-       (grid_find_single_omp_among_assignments): Likewise.
-       (grid_find_ungridifiable_statement): Likewise.
-       (grid_target_follows_gridifiable_pattern): Likewise.
-       (grid_remap_prebody_decls): Likewise.
-       (grid_copy_leading_local_assignments): Likewise.
-       (grid_process_kernel_body_copy): Likewise.
-       (grid_attempt_target_gridification): Likewise.
-       (grid_gridify_all_targets_stmt): Likewise.
-       (grid_gridify_all_targets): Likewise.
-       (execute_lower_omp): Call grid_gridify_all_targets.
-       (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
-       * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
-       (tree_omp_clause): Added union field dimension.
-       * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
-       * tree.c (omp_clause_num_ops): Added number of arguments of
-       OMP_CLAUSE__GRIDDIM_.
-       (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
-       (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
-       * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
-       (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
-       (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
-       (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
-       * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
-       * tree-pass.h (make_pass_gen_hsail): Declare.
-       (make_pass_ipa_hsa): Likewise.
-       * ipa-hsa.c: New file.
-       * lto-section-in.c (lto_section_name): Add hsa section name.
-       * lto-streamer.h (lto_section_type): Add hsa section.
-       * timevar.def (TV_IPA_HSA): New.
-       * hsa-brig-format.h: New file.
-       * hsa-brig.c: New file.
-       * hsa-dump.c: Likewise.
-       * hsa-gen.c: Likewise.
-       * hsa.c: Likewise.
-       * hsa.h: Likewise.
-       * toplev.c (compile_file): Call hsa_output_brig.
-       * hsa-regalloc.c: New file.
- 2016-01-18  Jeff Law  <law@redhat.com>
-       PR tree-optimization/69320
-       * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
-       ranged object, do nothing if the RHS constant is not [0..1].
-       (optimize_stmt): Comparing a boolean ranged object against a
-       constant outside [0..1] results in a compile-time constant.
-       * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
-       test.
+       * vec-perm-indices.c (vec_perm_indices::series_p): Give examples
+       of usage.
  
- 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
-       * doc/invoke.texi (Invoking GCC): Add new section to menu.
-       (Option Summary): Update to reflect new section and moved options.
-       (C++ Dialect Options): Move -fstats to new section.
-       (Debugging Options): Move all dump, statistics, and other GCC
-       developer options to new section.  Rewrite section introduction
-       and re-order remaining options to put the more basic ones first.
-       (Optimization Options): Move -fira-verbose and -flto-report* to
-       new section.
-       (Developer Options): New section incorporating moved options.
-       * doc/cppopts.texi (-dM): Update cross-reference.
- 2016-01-18  Richard Henderson  <rth@redhat.com>
-       PR target/69176
-       * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
-       operands to pseudo only if CSE is expected.  Split long immediate
-       operands only after reload, and for the stack pointer.
-       (*add<GPI>3_pluslong): Remove.
-       (*addsi3_aarch64, *adddi3_aarch64): Merge into...
-       (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
-       (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
-       (*add<GPI>3 peepholes): New.
-       (*add<GPI>3 splitters): New.
-       * config/aarch64/constraints.md (Upl): New.
-       * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
- 2016-01-18  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69297
-       * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
-       stmt at most once.
-       (vect_bb_vectorization_profitable_p): Clear visited flag again.
- 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
-       PR middle-end/68542
-       * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
-       of mixind vector and scalar types.
-       (fold_relational_const): Add handling of vector
-       comparison with boolean result.
-       * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
-       comparison of vector operands with boolean result for EQ/NE only.
-       (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
-       (verify_gimple_cond): Likewise.
-       * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
-       valid type of VAL.
- 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
-       * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
-       !TARGET_OCTEON.
- 2016-01-18  Richard Biener  <rguenther@suse.de>
-       PR middle-end/69308
-       * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
- 2016-01-18  Tom de Vries  <tom@codesourcery.com>
-       * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
- 2016-01-18  Tom de Vries  <tom@codesourcery.com>
-       * omp-low.c (set_oacc_fn_attrib): Make extern.
-       * omp-low.h (set_oacc_fn_attrib): Declare.
-       * tree-parloops.c (struct reduction_info): Add reduc_addr field.
-       (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
-       (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
-       Add and handle function parameter oacc_kernels_p.
-       (find_reduc_addr, get_omp_data_i_param): New function.
-       (ref_conflicts_with_region, oacc_entry_exit_ok_1)
-       (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
-       (parallelize_loops): Add and handle function parameter oacc_kernels_p.
-       Calculate dominance info.  Skip loops that are not in a kernels region
-       in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
-       (pass_parallelize_loops::execute): Call parallelize_loops with
-       oacc_kernels_p argument.
-       (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
-       New member function.
-       (pass_parallelize_loops::bool oacc_kernels_p): New member var.
-       * passes.def: Add argument to pass_parallelize_loops instantation.
- 2016-01-18  Tom de Vries  <tom@codesourcery.com>
-       * tree-parloops.c (pass_parallelize_loops::execute): Allow
-       pass_parallelize_loops to be run outside the loop pipeline.
- 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
-       * tree-scalar-evolution.c (follow_copies_to_constant): New.
-       (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
+ 2018-01-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
- 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
-       PR target/63679
-       * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
-       using get_ref_base_and_extent.
-       (equal_mem_array_ref_p): New.
-       (hashable_expr_equal_p): Add call to previous.
- 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
-       PR target/63679
-       * tree-sra.c (disqualified_constants, constant_decl_p): New.
-       (sra_initialize): Allocate disqualified_constants.
-       (sra_deinitialize): Free disqualified_constants.
-       (disqualify_candidate): Update disqualified_constants when appropriate.
-       (create_access): Scan for constant-pool entries as we go along.
-       (scalarizable_type_p): Add check against type_contains_placeholder_p.
-       (maybe_add_sra_candidate): Allow constant-pool entries.
-       (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
-       (initialize_constant_pool_replacements): New.
-       (sra_modify_assign): Avoid mangling assignments created by previous,
-       and don't generate writes into constant pool.
-       (sra_modify_function_body): Call initialize_constant_pool_replacements.
- 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       PR target/81550
+       * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode
+       and SFmode can go in Altivec registers (-mcpu=power7 for DFmode,
+       -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY
+       flags.  This restores the settings used before the 2017-07-24.
+       Turning off pre increment/decrement/modify allows IVOPTS to
+       optimize DF/SF loops where the index is an int.
  
-       * config/i386/i386.c (scalar_to_vector_candidate_p): Support
-       andnot instruction.
-       (scalar_chain::convert_op): Likewise.
-       * config/i386/i386.md (*andndi3_doubleword): New.
+ 2018-01-29  Richard Biener  <rguenther@suse.de>
+           Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
- 2016-01-18  Richard Biener  <rguenther@suse.de>
+       PR bootstrap/80867
+       * tree-vect-stmts.c (vectorizable_call): Don't call
+       targetm.vectorize_builtin_md_vectorized_function if callee is
+       NULL.
  
-       PR tree-optimization/69170
-       * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
-       building a vector from scalar results of a pattern stmt.
+ 2018-01-22  Carl Love  <cel@us.ibm.com>
  
- 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
+       * doc/extend.tex: Fix typo in second arg in
+       __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}.
  
-       * haifa-sched.c (autopref_multipass_init): Work around
-       -Wmaybe-uninitialized warning.
+ 2018-01-29  Richard Biener  <rguenther@suse.de>
  
- 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+       PR tree-optimization/84086
+       * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h.
+       (flush_ssaname_freelist): When SSA names were released reset
+       the SCEV hash table.
  
-       * config/arm/arm.c (thumb1_reorg): Check that the comparison is
-       against the constant 0.
+ 2018-01-29  Richard Biener  <rguenther@suse.de>
  
- 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       PR tree-optimization/84057
+       * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already
+       removed paths when removing edges.
  
-       PR tree-optimization/68799
-       * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
-       look up phi candidates in the statement-candidate map.
-       (phi_add_costs): Likewise.
-       (record_phi_increments): Likewise.
-       (phi_incr_cost): Likewise.
-       (ncd_with_phi): Likewise.
-       (all_phi_incrs_profitable): Likewise.
+ 2018-01-27  H.J. Lu  <hongjiu.lu@intel.com>
  
- 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
+       * doc/invoke.texi: Replace -mfunction-return==@var{choice} with
+       -mfunction-return=@var{choice}.
  
-       * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
-       -Wmaybe-uninitialized warning.
+ 2018-01-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
  
- 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
+       PR diagnostic/84034
+       * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace):
+       Handle CR like TAB.
+       (layout::print_source_line): Likewise.
+       (test_get_line_width_without_trailing_whitespace): Add test cases.
  
-       * doc/invoke.texi (Invoking GCC): Add new section to menu.
-       (Option Summary): Update to reflect new section and moved options.
-       (C++ Dialect Options): Move -fvtable-verify and related options.
-       (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
-       and profiling-related options.
-       (Optimization Options): Move profile generation options and
-       -fstack-protector and related options.
-       (Instrumentation Options): New section incorporating moved options.
-       (Code Generation Options): Move -finstrument-functions and
-       related options, -fstack-check, -fstack-limit*, and -fbounds-check.
+ 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-16  Tom de Vries  <tom@codesourcery.com>
+       PR middle-end/84040
+       * sched-deps.c (sched_macro_fuse_insns): Return immediately for
+       debug insns.
  
-       * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
+ 2018-01-26  Jim Wilson  <jimw@sifive.com>
  
- 2016-01-16  Tom de Vries  <tom@codesourcery.com>
+       * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New.
  
-       * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
+       * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs
+       specified.
  
- 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 2018-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       * hash-table.h (hash_table::empty): Turn into an inline wrapper
-       that checks whether the table is already empty.  Rename the
-       original implementation to...
-       (hash_table::empty_slot): ...this new private function.
+       * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS
+       and CMP + SUB-immediate -> SUBS.
  
- 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
+ 2018-01-26  Martin Sebor  <msebor@redhat.com>
  
-       PR diagnostic/68899
-       * diagnostic-show-locus.c (layout::print_source_line): Move x
-       offset of line until after call to
-       get_line_width_without_trailing_whitespace.
+       PR tree-optimization/83896
+       * tree-ssa-strlen.c (get_string_len): Rename...
+       (get_string_cst_length): ...to this.  Return HOST_WIDE_INT.
+       Avoid assuming length is constant.
+       (handle_char_store): Use HOST_WIDE_INT for string length.
  
- 2016-01-15  Jeff Law  <law@redhat.com>
+ 2018-01-26  Uros Bizjak  <ubizjak@gmail.com>
  
-       PR tree-optimization/69270
-       * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
-       tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
-       * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
-       * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
-       * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
-       ssa_name_has_boolean_range and constant_boolean_node.
+       PR target/81763
+       * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
+       to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.
  
- 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
+ 2018-01-26  Richard Biener  <rguenther@suse.de>
  
-       PR rtl-optimization/69030
-       * lra-spills.c (remove_pseudos): Check nrefs and make the function
-       returning bool.
-       (spill_pseudos): Delete debug insn for dead pseudo.
-       (lra_spill): Initiate spill_hard_reg and slots memory separately.
+       PR rtl-optimization/84003
+       * dse.c (record_store): Only record redundant stores when
+       the earlier store aliases at least all accesses the later one does.
  
- 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
+ 2018-01-26  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
-       New.
-       (TYPES_UNOPUS): Likewise.
-       * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
-       builtin type, from UNOP to UNOPUS.
-       (lbtruncuv4sf): Likewise.
-       (lbtruncuv2df): Likewise.
-       (lrounduv2sf): Likewise.
-       (lrounduv4sf): Likewise.
-       (lrounduv2df): Likewise.
-       (lroundusf): Likewise.
-       (lroundusf): Likewise.
-       (lceiluv2sf): Likewise.
-       (lceiluv4sf): Likewise.
-       (lceiluv2df): Likewise.
-       (lceilusf): Likewise.
-       (lceiludf): Likewise.
-       (lflooruv2sf): Likewise.
-       (lflooruv4sf): Likewise.
-       (lflooruv2df): Likewise.
-       (lfloorusf): Likewise.
-       (lfloorudf): Likewise.
-       (lfrintnuv2sf): Likewise.
-       (lfrintnuv4sf): Likewise.
-       (lfrintnuv2df): Likewise.
-       (lfrintnusf): Likewise.
-       (lfrintnudf): Likewise.
-       * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
-       conversion.
-       (vcvtq_u32_f32): Likewise.
-       (vcvtq_u64_f64): Likewise.
-       (vcvta_u32_f32): Likewise.
-       (vcvtaq_u32_f32): Likewise.
-       (vcvtaq_u64_f64): Likewise.
-       (vcvtm_u32_f32): Likewise.
-       (vcvtmq_u32_f32): Likewise.
-       (vcvtmq_u64_f64): Likewise.
-       (vcvtn_u32_f32): Likwise.
-       (vcvtnq_u32_f32): Likewise.
-       (vcvtnq_u64_f64): Likewise.
-       (vcvtp_u32_f32): Likewise.
-       (vcvtpq_u32_f32): Likewise.
-       (vcvtpq_u64_f64): Likewise.
-       (vcvtmd_u64_f64): Likewise.
-       (vcvtms_u32_f32): Likewise.
-       (vcvtad_u64_f64): Likewise.
-       (vcvtas_u32_f32): Likewise.
-       (vcvtnd_u64_f64): Likewise.
-       (vcvtns_u32_f32): Likewise.
-       (vcvtpd_u64_f64): Likewise.
-       (vcvtps_u32_f32): Likewise.
+       PR rtl-optimization/83985
+       * dce.c (deletable_insn_p): Return false for separate shrink wrapping
+       REG_CFA_RESTORE insns.
+       (delete_unmarked_insns): Don't ignore separate shrink wrapping
+       REG_CFA_RESTORE insns here.
  
- 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR c/83989
+       * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't
+       use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR.
  
-       * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
-       CSEL of zero_extended registers.
+ 2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
  
- 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3.
+       * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... .
+       (arc_init): Likewise.
+       (arc_override_options): Likewise.
+       (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune
+       value.
+       (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn
+       support.
+       * config/arc/arc.h (TARGET_DBNZ): Define.
+       * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to
+       properly set the tune attribute.
+       (dbnz): Use TARGET_DBNZ guard.
+       * config/arc/arc.opt (mtune): Add core3 option.
+ 2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.c (arc_delegitimize_address_0): Refactored to
+       recognize new pic like addresses.
+       (arc_delegitimize_address): Clean up.
+ 2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc-arches.def: Option mrf16 valid for all
+       architectures.
+       * config/arc/arc-c.def (__ARC_RF16__): New predefined macro.
+       * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on.
+       * config/arc/arc-options.def (FL_RF16): Add mrf16 option.
+       * config/arc/arc-tables.opt: Regenerate.
+       * config/arc/arc.c (arc_conditional_register_usage): Handle
+       reduced register file case.
+       (arc_file_start): Set must have build attributes.
+       * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using
+       mrf16 option value.
+       * config/arc/arc.opt (mrf16): Add new option.
+       * config/arc/elf.h (ATTRIBUTE_PCS): Define.
+       * config/arc/genmultilib.awk: Handle new mrf16 option.
+       * config/arc/linux.h (ATTRIBUTE_PCS): Define.
+       * config/arc/t-multilib: Regenerate.
+       * doc/invoke.texi (ARC Options): Document mrf16 option.
+ 2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc-protos.h: Add arc_is_secure_call_p proto.
+       * config/arc/arc.c (arc_handle_secure_attribute): New function.
+       (arc_attribute_table): Add 'secure_call' attribute.
+       (arc_print_operand): Print secure call operand.
+       (arc_function_ok_for_sibcall): Don't optimize tail calls when
+       secure.
+       (arc_is_secure_call_p): New function.  * config/arc/arc.md
+       (call_i): Add support for sjli instruction.
+       (call_value_i): Likewise.
+       * config/arc/constraints.md (Csc): New constraint.
+ 2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
+           John Eric Martin  <John.Martin@emmicro-us.com>
+       * config/arc/arc-protos.h: Add arc_is_jli_call_p proto.
+       * config/arc/arc.c (_arc_jli_section): New struct.
+       (arc_jli_section): New type.
+       (rc_jli_sections): New static variable.
+       (arc_handle_jli_attribute): New function.
+       (arc_attribute_table): Add jli_always and jli_fixed attribute.
+       (arc_file_end): New function.
+       (TARGET_ASM_FILE_END): Define.
+       (arc_print_operand): Reuse 'S' letter for JLI output instruction.
+       (arc_add_jli_section): New function.
+       (jli_call_scan): Likewise.
+       (arc_reorg): Call jli_call_scan.
+       (arc_output_addsi): Remove 'S' from printing asm operand.
+       (arc_is_jli_call_p): New function.
+       * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm
+       operand.
+       (movhi_insn): Likewise.
+       (movsi_insn): Likewise.
+       (movsi_set_cc_insn): Likewise.
+       (loadqi_update): Likewise.
+       (load_zeroextendqisi_update): Likewise.
+       (load_signextendqisi_update): Likewise.
+       (loadhi_update): Likewise.
+       (load_zeroextendhisi_update): Likewise.
+       (load_signextendhisi_update): Likewise.
+       (loadsi_update): Likewise.
+       (loadsf_update): Likewise.
+       (movsicc_insn): Likewise.
+       (bset_insn): Likewise.
+       (bxor_insn): Likewise.
+       (bclr_insn): Likewise.
+       (bmsk_insn): Likewise.
+       (bicsi3_insn): Likewise.
+       (cmpsi_cc_c_insn): Likewise.
+       (movsi_ne): Likewise.
+       (movsi_cond_exec): Likewise.
+       (clrsbsi2): Likewise.
+       (norm_f): Likewise.
+       (normw): Likewise.
+       (swap): Likewise.
+       (divaw): Likewise.
+       (flag): Likewise.
+       (sr): Likewise.
+       (kflag): Likewise.
+       (ffs): Likewise.
+       (ffs_f): Likewise.
+       (fls): Likewise.
+       (call_i): Remove 'S' asm letter, add jli instruction.
+       (call_value_i): Likewise.
+       * config/arc/arc.op (mjli-always): New option.
+       * config/arc/constraints.md (Cji): New constraint.
+       * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm
+       operand.
+       (subsf3_fpx): Likewise.
+       (mulsf3_fpx): Likewise.
+       * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing
+       asm operand.
+       * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed'
+       function attrbutes.
+       * doc/invoke.texi (ARC): Document mjli-always option.
  
-       * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
-       Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
+ 2018-01-26  Sebastian Perta  <sebastian.perta@renesas.com>
  
- 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const
+       avoid addition with 0 and use incw and decw where possible.
  
-       * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
-       false when argument string is not found in the attributes table
-       at all.
+ 2018-01-26  Richard Biener  <rguenther@suse.de>
  
- 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
+       PR tree-optimization/81082
+       * fold-const.c (fold_plusminus_mult_expr): Do not perform the
+       association if it requires casting to unsigned.
+       * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived
+       from fold_plusminus_mult_expr to catch important cases late when
+       range info is available.
  
-       PR target/68609
-       * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
-       (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
-       * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
-       precision estimate.
+ 2018-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
- 2016-01-15  Richard Biener  <rguenther@suse.de>
+       * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove.
+       * configure.ac (hidden_linkonce): New test.
+       * configure: Regenerate.
+       * config.in: Regenerate.
  
-       PR tree-optimization/66856
-       * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
-       * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
-       (vect_create_new_slp_node): Increment stmt reference count.
-       (vect_get_and_check_slp_defs): Make sure stmts are nor already in
-       an SLP tree before swapping operands.
-       (vect_build_slp_tree): Likewise.
-       (destroy_bb_vec_info): Free stmt info after SLP instances.
-       * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
-       * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
-       (STMT_VINFO_NUM_SLP_USES): New macro.
+ 2018-01-26  Julia Koval  <julia.koval@intel.com>
  
- 2016-01-15  Richard Biener  <rguenther@suse.de>
+       * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask,
+       _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
+       _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask,
+       _mm_mask_bitshuffle_epi64_mask): Fix type.
+       * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI,
+       USI_FTYPE_V4DI_V4DI_USI): Remove.
+       * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask,
+       __builtin_ia32_vpshufbitqmb256_mask,
+       __builtin_ia32_vpshufbitqmb128_mask): Fix types.
+       * config/i386/i386.c (ix86_expand_args_builtin): Remove old types.
+       * config/i386/sse.md (VI1_AVX512VLBW): Change types.
  
-       PR debug/69137
-       * dwarf2out.c (add_linkage_name_raw): New function split out from ...
-       (add_linkage_name): ... here.
-       (gen_typedef_die): Use add_linkage_name_raw instead of
-       add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
-       if necessary.
+ 2018-01-26  Alan Modra  <amodra@gmail.com>
  
- 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
+       PR target/84033
+       * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude
+       UNSPEC_VBPERMQ.  Sort other unspecs.
  
-       * gimplify.c (oacc_default_clause): Decode reference and pointer
-       types for both kernels and parallel regions.
+ 2018-01-25  David Edelsohn  <dje.gcc@gmail.com>
  
- 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
+       * doc/invoke.texi (PowerPC Options): Document 'native' cpu type.
  
-       PR middle-end/69246
-       * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
+ 2018-01-25  Jan Hubicka  <hubicka@ucw.cz>
  
- 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       PR middle-end/83055
+       * predict.c (drop_profile): Do not push/pop cfun; update also
+       node->count.
+       (handle_missing_profiles): Fix logic looking for zero profiles.
  
-       * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
-       (convert_scalars_to_vector): Likewise.
+ 2018-01-25  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
+       PR middle-end/83977
+       * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature
+       on functions with #pragma omp declare simd or functions with simd
+       attribute.
+       * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change.
+       * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
+       Remove trailing \n from warning_at calls.
  
-       * doc/extend.texi (Type Traits): Fix grammar.
+ 2018-01-25  Tom de Vries  <tom@codesourcery.com>
  
- 2016-01-15  Martin Jambor  <mjambor@suse.cz>
+       PR target/84028
+       * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
+       for neutered workers.
  
-       * tree-inline.c (remap_decl): Use existing dclarations if
-       remapping a type and prevent_decl_creation_for_types.
-       (replace_locals_stmt): Do an initial remapping of non-VLA typed
-       decls first.  Do real remapping with
-       prevent_decl_creation_for_types set.
-       * tree-inline.h (copy_body_data): New field
-       prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
-       padding.
+ 2018-01-24  Joseph Myers  <joseph@codesourcery.com>
  
- 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+       PR target/68467
+       * config/m68k/m68k.c (m68k_promote_function_mode): New function.
+       (TARGET_PROMOTE_FUNCTION_MODE): New macro.
  
-       * config/s390/s390.opt (mmvcle): More verbose help text.
+ 2018-01-24  Jeff Law  <law@redhat.com>
  
- 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+       PR target/83994
+       * i386.c (get_probe_interval): Move to earlier point.
+       (ix86_compute_frame_layout): If -fstack-clash-protection and
+       the frame is larger than the probe interval, then use pushes
+       to save registers rather than reg->mem moves.
+       (ix86_expand_prologue): Remove conditional for int_registers_saved
+       assertion.
  
-       * config/s390/s390.opt: Add period to -mzvector option text.
+ 2018-01-24  Vladimir Makarov  <vmakarov@redhat.com>
  
- 2016-01-15  Richard Biener  <rguenther@suse.de>
+       PR target/84014
+       * ira-build.c (setup_min_max_allocno_live_range_point): Set up
+       min/max for never referenced object.
  
-       PR tree-optimization/68961
-       * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
-       of invariants in stores again.
+ 2018-01-24  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       PR middle-end/83977
+       * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN
+       here.
+       * omp-low.c (create_omp_child_function): Remove "omp declare simd"
+       attributes from DECL_ATTRIBUTES (decl) without affecting
+       DECL_ATTRIBUTES (current_function_decl).
+       * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL
+       functions with non-NULL DECL_ABSTRACT_ORIGIN.
  
-       * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
+ 2018-01-24  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       PR tree-optimization/83979
+       * fold-const.c (fold_comparison): Use constant_boolean_node
+       instead of boolean_{true,false}_node.
  
-       * config/i386/i386.c (ix86_expand_branch): Don't split
-       DI mode xor instruction to SI mode.
+ 2018-01-24  Jan Hubicka  <hubicka@ucw.cz>
  
- 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
+       * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls
+       with zero counts.
  
-       PR ipa/68148
-       * ipa-icf.c (sem_function::merge): Virtual functions may become
-       reachable even if they address is not taken and there are no
-       idrect calls.
+ 2018-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
  
- 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
+       * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
+       Simplify the clause that sets the length attribute.
+       (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
+       (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
+       clause that sets the length attribute.
+       (*sibcall_value_nonlocal_sysv<mode>): Likewise.
  
-       * lto-streamer-out.c (subtract_estimated_size): New function.
-       (get_symbol_initial_value): Use it.
+ 2018-01-24  Tom de Vries  <tom@codesourcery.com>
  
- 2016-01-15  Christian Bruel  <christian.bruel@st.com>
+       PR target/83589
+       * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1.
+       (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c.
+       Add strict parameter.
+       (prevent_branch_around_nothing): Insert dummy insn between branch to
+       label and label with no ptx insn inbetween.
+       * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn.
  
-       PR target/65837
-       * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
-       (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
-       (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
-       use add_builtin_function_ext_scope instead of add_builtin_function.
-       (neon_set_p, neon_crypto_set_p): Remove.
-       (arm_init_builtins): Always call arm_init_neon_builtins and
-       arm_init_crypto_builtins.
-       (arm_expand_builtin): Check that builtins are allowed for the arch.
-       * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
-       * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
-       arm_init_neon_builtins call.
+ 2018-01-24  Tom de Vries  <tom@codesourcery.com>
  
- 2016-01-15  Richard Biener  <rguenther@suse.de>
+       PR target/81352
+       * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
+       for neutered threads in warp.
+       * config/nvptx/nvptx.md (define_insn "exit"): New insn.
  
-       PR tree-optimization/69117
-       * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
-       * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
-       of the leader conservatively.
-       (free_scc_vn): Restore original SSA name infos.
+ 2018-01-24  Richard Biener  <rguenther@suse.de>
  
- 2016-01-14  Jeff Law  <law@redhat.com>
+       PR tree-optimization/83176
+       * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. }
+       operands.
  
-       PR tree-optimization/69270
-       * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
-       single bit of precision, verify it's also unsigned.
-       (record_edge_info): Use constant_boolean_node rather than fold_convert
-       to convert boolean_true/boolean_false to the right type.
+ 2018-01-24  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/82819
+       * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid
+       code generating pluses that are no-ops in the target precision.
+ 2018-01-24  Richard Biener  <rguenther@suse.de>
+       PR middle-end/84000
+       * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind.
+ 2018-01-23  Jan Hubicka  <hubicka@ucw.cz>
+       * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count
+       to merge probabilities.
+       * predict.c (probably_never_executed): Also mark as cold functions
+       with global 0 profile and guessed local profile.
+       * profile-count.c (profile_probability::combine_with_count): New
+       member function.
+       * profile-count.h (profile_probability::operator*,
+       profile_probability::operator*=, profile_probability::operator/,
+       profile_probability::operator/=): Reduce precision to adjusted
+       and set value to guessed on contradictory divisions.
+       (profile_probability::combine_with_freq): Remove.
+       (profile_probability::combine_wiht_count): Declare.
+       (profile_count::force_nonzero):: Set to adjusted.
+       (profile_count::probability_in):: Set quality to adjusted.
+       * tree-ssa-tail-merge.c (replace_block_by): Use
+       combine_with_count.
+ 2018-01-23  Andrew Waterman  <andrew@sifive.com>
+           Jim Wilson  <jimw@sifive.com>
+       * config/riscv/riscv.c (riscv_stack_boundary): New.
+       (riscv_option_override): Set riscv_stack_boundary.  Handle
+       riscv_preferred_stack_boundary_arg.
+       * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New.
+       (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY.
+       (STACK_BOUNDARY): Set to riscv_stack_boundary.
+       (RISCV_STACK_ALIGN): Use STACK_BOUNDARY.
+       * config/riscv/riscv.opt (mpreferred-stack-boundary): New.
+       * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary.
+ 2018-01-23  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/83905
+       * config/i386/i386.c (ix86_expand_prologue): Use cost reference
+       of struct ix86_frame.
+       (ix86_expand_epilogue): Likewise.  Add a local variable for
+       the reg_save_offset field in struct ix86_frame.
+ 2018-01-23  Bin Cheng  <bin.cheng@arm.com>
+       PR tree-optimization/82604
+       * tree-loop-distribution.c (enum partition_kind): New enum item
+       PKIND_PARTIAL_MEMSET.
+       (partition_builtin_p): Support above new enum item.
+       (generate_code_for_partition): Ditto.
+       (compute_access_range): Differentiate cases that equality can be
+       proven at all loops, the innermost loops or no loops.
+       (classify_builtin_st, classify_builtin_ldst): Adjust call to above
+       function.  Set PKIND_PARTIAL_MEMSET for partition appropriately.
+       (finalize_partitions, distribute_loop): Don't fuse partition of
+       PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest.
+       (prepare_perfect_loop_nest): Distribute 3-level loop nest only if
+       parloop is enabled.
+ 2018-01-23  Martin Liska  <mliska@suse.cz>
+       * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
+       order to ignore the predictor.
+       (PRED_POLYMORPHIC_CALL): Likewise.
+       (PRED_RECURSIVE_CALL): Likewise.
+ 2018-01-23  Martin Liska  <mliska@suse.cz>
+       * tree-profile.c (tree_profiling): Print function header to
+       aware reader which function we are working on.
+       * value-prof.c (gimple_find_values_to_profile): Do not print
+       not interesting value histograms.
+ 2018-01-23  Martin Liska  <mliska@suse.cz>
+       * profile-count.h (enum profile_quality): Add
+       profile_uninitialized as the first value. Do not number values
+       as they are zero based.
+       (profile_count::verify): Update sanity check.
+       (profile_probability::verify): Likewise.
+ 2018-01-23  Nathan Sidwell  <nathan@acm.org>
+       * doc/invoke.texi (ffor-scope): Deprecate.
+ 2018-01-23  David Malcolm  <dmalcolm@redhat.com>
+       PR tree-optimization/83510
+       * domwalk.c (set_all_edges_as_executable): New function.
+       (dom_walker::dom_walker): Convert bool param
+       "skip_unreachable_blocks" to enum reachability.  Move setup of
+       edge flags to set_all_edges_as_executable and only do it when
+       reachability is REACHABLE_BLOCKS.
+       * domwalk.h (enum dom_walker::reachability): New enum.
+       (dom_walker::dom_walker): Convert bool param
+       "skip_unreachable_blocks" to enum reachability.
+       (set_all_edges_as_executable): New decl.
+       * graphite-scop-detection.c  (gather_bbs::gather_bbs): Convert
+       from false for "skip_unreachable_blocks" to ALL_BLOCKS for
+       "reachability".
+       * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise,
+       but converting true to REACHABLE_BLOCKS.
+       * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise.
+       * tree-vrp.c
+       (check_array_bounds_dom_walker::check_array_bounds_dom_walker):
+       Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS.
+       (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to
+       REACHABLE_BLOCKS.
+       (vrp_prop::vrp_finalize): Call set_all_edges_as_executable
+       if check_all_array_refs will be called.
+ 2018-01-23  David Malcolm  <dmalcolm@redhat.com>
+       * tree.c (selftest::test_location_wrappers): Add more test
+       coverage.
+ 2018-01-23  David Malcolm  <dmalcolm@redhat.com>
+       * sbitmap.c (selftest::test_set_range): Fix memory leaks.
+       (selftest::test_bit_in_range): Likewise.
+ 2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR testsuite/83888
+       * doc/sourcebuild.texi (vect_float): Say that the selector
+       only describes the situation when -funsafe-math-optimizations is on.
+       (vect_float_strict): Document.
+ 2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/83965
+       * tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
+       (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it
+       instead of checking only for a reduction.
+       (vect_recog_widen_sum_pattern): Likewise.
+ 2018-01-23  Jan Hubicka  <hubicka@ucw.cz>
+       * predict.c (probably_never_executed): Only use precise profile info.
+       (compute_function_frequency): Skip after inlining hack since we now
+       have quality checking.
+ 2018-01-23  Jan Hubicka  <hubicka@ucw.cz>
+       * profile-count.h (profile_probability::very_unlikely,
+       profile_probability::unlikely, profile_probability::even): Set
+       precision to guessed.
+ 2018-01-23  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/83963
+       * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
+       Properly terminate dominator walk when crossing the exit edge not
+       when visiting its source block.
  
- 2016-01-14  Richard Henderson  <rth@redhat.com>
+ 2018-01-23  Jakub Jelinek  <jakub@redhat.com>
  
-       PR rtl-opt/69014
-       * loop-doloop.c (record_reg_sets): New.
-       (doloop_optimize): Reject the transform if the sequence
-       clobbers registers live at the end of the loop block.
-       (doloop_optimize_loops): Enable df_live if needed.
+       PR c++/83918
+       * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than
+       VIEW_CONVERT_EXPR to wrap CONST_DECLs.
  
- 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+ 2018-01-22  Jakub Jelinek  <jakub@redhat.com>
  
-       * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
-       * config/rs6000/rs6000.c: Likewise.
-       * config/rs6000/rs6000.h: Likewise.
-       * config/rs6000/rs6000.md: Likewise.
-       * doc/extend.texi: Likewsie.
+       PR tree-optimization/83957
+       * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs.  Remove
+       semicolon after for body surrounded by braces.
  
- 2016-01-14  Jeff Law  <law@redhat.com>
+       PR tree-optimization/83081
+       * profile-count.h (profile_probability::split): New method.
+       * dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>:
+       Use profile_probability::split.
+       (do_compare_rtx_and_jump): Fix adjustment of probabilities
+       when splitting a single conditional jump into 2.
  
-       * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
-       typo.
+ 2018-01-22  David Malcolm  <dmalcolm@redhat.com>
  
- 2016-01-14  Richard Henderson  <rth@redhat.com>
+       PR tree-optimization/69452
+       * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove
+       decl.
  
-       PR c/69272
-       PR tree-opt/68964
-       * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
-       * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
-       instead of builtin_decl_declared_p to test for declaration.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
  
- 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
+       * config/rl78/rl78-expand.md (bswaphi2): New define_expand.
+       * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn.
+       * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn.
  
-       * doc/loop.texi (Loop Analysis and Representation): Document
-       loop_depth function.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
  
- 2016-01-14  Tom de Vries  <tom@codesourcery.com>
+       * config/rl78/rl78-protos.h (rl78_split_movdi): New function
+       declaration.
+       * config/rl78/rl78.md (movdi): New define_expand.
+       * config/rl78/rl78.c (rl78_split_movdi): New function.
  
-       PR tree-optimization/68773
-       * omp-low.c (expand_omp_target): Don't set force_output.
-       * varpool.c (varpool_node::get_create): Same.
-       * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
-       offload_funcs with force_output.
+ 2018-01-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
- 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
+       PR target/83862
+       * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete,
+       no longer used.
+       * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise.
+       * config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE
+       128-bit to produce an UNSPEC move to get the double word with the
+       signbit and then a shift directly to do signbit.
+       (signbit<mode>2_dm): Replace old IEEE 128-bit signbit
+       implementation with a new version that just does either a direct
+       move or a regular move.  Move memory interface to separate insns.
+       Move insns so they are next to the expander.
+       (signbit<mode>2_dm_mem_be): New combiner insns to combine load
+       with signbit move.  Split big and little endian case.
+       (signbit<mode>2_dm_mem_le): Likewise.
+       (signbit<mode>2_dm_<su>ext): Delete, no longer used.
+       (signbit<mode>2_dm2): Likewise.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.md (anddi3): New define_expand.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.md (umindi3): New define_expand.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.md (smindi3): New define_expand.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.md (smaxdi3): New define_expand.
+ 2018-01-22  Carl Love  <cel@us.ibm.com>
+       * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI,
+       LVX_V1TI): Add macro expansion.
+       * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument
+       definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST,
+       VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins.
+       * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p);
+       Change check to determine if the instruction is a byte reversing
+       entry.  Fix typo in comment.
+       * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry
+       for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI.
+       Add def_builtin calls for new builtins.
+       * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti):
+       Add define_insn expansion.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.md (umaxdi3): New define_expand.
+ 2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
+       * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check
+       for non-QImode registers.
+ 2018-01-22  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/83963
+       * graphite-scop-detection.c (scop_detection::get_sese): Delay
+       including the loop exit block.
+       (scop_detection::merge_sese): Likewise.
+       (scop_detection::add_scop): Do it here instead.
+ 2018-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * doc/sourcebuild.texi (arm_softfloat): Document.
+ 2018-01-21  John David Anglin  <danglin@gcc.gnu.org>
+       PR gcc/77734
+       * config/pa/pa.c (pa_function_ok_for_sibcall): Use
+       targetm.binds_local_p instead of TREE_PUBLIC to check local binding.
+       Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check.
+ 2018-01-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+           David Edelsohn  <dje.gcc@gmail.com>
+       PR target/83946
+       * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
+       Change "crset eq" to "crset 2".
+       (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
+       (*call_indirect_aix<mode>_nospec): Likewise.
+       (*call_value_indirect_aix<mode>_nospec): Likewise.
+       (*call_indirect_elfv2<mode>_nospec): Likewise.
+       (*call_value_indirect_elfv2<mode>_nospec): Likewise.
+       (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
+       change assembly output from . to $.
+       (*sibcall_value_nonlocal_sysv<mode>): Likewise.
+       (indirect_jump<mode>_nospec): Change assembly output from . to $.
+       (*tablejump<mode>_internal1_nospec): Likewise.
+ 2018-01-21  Oleg Endo  <olegendo@gcc.gnu.org>
+       PR target/80870
+       * config/sh/sh_optimize_sett_clrt.cc:
+       Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
+ 2018-01-20  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/83940
+       * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set
+       offset_dt to vect_constant_def rather than vect_unknown_def_type.
+       (vect_check_load_store_mask): Add a mask_dt_out parameter and
+       use it to pass back the definition type.
+       (vect_check_store_rhs): Likewise rhs_dt_out.
+       (vect_build_gather_load_calls): Add a mask_dt argument and use
+       it instead of a call to vect_is_simple_use.
+       (vectorizable_store): Update calls to vect_check_load_store_mask
+       and vect_check_store_rhs.  Use the dt returned by the latter instead
+       of scatter_src_dt.  Use the cached mask_dt and gs_info.offset_dt
+       instead of calls to vect_is_simple_use.  Pass the scalar rather
+       than the vector operand to vect_is_simple_use when handling
+       second and subsequent copies of an rhs value.
+       (vectorizable_load): Update calls to vect_check_load_store_mask
+       and vect_build_gather_load_calls.  Use the cached mask_dt and
+       gs_info.offset_dt instead of calls to vect_is_simple_use.
+ 2018-01-20  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/83945
+       * tree-emutls.c: Include gimplify.h.
+       (lower_emutls_2): New function.
+       (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree
+       with lower_emutls_2 callback finds some TLS decl in it, unshare_expr
+       it before further processing.
+       PR target/83930
+       * simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
+       UINTVAL (trueop1) instead of INTVAL (op1).
+ 2018-01-19  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/81570
+       PR debug/83728
+       * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to
+       INCOMING_FRAME_SP_OFFSET if not defined.
+       (scan_trace): Add ENTRY argument.  If true and
+       DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET,
+       emit a note to adjust the CFA offset.
+       (create_cfi_notes): Adjust scan_trace callers.
+       (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than
+       INCOMING_FRAME_SP_OFFSET in the CIE.
+       * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define.
+       * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET):
+       Likewise.
+       * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document.
+       * doc/tm.texi: Regenerated.
  
-       PR debug/69244
-       * lra-eliminations.c (move_plus_up): Don't change anything if either
-       the outer or inner subreg mode is not MODE_INT.
-       * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
-       integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
+ 2018-01-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
  
- 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
+       PR rtl-optimization/83147
+       * lra-constraints.c (remove_inheritance_pseudos): Use
+       lra_substitute_pseudo_within_insn.
  
-       * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
-       reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
-       reduc_uplus_@var{m}): Remove.
-       * expr.c (expand_expr_real_2): Remove expansion path for
-       reduc_[us](min|max|plus) optabs.
-       * optabs-tree.c (scalar_reduc_to_vector): Remove.
-       * optabs-tree.h (scalar_reduc_to_vector): Remove.
-       * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
-       reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
-       * tree-vect-loop.c (vectorizable_reduction): Remove test for
-       reduc_[us](min|max|plus) optabs.
+ 2018-01-19  Tom de Vries  <tom@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
  
- 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
+       PR target/83920
+       * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround.
  
-       * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
-       (reduc_plus_scal_v2sf): New.
-       (reduc_smax_v2sf): Rename to...
-       (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
-       (reduc_smin_v2sf): Rename to...
-       (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
- 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
+ 2018-01-19  Cesar Philippidis  <cesar@codesourcery.com>
  
-       * alias.c (compare_base_symbol_refs): New function.
-       (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
-       it.
+       PR target/83790
+       * config/nvptx/nvptx.c (output_init_frag): Don't use generic address
+       spaces for function labels.
  
- 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
+ 2018-01-19  Martin Liska  <mliska@suse.cz>
  
-       PR middle-end/68146
-       PR tree-optimization/69155
-       * tree-complex.c: Include cfganal.h.
-       (phis_to_revisit): New variable.
-       (extract_component): Add phiarg_p argument.  Assert that returned
-       SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
-       (update_phi_components): Partly rewrite to use loop over real/imag
-       components instead of code duplication.  If extract_component returns
-       SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
-       create_tmp_reg into the PHI node instead, and mention the phi triplet
-       in phis_to_revisit.
-       (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
-       in phis_to_revisit at the end.
+       * predict.def (PRED_LOOP_EXIT): Change from 85 to 89.
+       (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78.
+       (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67.
+       (PRED_OPCODE_POSITIVE): Change from 64 to 59.
+       (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59.
+       (PRED_CONST_RETURN): Change from 69 to 65.
+       (PRED_NULL_RETURN): Change from 91 to 71.
+       (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64.
+       (PRED_LOOP_GUARD): Change from 66 to 73.
+ 2018-01-19  Martin Liska  <mliska@suse.cz>
+       * predict.c (predict_insn_def): Add new assert.
+       (struct branch_predictor): Change type to signed integer.
+       (test_prediction_value_range): Amend test to cover
+       PROB_UNINITIALIZED.
+       * predict.def (PRED_LOOP_ITERATIONS): Use the new constant.
+       (PRED_LOOP_ITERATIONS_GUESSED): Likewise.
+       (PRED_LOOP_ITERATIONS_MAX): Likewise.
+       (PRED_LOOP_IV_COMPARE): Likewise.
+       * predict.h (PROB_UNINITIALIZED): Define new constant.
+ 2018-01-19  Martin Liska  <mliska@suse.cz>
+       * predict.c (dump_prediction): Add new format for
+       analyze_brprob.py script which is enabled with -details
+       suboption.
+       * profile-count.h (precise_p): New function.
+ 2018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/83922
+       * tree-vect-loop.c (vect_verify_full_masking): Return false if
+       there are no statements that need masking.
+       (vect_active_double_reduction_p): New function.
+       (vect_analyze_loop_operations): Use it when handling phis that
+       are not in the loop header.
+ 2018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/83914
+       * tree-vect-loop.c (vectorizable_induction): Don't convert
+       init_expr or apply the peeling adjustment for inductions
+       that are nested within the vectorized loop.
+ 2018-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic
+       instead of NEG.
+ 2018-01-18  Jakub Jelinek  <jakub@redhat.com>
+       PR sanitizer/81715
+       PR testsuite/83882
+       * function.h (gimplify_parameters): Add gimple_seq * argument.
+       * function.c: Include gimple.h and options.h.
+       (gimplify_parameters): Add cleanup argument, add CLOBBER stmts
+       for the added local temporaries if needed.
+       * gimplify.c (gimplify_body): Adjust gimplify_parameters caller,
+       if there are any parameter cleanups, wrap whole body into a
+       try/finally with the cleanups.
+ 2018-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
+       PR target/82964
+       * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
+       Use GET_MODE_CLASS for scalar floating point.
+ 2018-01-18  Jan Hubicka  <hubicka@ucw.cz>
+       PR ipa/82256
+       patch by PaX Team
+       * cgraphclones.c (cgraph_node::create_version_clone_with_body):
+       Fix call of call_cgraph_insertion_hooks.
+ 2018-01-18  Martin Sebor  <msebor@redhat.com>
+       * doc/invoke.texi (-Wclass-memaccess): Tweak text.
+ 2018-01-18  Jan Hubicka  <hubicka@ucw.cz>
+       PR ipa/83619
+       * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge
+       frequencies.
+ 2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
+       PR other/70268
+       * common.opt: (-ffile-prefix-map): New option.
+       * opts.c (common_handle_option): Defer it.
+       * opts-global.c (handle_common_deferred_options): Handle it.
+       * debug.h (remap_debug_filename, add_debug_prefix_map): Move to...
+       * file-prefix-map.h: New file.
+       (remap_debug_filename, add_debug_prefix_map): ...here.
+       (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New.
+       * final.c (debug_prefix_map, add_debug_prefix_map
+       remap_debug_filename): Move to...
+       * file-prefix-map.c: New file.
+       (file_prefix_map, add_prefix_map, remap_filename) ...here and rename,
+       generalize, get rid of alloca(), use strrchr() instead of strchr().
+       (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map):
+       Implement in terms of add_prefix_map().
+       (remap_macro_filename, remap_debug_filename): Implement in term of
+       remap_filename().
+       * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files.
+       * builtins.c (fold_builtin_FILE): Call remap_macro_filename().
+       * dbxout.c: Include file-prefix-map.h.
+       * varasm.c: Likewise.
+       * vmsdbgout.c: Likewise.
+       * xcoffout.c: Likewise.
+       * dwarf2out.c: Likewise plus omit new options from DW_AT_producer.
+       * doc/cppopts.texi (-fmacro-prefix-map): Document.
+       * doc/invoke.texi (-ffile-prefix-map): Document.
+       (-fdebug-prefix-map): Update description.
+ 2018-01-18  Martin Liska  <mliska@suse.cz>
+       * config/i386/i386.c (indirect_thunk_name): Document that also
+       lfence is emitted.
+       (output_indirect_thunk): Document why both instructions
+       (pause and lfence) are generated.
+ 2018-01-18  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/83887
+       * graphite-scop-detection.c
+       (scop_detection::get_nearest_dom_with_single_entry): Remove.
+       (scop_detection::get_nearest_pdom_with_single_exit): Likewise.
+       (scop_detection::merge_sese): Re-implement with a flood-fill
+       algorithm that properly finds a SESE region if it exists.
+ 2018-01-18  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-14  Richard Biener  <rguenther@suse.de>
+       PR c/61240
+       * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For
+       pointer_diff optimizations use view_convert instead of convert.
+ 2018-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
+       Generate different code for -mno-speculate-indirect-jumps.
+       (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
+       (*call_indirect_aix<mode>): Disable for
+       -mno-speculate-indirect-jumps.
+       (*call_indirect_aix<mode>_nospec): New define_insn.
+       (*call_value_indirect_aix<mode>): Disable for
+       -mno-speculate-indirect-jumps.
+       (*call_value_indirect_aix<mode>_nospec): New define_insn.
+       (*sibcall_nonlocal_sysv<mode>): Generate different code for
+       -mno-speculate-indirect-jumps.
+       (*sibcall_value_nonlocal_sysv<mode>): Likewise.
+ 2018-01-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a
+       long double type, set the flags for noting the default long double
+       type, even if we don't pass or return a long double type.
+ 2018-01-17  Jan Hubicka  <hubicka@ucw.cz>
+       PR ipa/83051
+       * ipa-inline.c (flatten_function): Do not overwrite final inlining
+       failure.
+ 2018-01-17  Will Schmidt  <will_schmidt@vnet.ibm.com>
+       * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding
+       support for merge[hl].
+       (fold_mergehl_helper): New helper function.
+       (tree-vector-builder.h): New #include for tree_vector_builder usage.
+       * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn.
+       (altivec_vmrglw_direct): Add xxmrglw insn.
+ 2018-01-17  Andrew Waterman  <andrew@sifive.com>
+       * config/riscv/riscv.c (riscv_conditional_register_usage): If
+       UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs.
+ 2018-01-17  David Malcolm  <dmalcolm@redhat.com>
+       PR lto/83121
+       * ipa-devirt.c (add_type_duplicate): When comparing memory layout,
+       call the lto_location_cache before reading the
+       DECL_SOURCE_LOCATION of the types.
+ 2018-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
+           Richard Sandiford  <richard.sandiford@linaro.org>
+       * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint.
+       * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function.
+       (aarch64_legitimate_constant_p): Just support CONST_DOUBLE
+       SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates.
+       * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate):
+       Add declaration.
+       * config/aarch64/constraints.md (aarch64_movti_operand):
+       Limit immediates.
+       * config/aarch64/predicates.md (Uti): Add new constraint.
+ 2018-01-17 Carl Love  <cel@us.ibm.com>
+       * config/rs6000/vsx.md (define_expand xl_len_r,
+       define_expand stxvl, define_expand *stxvl): Add match_dup argument.
+       (define_insn): Add, match_dup 1 argument to define_insn stxvll and
+       lxvll.
+       (define_expand, define_insn): Move the shift left from  the
+       define_insn to the define_expand for lxvl and stxvl instructions.
+       * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL
+       and XL_LEN_R definitions to PURE.
+ 2018-01-17  Uros Bizjak  <ubizjak@gmail.com>
+       * config/i386/i386.c (indirect_thunk_name): Declare regno
+       as unsigned int.  Compare regno with INVALID_REGNUM.
+       (output_indirect_thunk): Ditto.
+       (output_indirect_thunk_function): Ditto.
+       (ix86_code_end): Declare regno as unsigned int.  Use INVALID_REGNUM
+       in the call to output_indirect_thunk_function.
+ 2018-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR middle-end/83884
+       * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0)
+       rather than the size of inner_type to determine the stack slot size
+       when handling VIEW_CONVERT_EXPRs on strict-alignment targets.
+ 2018-01-16  Sebastian Peryt  <sebastian.peryt@intel.com>
+       PR target/83546
+       * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND
+       to PTA_SILVERMONT.
+ 2018-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * config.gcc (powerpc*-linux*-*): Add support for 64-bit little
+       endian Linux systems to optionally enable multilibs for selecting
+       the long double type if the user configured an explicit type.
+       * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we
+       have no long double multilibs if not defined.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
+       warn if the user used -mabi={ieee,ibm}longdouble and we built
+       multilibs for long double.
+       * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the
+       appropriate multilib option.
+       (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default
+       multilib options.
+       * config/rs6000/t-ldouble-linux64le-ibm: New configuration files
+       for building long double multilibs.
+       * config/rs6000/t-ldouble-linux64le-ieee: Likewise.
+ 2018-01-16  John David Anglin  <danglin@gcc.gnu.org>
+       * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller
+       copies.
+       * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to
+       64 bits.
+       * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to
+       128 bits.
+       * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode
+       variables.
  
-       PR tree-optimization/68060
-       * tree-vect-loop.c (vect_is_simple_reduction): Check the
-       outer loop reduction is only used in the inner loop before
-       detecting a double reduction.
+       * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE
+       return value.
+ 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+       * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an
+       ADDR_EXPR, do not count the offset of a COMPONENT_REF twice.
+ 2018-01-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+       * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate
+       different rtl trees depending on TARGET_64BIT.
+       (rs6000_gen_lvx): Likewise.
+ 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+       * config/visium/visium.md (nop): Tweak comment.
+       (hazard_nop): Likewise.
+ 2018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
+       -mspeculate-indirect-jumps.
+       * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
+       for -mno-speculate-indirect-jumps.
+       (*call_indirect_elfv2<mode>_nospec): New define_insn.
+       (*call_value_indirect_elfv2<mode>): Disable for
+       -mno-speculate-indirect-jumps.
+       (*call_value_indirect_elfv2<mode>_nospec): New define_insn.
+       (indirect_jump): Emit different RTL for
+       -mno-speculate-indirect-jumps.
+       (*indirect_jump<mode>): Disable for
+       -mno-speculate-indirect-jumps.
+       (*indirect_jump<mode>_nospec): New define_insn.
+       (tablejump): Emit different RTL for
+       -mno-speculate-indirect-jumps.
+       (tablejumpsi): Disable for -mno-speculate-indirect-jumps.
+       (tablejumpsi_nospec): New define_expand.
+       (tablejumpdi): Disable for -mno-speculate-indirect-jumps.
+       (tablejumpdi_nospec): New define_expand.
+       (*tablejump<mode>_internal1): Disable for
+       -mno-speculate-indirect-jumps.
+       (*tablejump<mode>_internal1_nospec): New define_insn.
+       * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
+       option.
+ 2018-01-16  Artyom Skrobov tyomitch@gmail.com
+       * caller-save.c (insert_save): Drop unnecessary parameter.  All
+       callers updated.
+ 2018-01-16  Jakub Jelinek  <jakub@redhat.com>
+           Richard Biener  <rguenth@suse.de>
  
- 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
+       PR libgomp/83590
+       * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr)
+       return early, inline manually is_gimple_sizepos.  Make sure if we
+       call gimplify_expr we don't end up with a gimple constant.
+       * tree.c (variably_modified_type_p): Don't return true for
+       is_gimple_constant (_t).  Inline manually is_gimple_sizepos.
+       * gimplify.h (is_gimple_sizepos): Remove.
+ 2018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/83857
+       * tree-vect-loop.c (vect_analyze_loop_operations): Don't call
+       vectorizable_live_operation for pure SLP statements.
+       (vectorizable_live_operation): Handle PHIs.
+ 2018-01-16  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/83867
+       * tree-vect-stmts.c (vect_transform_stmt): Precompute
+       nested_in_vect_loop_p since the scalar stmt may get invalidated.
+ 2018-01-16  Jakub Jelinek  <jakub@redhat.com>
+       PR c/83844
+       * stor-layout.c (handle_warn_if_not_align): Use byte_position and
+       multiple_of_p instead of unchecked tree_to_uhwi and UHWI check.
+       If off is not INTEGER_CST, issue a may not be aligned warning
+       rather than isn't aligned.  Use isn%'t rather than isn't.
+       * fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through
+       into MULT_EXPR.
+       <case MULT_EXPR>: Improve the case when bottom and one of the
+       MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that
+       operand, in that case check if the other operand is multiple of
+       bottom divided by the INTEGER_CST operand.
+ 2018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR target/83858
+       * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete.
+       * config/pa/pa-protos.h (pa_function_arg_size): Declare.
+       * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use
+       pa_function_arg_size instead of FUNCTION_ARG_SIZE.
+       * config/pa/pa.c (pa_function_arg_advance): Likewise.
+       (pa_function_arg, pa_arg_partial_bytes): Likewise.
+       (pa_function_arg_size): New function.
+ 2018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
+       * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
+       in a separate statement.
+ 2018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR tree-optimization/83847
+       * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't
+       group gathers and scatters.
+ 2018-01-16  Jakub Jelinek  <jakub@redhat.com>
+       PR rtl-optimization/86620
+       * params.def (max-sched-ready-insns): Bump minimum value to 1.
+       PR rtl-optimization/83213
+       * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn
+       to last if both are JUMP_INSNs.
+       PR tree-optimization/83843
+       * gimple-ssa-store-merging.c
+       (imm_store_chain_info::output_merged_store): Handle bit_not_p on
+       store_immediate_info for bswap/nop orig_stores.
+ 2018-01-15  Andrew Waterman  <andrew@sifive.com>
+       * config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if
+       !TARGET_MUL.
+       <UDIV>: Increase cost if !TARGET_DIV.
+ 2018-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr.
+       (define_attr "cr_logical_3op"): New.
+       (cceq_ior_compare): Adjust.
+       (cceq_ior_compare_complement): Adjust.
+       (*cceq_rev_compare): Adjust.
+       * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
+       (is_cracked_insn): Adjust.
+       (insn_must_be_first_in_group): Adjust.
+       * config/rs6000/40x.md: Adjust.
+       * config/rs6000/440.md: Adjust.
+       * config/rs6000/476.md: Adjust.
+       * config/rs6000/601.md: Adjust.
+       * config/rs6000/603.md: Adjust.
+       * config/rs6000/6xx.md: Adjust.
+       * config/rs6000/7450.md: Adjust.
+       * config/rs6000/7xx.md: Adjust.
+       * config/rs6000/8540.md: Adjust.
+       * config/rs6000/cell.md: Adjust.
+       * config/rs6000/e300c2c3.md: Adjust.
+       * config/rs6000/e500mc.md: Adjust.
+       * config/rs6000/e500mc64.md: Adjust.
+       * config/rs6000/e5500.md: Adjust.
+       * config/rs6000/e6500.md: Adjust.
+       * config/rs6000/mpc.md: Adjust.
+       * config/rs6000/power4.md: Adjust.
+       * config/rs6000/power5.md: Adjust.
+       * config/rs6000/power6.md: Adjust.
+       * config/rs6000/power7.md: Adjust.
+       * config/rs6000/power8.md: Adjust.
+       * config/rs6000/power9.md: Adjust.
+       * config/rs6000/rs64.md: Adjust.
+       * config/rs6000/titan.md: Adjust.
+ 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/predicates.md (indirect_branch_operand): Rewrite
+       ix86_indirect_branch_register logic.
+ 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/constraints.md (Bs): Update
+       ix86_indirect_branch_register check.  Don't check
+       ix86_indirect_branch_register with GOT_memory_operand.
+       (Bw): Likewise.
+       * config/i386/predicates.md (GOT_memory_operand): Don't check
+       ix86_indirect_branch_register here.
+       (GOT32_symbol_operand): Likewise.
+ 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/predicates.md (constant_call_address_operand):
+       Rewrite ix86_indirect_branch_register logic.
+       (sibcall_insn_operand): Likewise.
+ 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/constraints.md (Bs): Replace
+       ix86_indirect_branch_thunk_register with
+       ix86_indirect_branch_register.
+       (Bw): Likewise.
+       * config/i386/i386.md (indirect_jump): Likewise.
+       (tablejump): Likewise.
+       (*sibcall_memory): Likewise.
+       (*sibcall_value_memory): Likewise.
+       Peepholes of indirect call and jump via memory: Likewise.
+       * config/i386/i386.opt: Likewise.
+       * config/i386/predicates.md (indirect_branch_operand): Likewise.
+       (GOT_memory_operand): Likewise.
+       (call_insn_operand): Likewise.
+       (sibcall_insn_operand): Likewise.
+       (GOT32_symbol_operand): Likewise.
+ 2018-01-15  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/83837
+       * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val
+       type rather than type addr's type points to.
+       (expand_omp_atomic_mutex): Likewise.
+       (expand_omp_atomic): Likewise.
+ 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/83839
+       * config/i386/i386.c (output_indirect_thunk_function): Use
+       ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
+       for  __x86_return_thunk.
+ 2018-01-15  Richard Biener  <rguenther@suse.de>
+       PR middle-end/83850
+       * expmed.c (extract_bit_field_1): Fix typo.
+ 2018-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR target/83687
+       * config/arm/iterators.md (VF): New mode iterator.
+       * config/arm/neon.md (neon_vabd<mode>_2): Use the above.
+       Remove integer-related logic from pattern.
+       (neon_vabd<mode>_3): Likewise.
+ 2018-01-15  Jakub Jelinek  <jakub@redhat.com>
+       PR middle-end/82694
+       * common.opt (fstrict-overflow): No longer an alias.
+       (fwrapv-pointer): New option.
+       * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define
+       also for pointer types based on flag_wrapv_pointer.
+       * opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set
+       opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if
+       opts->x_flag_wrapv got set.
+       * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01
+       changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of
+       POINTER_TYPE_OVERFLOW_UNDEFINED.
+       * match.pd: Likewise in address comparison pattern.
+       * doc/invoke.texi: Document -fwrapv and -fstrict-overflow.
+ 2018-01-15  Richard Biener  <rguenther@suse.de>
+       PR lto/83804
+       * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs
+       from TYPE_FIELDS.  Free TYPE_BINFO if not used by devirtualization.
+       Reset type names to their identifier if their TYPE_DECL doesn't
+       have linkage (and thus is used for ODR and devirt).
+       (save_debug_info_for_decl): Remove.
+       (save_debug_info_for_type): Likewise.
+       (add_tree_to_fld_list): Adjust.
+       * tree-pretty-print.c (dump_generic_node): Make dumping of
+       type names more robust.
+ 2018-01-15  Richard Biener  <rguenther@suse.de>
+       * BASE-VER: Bump to 8.0.1.
+ 2018-01-14  Martin Sebor  <msebor@redhat.com>
+       PR other/83508
+       * builtins.c (check_access): Avoid warning when the no-warning bit
+       is set.
+ 2018-01-14  Cory Fields  <cory-nospam-@coryfields.com>
+       * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort.
+       * ira-color (allocno_hard_regs_compare): Likewise.
+ 2018-01-14  Nathan Rossi  <nathan@nathanrossi.com>
+       PR target/83013
+       * config/microblaze/microblaze.c (microblaze_asm_output_ident):
+       Use .pushsection/.popsection.
+ 2018-01-14  Martin Sebor  <msebor@redhat.com>
+       PR c++/81327
+       * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting.
+ 2018-01-14  Jakub Jelinek  <jakub@redhat.com>
+       * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h
+       entry from extra_headers.
+       (x86_64-*-*): Remove two duplicate gfniintrin.h entries from
+       extra_headers, make the list bitwise identical to the i?86-*-* one.
+ 2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
+       -mcmodel=large with -mindirect-branch=thunk,
+       -mindirect-branch=thunk-extern, -mfunction-return=thunk and
+       -mfunction-return=thunk-extern.
+       * doc/invoke.texi: Document -mcmodel=large is incompatible with
+       -mindirect-branch=thunk, -mindirect-branch=thunk-extern,
+       -mfunction-return=thunk and -mfunction-return=thunk-extern.
+ 2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/i386.c (print_reg): Print the name of the full
+       integer register without '%'.
+       (ix86_print_operand): Handle 'V'.
+       * doc/extend.texi: Document 'V' modifier.
+ 2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/constraints.md (Bs): Disallow memory operand for
+       -mindirect-branch-register.
+       (Bw): Likewise.
+       * config/i386/predicates.md (indirect_branch_operand): Likewise.
+       (GOT_memory_operand): Likewise.
+       (call_insn_operand): Likewise.
+       (sibcall_insn_operand): Likewise.
+       (GOT32_symbol_operand): Likewise.
+       * config/i386/i386.md (indirect_jump): Call convert_memory_address
+       for -mindirect-branch-register.
+       (tablejump): Likewise.
+       (*sibcall_memory): Likewise.
+       (*sibcall_value_memory): Likewise.
+       Disallow peepholes of indirect call and jump via memory for
+       -mindirect-branch-register.
+       (*call_pop): Replace m with Bw.
+       (*call_value_pop): Likewise.
+       (*sibcall_pop_memory): Replace m with Bs.
+       * config/i386/i386.opt (mindirect-branch-register): New option.
+       * doc/invoke.texi: Document -mindirect-branch-register option.
+ 2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/i386-protos.h (ix86_output_function_return): New.
+       * config/i386/i386.c (ix86_set_indirect_branch_type): Also
+       set function_return_type.
+       (indirect_thunk_name): Add ret_p to indicate thunk for function
+       return.
+       (output_indirect_thunk_function): Pass false to
+       indirect_thunk_name.
+       (ix86_output_indirect_branch_via_reg): Likewise.
+       (ix86_output_indirect_branch_via_push): Likewise.
+       (output_indirect_thunk_function): Create alias for function
+       return thunk if regno < 0.
+       (ix86_output_function_return): New function.
+       (ix86_handle_fndecl_attribute): Handle function_return.
+       (ix86_attribute_table): Add function_return.
+       * config/i386/i386.h (machine_function): Add
+       function_return_type.
+       * config/i386/i386.md (simple_return_internal): Use
+       ix86_output_function_return.
+       (simple_return_internal_long): Likewise.
+       * config/i386/i386.opt (mfunction-return=): New option.
+       (indirect_branch): Mention -mfunction-return=.
+       * doc/extend.texi: Document function_return function attribute.
+       * doc/invoke.texi: Document -mfunction-return= option.
+ 2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+       * config/i386/i386-opts.h (indirect_branch): New.
+       * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
+       * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
+       with local indirect jump when converting indirect call and jump.
+       (ix86_set_indirect_branch_type): New.
+       (ix86_set_current_function): Call ix86_set_indirect_branch_type.
+       (indirectlabelno): New.
+       (indirect_thunk_needed): Likewise.
+       (indirect_thunk_bnd_needed): Likewise.
+       (indirect_thunks_used): Likewise.
+       (indirect_thunks_bnd_used): Likewise.
+       (INDIRECT_LABEL): Likewise.
+       (indirect_thunk_name): Likewise.
+       (output_indirect_thunk): Likewise.
+       (output_indirect_thunk_function): Likewise.
+       (ix86_output_indirect_branch_via_reg): Likewise.
+       (ix86_output_indirect_branch_via_push): Likewise.
+       (ix86_output_indirect_branch): Likewise.
+       (ix86_output_indirect_jmp): Likewise.
+       (ix86_code_end): Call output_indirect_thunk_function if needed.
+       (ix86_output_call_insn): Call ix86_output_indirect_branch if
+       needed.
+       (ix86_handle_fndecl_attribute): Handle indirect_branch.
+       (ix86_attribute_table): Add indirect_branch.
+       * config/i386/i386.h (machine_function): Add indirect_branch_type
+       and has_local_indirect_jump.
+       * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
+       to true.
+       (tablejump): Likewise.
+       (*indirect_jump): Use ix86_output_indirect_jmp.
+       (*tablejump_1): Likewise.
+       (simple_return_indirect_internal): Likewise.
+       * config/i386/i386.opt (mindirect-branch=): New option.
+       (indirect_branch): New.
+       (keep): Likewise.
+       (thunk): Likewise.
+       (thunk-inline): Likewise.
+       (thunk-extern): Likewise.
+       * doc/extend.texi: Document indirect_branch function attribute.
+       * doc/invoke.texi: Document -mindirect-branch= option.
+ 2018-01-14  Jan Hubicka  <hubicka@ucw.cz>
+       PR ipa/83051
+       * ipa-inline.c (edge_badness): Tolerate roundoff errors.
+ 2018-01-14  Richard Sandiford  <richard.sandiford@linaro.org>
+       * ipa-inline.c (want_inline_small_function_p): Return false if
+       inlining has already failed with CIF_FINAL_ERROR.
+       (update_caller_keys): Call want_inline_small_function_p before
+       can_inline_edge_p.
+       (update_callee_keys): Likewise.
  
-       PR target/68269
-       * combine.c (expand_field_assignment): Punt if compute_mode is
-       unsupported scalar mode.
+ 2018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
  
- 2016-01-14  Richard Biener  <rguenther@suse.de>
+       * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p):
+       New function.
+       (rs6000_quadword_masked_address_p): Likewise.
+       (quad_aligned_load_p): Likewise.
+       (quad_aligned_store_p): Likewise.
+       (const_load_sequence_p): Add comment to describe the outer-most loop.
+       (mimic_memory_attributes_and_flags): New function.
+       (rs6000_gen_stvx): Likewise.
+       (replace_swapped_aligned_store): Likewise.
+       (rs6000_gen_lvx): Likewise.
+       (replace_swapped_aligned_load): Likewise.
+       (replace_swapped_load_constant): Capitalize argument name in
+       comment describing this function.
+       (rs6000_analyze_swaps): Add a third pass to search for vector loads
+       and stores that access quad-word aligned addresses and replace
+       with stvx or lvx instructions when appropriate.
+       * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p):
+       New function prototype.
+       (rs6000_quadword_masked_address_p): Likewise.
+       (rs6000_gen_lvx): Likewise.
+       (rs6000_gen_stvx): Likewise.
+       * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes
+       VSX_D (V2DF, V2DI), modify this split to select lvx instruction
+       when memory address is aligned.
+       (*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify
+       this split to select lvx instruction when memory address is aligned.
+       (*vsx_le_perm_load_v8hi): Modify this split to select lvx
+       instruction when memory address is aligned.
+       (*vsx_le_perm_load_v16qi): Likewise.
+       (four unnamed splitters): Modify to select the stvx instruction
+       when memory is aligned.
+ 2018-01-13  Jan Hubicka  <hubicka@ucw.cz>
+       * predict.c (determine_unlikely_bbs): Handle correctly BBs
+       which appears in the queue multiple times.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vectorizer.h (vec_lower_bound): New structure.
+       (_loop_vec_info): Add check_nonzero and lower_bounds.
+       (LOOP_VINFO_CHECK_NONZERO): New macro.
+       (LOOP_VINFO_LOWER_BOUNDS): Likewise.
+       (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too.
+       * tree-data-ref.h (dr_with_seg_len): Add access_size and align
+       fields.  Make seg_len the distance travelled, not including the
+       access size.
+       (dr_direction_indicator): Declare.
+       (dr_zero_step_indicator): Likewise.
+       (dr_known_forward_stride_p): Likewise.
+       * tree-data-ref.c: Include stringpool.h, tree-vrp.h and
+       tree-ssanames.h.
+       (runtime_alias_check_p): Allow runtime alias checks with
+       variable strides.
+       (operator ==): Compare access_size and align.
+       (prune_runtime_alias_test_list): Rework for new distinction between
+       the access_size and seg_len.
+       (create_intersect_range_checks_index): Likewise.  Cope with polynomial
+       segment lengths.
+       (get_segment_min_max): New function.
+       (create_intersect_range_checks): Use it.
+       (dr_step_indicator): New function.
+       (dr_direction_indicator): Likewise.
+       (dr_zero_step_indicator): Likewise.
+       (dr_known_forward_stride_p): Likewise.
+       * tree-loop-distribution.c (data_ref_segment_size): Return
+       DR_STEP * (niters - 1).
+       (compute_alias_check_pairs): Update call to the dr_with_seg_len
+       constructor.
+       * tree-vect-data-refs.c (vect_check_nonzero_value): New function.
+       (vect_preserves_scalar_order_p): New function, split out from...
+       (vect_analyze_data_ref_dependence): ...here.  Check for zero steps.
+       (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1).
+       (vect_vfa_access_size): New function.
+       (vect_vfa_align): Likewise.
+       (vect_compile_time_alias): Take access_size_a and access_b arguments.
+       (dump_lower_bound): New function.
+       (vect_check_lower_bound): Likewise.
+       (vect_small_gap_p): Likewise.
+       (vectorizable_with_step_bound_p): Likewise.
+       (vect_prune_runtime_alias_test_list): Ignore cross-iteration
+       depencies if the vectorization factor is 1.  Convert the checks
+       for nonzero steps into checks on the bounds of DR_STEP.  Try using
+       a bunds check for variable steps if the minimum required step is
+       relatively small. Update calls to the dr_with_seg_len
+       constructor and to vect_compile_time_alias.
+       * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New
+       function.
+       (vect_loop_versioning): Call it.
+       * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS
+       when retrying.
+       (vect_estimate_min_profitable_iters): Account for any bounds checks.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/sourcebuild.texi (vect_scatter_store): Document.
+       * optabs.def (scatter_store_optab, mask_scatter_store_optab): New
+       optabs.
+       * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}):
+       Document.
+       * genopinit.c (main): Add supports_vec_scatter_store and
+       supports_vec_scatter_store_cached to target_optabs.
+       * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and
+       IFN_MASK_SCATTER_STORE.
+       * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal
+       functions.
+       * internal-fn.h (internal_store_fn_p): Declare.
+       (internal_fn_stored_value_index): Likewise.
+       * internal-fn.c (scatter_store_direct): New macro.
+       (expand_scatter_store_optab_fn): New function.
+       (direct_scatter_store_optab_supported_p): New macro.
+       (internal_store_fn_p): New function.
+       (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and
+       IFN_MASK_SCATTER_STORE.
+       (internal_fn_mask_index): Likewise.
+       (internal_fn_stored_value_index): New function.
+       (internal_gather_scatter_fn_supported_p): Adjust operand numbers
+       for scatter stores.
+       * optabs-query.h (supports_vec_scatter_store_p): Declare.
+       * optabs-query.c (supports_vec_scatter_store_p): New function.
+       * tree-vectorizer.h (vect_get_store_rhs): Declare.
+       * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return
+       true for scatter stores.
+       (vect_gather_scatter_fn_p): Handle scatter stores too.
+       (vect_check_gather_scatter): Consider using scatter stores if
+       supports_vec_scatter_store_p.
+       * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle
+       scatter stores too.
+       * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
+       internal_fn_stored_value_index.
+       (check_load_store_masking): Handle scatter stores too.
+       (vect_get_store_rhs): Make public.
+       (vectorizable_call): Use internal_store_fn_p.
+       (vectorizable_store): Handle scatter store internal functions.
+       (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE
+       when deciding whether the end of the group has been reached.
+       * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec.
+       * config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander.
+       (mask_scatter_store<mode>): New insns.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare.
+       * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public.
+       * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New
+       function.
+       (vect_use_strided_gather_scatters_p): Take a masked_p argument.
+       Use vect_truncate_gather_scatter_offset if we can't treat the
+       operation as a normal gather load or scatter store.
+       (get_group_load_store_type): Take the gather_scatter_info
+       as argument.  Try using a gather load or scatter store for
+       single-element groups.
+       (get_load_store_type): Update calls to get_group_load_store_type
+       and vect_use_strided_gather_scatters_p.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra
+       optional tree argument.
+       * tree-vect-data-refs.c (vect_check_gather_scatter): Check for
+       null target hooks.
+       (vect_create_data_ref_ptr): Take the iv_step as an optional argument,
+       but continue to use the current value as a fallback.
+       (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare
+       to compare the updates.
+       * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function.
+       (get_load_store_type): Use it when handling a strided access.
+       (vect_get_strided_load_store_ops): New function.
+       (vect_get_data_ptr_increment): Likewise.
+       (vectorizable_load): Handle strided gather loads.  Always pass
+       a step to vect_create_data_ref_ptr and bump_vector_ptr.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/md.texi (gather_load@var{m}): Document.
+       (mask_gather_load@var{m}): Likewise.
+       * genopinit.c (main): Add supports_vec_gather_load and
+       supports_vec_gather_load_cached to target_optabs.
+       * optabs-tree.c (init_tree_optimization_optabs): Use
+       ggc_cleared_alloc to allocate target_optabs.
+       * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs.
+       * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal
+       functions.
+       * internal-fn.h (internal_load_fn_p): Declare.
+       (internal_gather_scatter_fn_p): Likewise.
+       (internal_fn_mask_index): Likewise.
+       (internal_gather_scatter_fn_supported_p): Likewise.
+       * internal-fn.c (gather_load_direct): New macro.
+       (expand_gather_load_optab_fn): New function.
+       (direct_gather_load_optab_supported_p): New macro.
+       (direct_internal_fn_optab): New function.
+       (internal_load_fn_p): Likewise.
+       (internal_gather_scatter_fn_p): Likewise.
+       (internal_fn_mask_index): Likewise.
+       (internal_gather_scatter_fn_supported_p): Likewise.
+       * optabs-query.c (supports_at_least_one_mode_p): New function.
+       (supports_vec_gather_load_p): Likewise.
+       * optabs-query.h (supports_vec_gather_load_p): Declare.
+       * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type
+       and memory_type field.
+       (NUM_PATTERNS): Bump to 15.
+       * tree-vect-data-refs.c: Include internal-fn.h.
+       (vect_gather_scatter_fn_p): New function.
+       (vect_describe_gather_scatter_call): Likewise.
+       (vect_check_gather_scatter): Try using internal functions for
+       gather loads.  Recognize existing calls to a gather load function.
+       (vect_analyze_data_refs): Consider using gather loads if
+       supports_vec_gather_load_p.
+       * tree-vect-patterns.c (vect_get_load_store_mask): New function.
+       (vect_get_gather_scatter_offset_type): Likewise.
+       (vect_convert_mask_for_vectype): Likewise.
+       (vect_add_conversion_to_patterm): Likewise.
+       (vect_try_gather_scatter_pattern): Likewise.
+       (vect_recog_gather_scatter_pattern): New pattern recognizer.
+       (vect_vect_recog_func_ptrs): Add it.
+       * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
+       internal_fn_mask_index and internal_gather_scatter_fn_p.
+       (check_load_store_masking): Take the gather_scatter_info as an
+       argument and handle gather loads.
+       (vect_get_gather_scatter_ops): New function.
+       (vectorizable_call): Check internal_load_fn_p.
+       (vectorizable_load): Likewise.  Handle gather load internal
+       functions.
+       (vectorizable_store): Update call to check_load_store_masking.
+       * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec.
+       * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators.
+       * config/aarch64/predicates.md (aarch64_gather_scale_operand_w)
+       (aarch64_gather_scale_operand_d): New predicates.
+       * config/aarch64/aarch64-sve.md (gather_load<mode>): New expander.
+       (mask_gather_load<mode>): New insns.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * optabs.def (fold_left_plus_optab): New optab.
+       * doc/md.texi (fold_left_plus_@var{m}): Document.
+       * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function.
+       * internal-fn.c (fold_left_direct): Define.
+       (expand_fold_left_optab_fn): Likewise.
+       (direct_fold_left_optab_supported_p): Likewise.
+       * fold-const-call.c (fold_const_fold_left): New function.
+       (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS.
+       * tree-parloops.c (valid_reduction_p): New function.
+       (gather_scalar_reductions): Use it.
+       * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type.
+       (vect_finish_replace_stmt): Declare.
+       * tree-vect-loop.c (fold_left_reduction_fn): New function.
+       (needs_fold_left_reduction_p): New function, split out from...
+       (vect_is_simple_reduction): ...here.  Accept reductions that
+       forbid reassociation, but give them type FOLD_LEFT_REDUCTION.
+       (vect_force_simple_reduction): Also store the reduction type in
+       the assignment's STMT_VINFO_REDUC_TYPE.
+       (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION.
+       (merge_with_identity): New function.
+       (vect_expand_fold_left): Likewise.
+       (vectorize_fold_left_reduction): Likewise.
+       (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION.  Leave the
+       scalar phi in place for it.  Check for target support and reject
+       cases that would reassociate the operation.  Defer the transform
+       phase to vectorize_fold_left_reduction.
+       * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec.
+       * config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander.
+       (*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-if-conv.c (predicate_mem_writes): Remove redundant
+       call to ifc_temp_var.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * target.def (legitimize_address_displacement): Take the original
+       offset as a poly_int.
+       * targhooks.h (default_legitimize_address_displacement): Update
+       accordingly.
+       * targhooks.c (default_legitimize_address_displacement): Likewise.
+       * doc/tm.texi: Regenerate.
+       * lra-constraints.c (base_plus_disp_to_reg): Take the displacement
+       as an argument, moving assert of ad->disp == ad->disp_term to...
+       (process_address_1): ...here.  Update calls to base_plus_disp_to_reg.
+       Try calling targetm.legitimize_address_displacement before expanding
+       the address rather than afterwards, and adjust for the new interface.
+       * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
+       Match the new hook interface.  Handle SVE addresses.
+       * config/sh/sh.c (sh_legitimize_address_displacement): Make the
+       new hook interface.
  
-       PR tree-optimization/66856
-       * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
-       SLP node only if it built successfully.
-       (vect_analyze_slp_instance): Adjust.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-14  Jeff Law  <law@redhat.com>
+       * Makefile.in (OBJS): Add early-remat.o.
+       * target.def (select_early_remat_modes): New hook.
+       * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook.
+       * doc/tm.texi: Regenerate.
+       * targhooks.h (default_select_early_remat_modes): Declare.
+       * targhooks.c (default_select_early_remat_modes): New function.
+       * timevar.def (TV_EARLY_REMAT): New timevar.
+       * passes.def (pass_early_remat): New pass.
+       * tree-pass.h (make_pass_early_remat): Declare.
+       * early-remat.c: New file.
+       * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New
+       function.
+       (TARGET_SELECT_EARLY_REMAT_MODES): Define.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace
+       vfm1 with a bound_epilog parameter.
+       (vect_do_peeling): Update calls accordingly, and move the prologue
+       call earlier in the function.  Treat the base bound_epilog as 0 for
+       fully-masked loops and retain vf - 1 for other loops.  Add 1 to
+       this base when peeling for gaps.
+       * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps
+       with fully-masked loops.
+       (vect_estimate_min_profitable_iters): Handle the single peeled
+       iteration in that case.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow
+       single-element interleaving even if the size is not a power of 2.
+       * tree-vect-stmts.c (get_load_store_type): Disallow elementwise
+       accesses for single-element interleaving if the group size is
+       not a power of 2.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/md.texi (fold_extract_last_@var{m}): Document.
+       * doc/sourcebuild.texi (vect_fold_extract_last): Likewise.
+       * optabs.def (fold_extract_last_optab): New optab.
+       * internal-fn.def (FOLD_EXTRACT_LAST): New internal function.
+       * internal-fn.c (fold_extract_direct): New macro.
+       (expand_fold_extract_optab_fn): Likewise.
+       (direct_fold_extract_optab_supported_p): Likewise.
+       * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type.
+       * tree-vect-loop.c (vect_model_reduction_cost): Handle
+       EXTRACT_LAST_REDUCTION.
+       (get_initial_def_for_reduction): Do not create an initial vector
+       for EXTRACT_LAST_REDUCTION reductions.
+       (vectorizable_reduction): Leave the scalar phi in place for
+       EXTRACT_LAST_REDUCTIONs.  Try using EXTRACT_LAST_REDUCTION
+       ahead of INTEGER_INDUC_COND_REDUCTION.  Do not check for an
+       epilogue code for EXTRACT_LAST_REDUCTION and defer the
+       transform phase to vectorizable_condition.
+       * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function,
+       split out from...
+       (vect_finish_stmt_generation): ...here.
+       (vect_finish_replace_stmt): New function.
+       (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION.
+       * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New
+       pattern.
+       * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/md.texi (extract_last_@var{m}): Document.
+       * optabs.def (extract_last_optab): New optab.
+       * internal-fn.def (EXTRACT_LAST): New internal function.
+       * internal-fn.c (cond_unary_direct): New macro.
+       (expand_cond_unary_optab_fn): Likewise.
+       (direct_cond_unary_optab_supported_p): Likewise.
+       * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked
+       loops using EXTRACT_LAST.
+       * config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to...
+       (extract_last_<mode>): ...this optab.
+       (vec_extract<mode><Vel>): Update accordingly.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * target.def (empty_mask_is_expensive): New hook.
+       * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook.
+       * doc/tm.texi: Regenerate.
+       * targhooks.h (default_empty_mask_is_expensive): Declare.
+       * targhooks.c (default_empty_mask_is_expensive): New function.
+       * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores
+       if the target says that empty masks are expensive.
+       * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive):
+       New function.
+       (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field.
+       (LOOP_VINFO_MASK_SKIP_NITERS): New macro.
+       (vect_use_loop_mask_for_alignment_p): New function.
+       (vect_prepare_for_masked_peels, vect_gen_while_not): Declare.
+       * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an
+       niters_skip argument.  Make sure that the first niters_skip elements
+       of the first iteration are inactive.
+       (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS.
+       Update call to vect_set_loop_masks_directly.
+       (get_misalign_in_elems): New function, split out from...
+       (vect_gen_prolog_loop_niters): ...here.
+       (vect_update_init_of_dr): Take a code argument that specifies whether
+       the adjustment should be added or subtracted.
+       (vect_update_init_of_drs): Likewise.
+       (vect_prepare_for_masked_peels): New function.
+       (vect_do_peeling): Skip prologue peeling if we're using a mask
+       instead.  Update call to vect_update_inits_of_drs.
+       * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
+       mask_skip_niters.
+       (vect_analyze_loop_2): Allow fully-masked loops with peeling for
+       alignment.  Do not include the number of peeled iterations in
+       the minimum threshold in that case.
+       (vectorizable_induction): Adjust the start value down by
+       LOOP_VINFO_MASK_SKIP_NITERS iterations.
+       (vect_transform_loop): Call vect_prepare_for_masked_peels.
+       Take the number of skipped iterations into account when calculating
+       the loop bounds.
+       * tree-vect-stmts.c (vect_gen_while_not): New function.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/sourcebuild.texi (vect_fully_masked): Document.
+       * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and
+       default value to 0.
+       * tree-vect-loop.c (vect_analyze_loop_costing): New function,
+       split out from...
+       (vect_analyze_loop_2): ...here. Don't check the vectorization
+       factor against the number of loop iterations if the loop is
+       fully-masked.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into...
+       (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types.
+       (dump_groups): Update accordingly.
+       (iv_use::mem_type): New member variable.
+       (address_p): New function.
+       (record_use): Add a mem_type argument and initialize the new
+       mem_type field.
+       (record_group_use): Add a mem_type argument.  Use address_p.
+       Remove obsolete null checks of base_object.  Update call to record_use.
+       (find_interesting_uses_op): Update call to record_group_use.
+       (find_interesting_uses_cond): Likewise.
+       (find_interesting_uses_address): Likewise.
+       (get_mem_type_for_internal_fn): New function.
+       (find_address_like_use): Likewise.
+       (find_interesting_uses_stmt): Try find_address_like_use before
+       calling find_interesting_uses_op.
+       (addr_offset_valid_p): Use the iv mem_type field as the type
+       of the addressed memory.
+       (add_autoinc_candidates): Likewise.
+       (get_address_cost): Likewise.
+       (split_small_address_groups_p): Use address_p.
+       (split_address_groups): Likewise.
+       (add_iv_candidate_for_use): Likewise.
+       (autoinc_possible_for_pair): Likewise.
+       (rewrite_groups): Likewise.
+       (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS.
+       (determine_group_iv_cost): Update after split of USE_ADDRESS.
+       (get_alias_ptr_type_for_ptr_address): New function.
+       (rewrite_use_address): Rewrite address uses in calls that were
+       identified by find_address_like_use.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of
+       TARGET_MEM_REFs.
+       * gimple-expr.h (is_gimple_addressable: Likewise.
+       * gimple-expr.c (is_gimple_address): Likewise.
+       * internal-fn.c (expand_call_mem_ref): New function.
+       (expand_mask_load_optab_fn): Use it.
+       (expand_mask_store_optab_fn): Likewise.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode})
+       (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode})
+       (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode})
+       (cond_umax@var{mode}): Document.
+       * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab)
+       (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab)
+       (cond_umin_optab, cond_umax_optab): New optabs.
+       * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND)
+       (COND_IOR, COND_XOR): New internal functions.
+       * internal-fn.h (get_conditional_internal_fn): Declare.
+       * internal-fn.c (cond_binary_direct): New macro.
+       (expand_cond_binary_optab_fn): Likewise.
+       (direct_cond_binary_optab_supported_p): Likewise.
+       (get_conditional_internal_fn): New function.
+       * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops.
+       Cope with reduction statements that are vectorized as calls rather
+       than assignments.
+       * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns.
+       * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB)
+       (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN)
+       (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR)
+       (UNSPEC_COND_EOR): New unspecs.
+       (optab): Add mappings for them.
+       (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators.
+       (sve_int_op, sve_fp_op): New int attributes.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * optabs.def (while_ult_optab): New optab.
+       * doc/md.texi (while_ult@var{m}@var{n}): Document.
+       * internal-fn.def (WHILE_ULT): New internal function.
+       * internal-fn.h (direct_internal_fn_supported_p): New override
+       that takes two types as argument.
+       * internal-fn.c (while_direct): New macro.
+       (expand_while_optab_fn): New function.
+       (convert_optab_supported_p): Likewise.
+       (direct_while_optab_supported_p): New macro.
+       * wide-int.h (wi::udiv_ceil): New function.
+       * tree-vectorizer.h (rgroup_masks): New structure.
+       (vec_loop_masks): New typedef.
+       (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p
+       and fully_masked_p.
+       (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P)
+       (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros.
+       (vect_max_vf): New function.
+       (slpeel_make_loop_iterate_ntimes): Delete.
+       (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while)
+       (vect_halve_mask_nunits, vect_double_mask_nunits): Declare.
+       (vect_record_loop_mask, vect_get_loop_mask): Likewise.
+       * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h,
+       internal-fn.h, stor-layout.h and optabs-query.h.
+       (vect_set_loop_mask): New function.
+       (add_preheader_seq): Likewise.
+       (add_header_seq): Likewise.
+       (interleave_supported_p): Likewise.
+       (vect_maybe_permute_loop_masks): Likewise.
+       (vect_set_loop_masks_directly): Likewise.
+       (vect_set_loop_condition_masked): Likewise.
+       (vect_set_loop_condition_unmasked): New function, split out from
+       slpeel_make_loop_iterate_ntimes.
+       (slpeel_make_loop_iterate_ntimes): Rename to..
+       (vect_set_loop_condition): ...this.  Use vect_set_loop_condition_masked
+       for fully-masked loops and vect_set_loop_condition_unmasked otherwise.
+       (vect_do_peeling): Update call accordingly.
+       (vect_gen_vector_loop_niters): Use VF as the step for fully-masked
+       loops.
+       * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
+       mask_compare_type, can_fully_mask_p and fully_masked_p.
+       (release_vec_loop_masks): New function.
+       (_loop_vec_info): Use it to free the loop masks.
+       (can_produce_all_loop_masks_p): New function.
+       (vect_get_max_nscalars_per_iter): Likewise.
+       (vect_verify_full_masking): Likewise.
+       (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around
+       retries, and free the mask rgroups before retrying.  Check loop-wide
+       reasons for disallowing fully-masked loops.  Make the final decision
+       about whether use a fully-masked loop or not.
+       (vect_estimate_min_profitable_iters): Do not assume that peeling
+       for the number of iterations will be needed for fully-masked loops.
+       (vectorizable_reduction): Disable fully-masked loops.
+       (vectorizable_live_operation): Likewise.
+       (vect_halve_mask_nunits): New function.
+       (vect_double_mask_nunits): Likewise.
+       (vect_record_loop_mask): Likewise.
+       (vect_get_loop_mask): Likewise.
+       (vect_transform_loop): Handle the case in which the final loop
+       iteration might handle a partial vector.  Call vect_set_loop_condition
+       instead of slpeel_make_loop_iterate_ntimes.
+       * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h.
+       (check_load_store_masking): New function.
+       (prepare_load_store_mask): Likewise.
+       (vectorizable_store): Handle fully-masked loops.
+       (vectorizable_load): Likewise.
+       (supportable_widening_operation): Use vect_halve_mask_nunits for
+       booleans.
+       (supportable_narrowing_operation): Likewise vect_double_mask_nunits.
+       (vect_gen_while): New function.
+       * config/aarch64/aarch64.md (umax<mode>3): New expander.
+       (aarch64_uqdec<mode>): New insn.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab)
+       (reduc_xor_scal_optab): New optabs.
+       * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m})
+       (reduc_xor_scal_@var{m}): Document.
+       * doc/sourcebuild.texi (vect_logical_reduc): Likewise.
+       * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New
+       internal functions.
+       * fold-const-call.c (fold_const_call): Handle them.
+       * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new
+       internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
+       * config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>):
+       (*reduc_<bit_reduc>_scal_<mode>): New patterns.
+       * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV)
+       (UNSPEC_XORV): New unspecs.
+       (optab): Add entries for them.
+       (BITWISEV): New int iterator.
+       (bit_reduc_op): New int attributes.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/md.texi (vec_shl_insert_@var{m}): New optab.
+       * internal-fn.def (VEC_SHL_INSERT): New internal function.
+       * optabs.def (vec_shl_insert_optab): New optab.
+       * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare.
+       (duplicate_and_interleave): Likewise.
+       * tree-vect-loop.c: Include internal-fn.h.
+       (neutral_op_for_slp_reduction): New function, split out from
+       get_initial_defs_for_reduction.
+       (get_initial_def_for_reduction): Handle option 2 for variable-length
+       vectors by loading the neutral value into a vector and then shifting
+       the initial value into element 0.
+       (get_initial_defs_for_reduction): Replace the code argument with
+       the neutral value calculated by neutral_op_for_slp_reduction.
+       Use gimple_build_vector for constant-length vectors.
+       Use IFN_VEC_SHL_INSERT for variable-length vectors if all
+       but the first group_size elements have a neutral value.
+       Use duplicate_and_interleave otherwise.
+       (vect_create_epilog_for_reduction): Take a neutral_op parameter.
+       Update call to get_initial_defs_for_reduction.  Handle SLP
+       reductions for variable-length vectors by creating one vector
+       result for each scalar result, with the elements associated
+       with other scalar results stubbed out with the neutral value.
+       (vectorizable_reduction): Call neutral_op_for_slp_reduction.
+       Require IFN_VEC_SHL_INSERT for double reductions on
+       variable-length vectors, or SLP reductions that have
+       a neutral value.  Require can_duplicate_and_interleave_p
+       support for variable-length unchained SLP reductions if there
+       is no neutral value, such as for MIN/MAX reductions.  Also require
+       the number of vector elements to be a multiple of the number of
+       SLP statements when doing variable-length unchained SLP reductions.
+       Update call to vect_create_epilog_for_reduction.
+       * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public
+       and remove initial values.
+       (duplicate_and_interleave): Make public.
+       * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec.
+       * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h
+       (can_duplicate_and_interleave_p): New function.
+       (vect_get_and_check_slp_defs): Take the vector of statements
+       rather than just the current one.  Remove excess parentheses.
+       Restriction rejectinon of vect_constant_def and vect_external_def
+       for variable-length vectors to boolean types, or types for which
+       can_duplicate_and_interleave_p is false.
+       (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs.
+       (duplicate_and_interleave): New function.
+       (vect_get_constant_vectors): Use gimple_build_vector for
+       constant-length vectors and suitable variable-length constant
+       vectors.  Use duplicate_and_interleave for other variable-length
+       vectors.  Don't defer the update when inserting new statements.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure
+       min_profitable_iters doesn't go negative.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document.
+       (vec_mask_store_lanes@var{m}@var{n}): Likewise.
+       * optabs.def (vec_mask_load_lanes_optab): New optab.
+       (vec_mask_store_lanes_optab): Likewise.
+       * internal-fn.def (MASK_LOAD_LANES): New internal function.
+       (MASK_STORE_LANES): Likewise.
+       * internal-fn.c (mask_load_lanes_direct): New macro.
+       (mask_store_lanes_direct): Likewise.
+       (expand_mask_load_optab_fn): Handle masked operations.
+       (expand_mask_load_lanes_optab_fn): New macro.
+       (expand_mask_store_optab_fn): Handle masked operations.
+       (expand_mask_store_lanes_optab_fn): New macro.
+       (direct_mask_load_lanes_optab_supported_p): Likewise.
+       (direct_mask_store_lanes_optab_supported_p): Likewise.
+       * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p
+       parameter.
+       (vect_load_lanes_supported): Likewise.
+       * tree-vect-data-refs.c (strip_conversion): New function.
+       (can_group_stmts_p): Likewise.
+       (vect_analyze_data_ref_accesses): Use it instead of checking
+       for a pair of assignments.
+       (vect_store_lanes_supported): Take a masked_p parameter.
+       (vect_load_lanes_supported): Likewise.
+       * tree-vect-loop.c (vect_analyze_loop_2): Update calls to
+       vect_store_lanes_supported and vect_load_lanes_supported.
+       * tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
+       * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p
+       parameter.  Don't allow gaps for masked accesses.
+       Use vect_get_store_rhs.  Update calls to vect_store_lanes_supported
+       and vect_load_lanes_supported.
+       (get_load_store_type): Take a masked_p parameter and update
+       call to get_group_load_store_type.
+       (vectorizable_store): Update call to get_load_store_type.
+       Handle IFN_MASK_STORE_LANES.
+       (vectorizable_load): Update call to get_load_store_type.
+       Handle IFN_MASK_LOAD_LANES.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector
+       modes for SVE.
+       * config/aarch64/aarch64-protos.h
+       (aarch64_sve_struct_memory_operand_p): Declare.
+       * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator.
+       (vector_count, insn_length, VSINGLE, vsingle): New mode attributes.
+       (VPRED, vpred): Handle SVE structure modes.
+       * config/aarch64/constraints.md (Utx): New constraint.
+       * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand)
+       (aarch64_sve_struct_nonimmediate_operand): New predicates.
+       * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs.
+       * config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le)
+       (*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for
+       structure modes.  Split into pieces after RA.
+       (vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>)
+       (vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>):
+       New patterns.
+       * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
+       SVE structure modes.
+       (aarch64_classify_address): Likewise.
+       (sizetochar): Move earlier in file.
+       (aarch64_print_operand): Handle SVE register lists.
+       (aarch64_array_mode): New function.
+       (aarch64_sve_struct_memory_operand_p): Likewise.
+       (TARGET_ARRAY_MODE): Redefine.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * target.def (array_mode): New target hook.
+       * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook.
+       * doc/tm.texi: Regenerate.
+       * hooks.h (hook_optmode_mode_uhwi_none): Declare.
+       * hooks.c (hook_optmode_mode_uhwi_none): New function.
+       * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use
+       targetm.array_mode.
+       * stor-layout.c (mode_for_array): Likewise.  Support polynomial
+       type sizes.
  
-       PR tree-optimization/69270
-       * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
-       (record_edge_info): Use it.  Convert boolean_{true,false}_node
-       to the type of op0.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
  
- 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
+       * fold-const.c (fold_binary_loc): Check the argument types
+       rather than the result type when testing for a vector operation.
  
-       PR ipa/66487
-       * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
-       use block_ultimate_origin
-       (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
+       * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document.
+       * doc/tm.texi: Regenerate.
  
-       * doc/invoke.texi (Submodel Options): Rename section to
-       "Machine-Dependent Options" to better reflect its content.
-       Rewrite introductory text to remove archaic CPU names.
-       Update references.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * doc/invoke.texi (-msve-vector-bits=): Document new option.
+       (sve): Document new AArch64 extension.
+       * doc/md.texi (w): Extend the description of the AArch64
+       constraint to include SVE vectors.
+       (Upl, Upa): Document new AArch64 predicate constraints.
+       * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New
+       enum.
+       * config/aarch64/aarch64.opt (sve_vector_bits): New enum.
+       (msve-vector-bits=): New option.
+       * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable
+       SVE when these are disabled.
+       (sve): New extension.
+       * config/aarch64/aarch64-modes.def: Define SVE vector and predicate
+       modes.  Adjust their number of units based on aarch64_sve_vg.
+       (MAX_BITSIZE_MODE_ANY_MODE): Define.
+       * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New
+       aarch64_addr_query_type.
+       (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode)
+       (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p)
+       (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries)
+       (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate)
+       (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate)
+       (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare.
+       (aarch64_simd_imm_zero_p): Delete.
+       (aarch64_check_zero_based_sve_index_immediate): Declare.
+       (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
+       (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
+       (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
+       (aarch64_sve_float_mul_immediate_p): Likewise.
+       (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
+       rather than an rtx.
+       (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare.
+       (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback.
+       (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare.
+       (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float)
+       (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare.
+       (aarch64_regmode_natural_size): Likewise.
+       * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro.
+       (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift
+       left one place.
+       (AARCH64_ISA_SVE, TARGET_SVE): New macros.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries
+       for VG and the SVE predicate registers.
+       (V_ALIASES): Add a "z"-prefixed alias.
+       (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1.
+       (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros.
+       (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise.
+       (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes.
+       (REG_CLASS_NAMES): Add entries for them.
+       (REG_CLASS_CONTENTS): Likewise.  Update ALL_REGS to include VG
+       and the predicate registers.
+       (aarch64_sve_vg): Declare.
+       (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED)
+       (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros.
+       (REGMODE_NATURAL_SIZE): Define.
+       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
+       SVE macros.
+       * config/aarch64/aarch64.c: Include cfgrtl.h.
+       (simd_immediate_info): Add a constructor for series vectors,
+       and an associated step field.
+       (aarch64_sve_vg): New variable.
+       (aarch64_dbx_register_number): Handle VG and the predicate registers.
+       (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete.
+       (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE)
+       (VEC_ANY_DATA, VEC_STRUCT): New constants.
+       (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p)
+       (aarch64_classify_vector_mode, aarch64_vector_data_mode_p)
+       (aarch64_sve_data_mode_p, aarch64_sve_pred_mode)
+       (aarch64_get_mask_mode): New functions.
+       (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS
+       and FP_LO_REGS.  Handle PR_REGS, PR_LO_REGS and PR_HI_REGS.
+       (aarch64_hard_regno_mode_ok): Handle VG.  Also handle the SVE
+       predicate modes and predicate registers.  Explicitly restrict
+       GPRs to modes of 16 bytes or smaller.  Only allow FP registers
+       to store a vector mode if it is recognized by
+       aarch64_classify_vector_mode.
+       (aarch64_regmode_natural_size): New function.
+       (aarch64_hard_regno_caller_save_mode): Return the original mode
+       for predicates.
+       (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate)
+       (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl)
+       (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate)
+       (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New
+       functions.
+       (aarch64_add_offset): Add a temp2 parameter.  Assert that temp1
+       does not overlap dest if the function is frame-related.  Handle
+       SVE constants.
+       (aarch64_split_add_offset): New function.
+       (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass
+       them aarch64_add_offset.
+       (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter
+       and update call to aarch64_sub_sp.
+       (aarch64_add_cfa_expression): New function.
+       (aarch64_expand_prologue): Pass extra temporary registers to the
+       functions above.  Handle the case in which we need to emit new
+       DW_CFA_expressions for registers that were originally saved
+       relative to the stack pointer, but now have to be expressed
+       relative to the frame pointer.
+       (aarch64_output_mi_thunk): Pass extra temporary registers to the
+       functions above.
+       (aarch64_expand_epilogue): Likewise.  Prevent inheritance of
+       IP0 and IP1 values for SVE frames.
+       (aarch64_expand_vec_series): New function.
+       (aarch64_expand_sve_widened_duplicate): Likewise.
+       (aarch64_expand_sve_const_vector): Likewise.
+       (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter.
+       Handle SVE constants.  Use emit_move_insn to move a force_const_mem
+       into the register, rather than emitting a SET directly.
+       (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move)
+       (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p)
+       (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p)
+       (offset_9bit_signed_scaled_p): New functions.
+       (aarch64_replicate_bitmask_imm): New function.
+       (aarch64_bitmask_imm): Use it.
+       (aarch64_cannot_force_const_mem): Reject expressions involving
+       a CONST_POLY_INT.  Update call to aarch64_classify_symbol.
+       (aarch64_classify_index): Handle SVE indices, by requiring
+       a plain register index with a scale that matches the element size.
+       (aarch64_classify_address): Handle SVE addresses.  Assert that
+       the mode of the address is VOIDmode or an integer mode.
+       Update call to aarch64_classify_symbol.
+       (aarch64_classify_symbolic_expression): Update call to
+       aarch64_classify_symbol.
+       (aarch64_const_vec_all_in_range_p): New function.
+       (aarch64_print_vector_float_operand): Likewise.
+       (aarch64_print_operand): Handle 'N' and 'C'.  Use "zN" rather than
+       "vN" for FP registers with SVE modes.  Handle (const ...) vectors
+       and the FP immediates 1.0 and 0.5.
+       (aarch64_print_address_internal): Handle SVE addresses.
+       (aarch64_print_operand_address): Use ADDR_QUERY_ANY.
+       (aarch64_regno_regclass): Handle predicate registers.
+       (aarch64_secondary_reload): Handle big-endian reloads of SVE
+       data modes.
+       (aarch64_class_max_nregs): Handle SVE modes and predicate registers.
+       (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions.
+       (aarch64_convert_sve_vector_bits): New function.
+       (aarch64_override_options): Use it to handle -msve-vector-bits=.
+       (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
+       rather than an rtx.
+       (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode.
+       Handle SVE vector and predicate modes.  Accept VL-based constants
+       that need only one temporary register, and VL offsets that require
+       no temporary registers.
+       (aarch64_conditional_register_usage): Mark the predicate registers
+       as fixed if SVE isn't available.
+       (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode.
+       Return true for SVE vector and predicate modes.
+       (aarch64_simd_container_mode): Take the number of bits as a poly_int64
+       rather than an unsigned int.  Handle SVE modes.
+       (aarch64_preferred_simd_mode): Update call accordingly.  Handle
+       SVE modes.
+       (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR
+       if SVE is enabled.
+       (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
+       (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
+       (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
+       (aarch64_sve_float_mul_immediate_p): New functions.
+       (aarch64_sve_valid_immediate): New function.
+       (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors.
+       Explicitly reject structure modes.  Check for INDEX constants.
+       Handle PTRUE and PFALSE constants.
+       (aarch64_check_zero_based_sve_index_immediate): New function.
+       (aarch64_simd_imm_zero_p): Delete.
+       (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for
+       vector modes.  Accept constants in the range of CNT[BHWD].
+       (aarch64_simd_scalar_immediate_valid_for_move): Explicitly
+       ask for an Advanced SIMD mode.
+       (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions.
+       (aarch64_simd_vector_alignment): Handle SVE predicates.
+       (aarch64_vectorize_preferred_vector_alignment): New function.
+       (aarch64_simd_vector_alignment_reachable): Use it instead of
+       the vector size.
+       (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p.
+       (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New
+       functions.
+       (MAX_VECT_LEN): Delete.
+       (expand_vec_perm_d): Add a vec_flags field.
+       (emit_unspec2, aarch64_expand_sve_vec_perm): New functions.
+       (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
+       (aarch64_evpc_ext): Don't apply a big-endian lane correction
+       for SVE modes.
+       (aarch64_evpc_rev): Rename to...
+       (aarch64_evpc_rev_local): ...this.  Use a predicated operation for SVE.
+       (aarch64_evpc_rev_global): New function.
+       (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP.
+       (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of
+       MAX_VECT_LEN.
+       (aarch64_evpc_sve_tbl): New function.
+       (aarch64_expand_vec_perm_const_1): Update after rename of
+       aarch64_evpc_rev.  Handle SVE permutes too, trying
+       aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather
+       than aarch64_evpc_tbl.
+       (aarch64_vectorize_vec_perm_const): Initialize vec_flags.
+       (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code)
+       (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int)
+       (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or)
+       (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float)
+       (aarch64_expand_sve_vcond): New functions.
+       (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead
+       of aarch64_vector_mode_p.
+       (aarch64_dwarf_poly_indeterminate_value): New function.
+       (aarch64_compute_pressure_classes): Likewise.
+       (aarch64_can_change_mode_class): Likewise.
+       (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine.
+       (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise.
+       (TARGET_VECTORIZE_GET_MASK_MODE): Likewise.
+       (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise.
+       (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise.
+       (TARGET_CAN_CHANGE_MODE_CLASS): Likewise.
+       * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr)
+       (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New
+       constraints.
+       (Dn, Dl, Dr): Accept const as well as const_vector.
+       (Dz): Likewise.  Compare against CONST0_RTX.
+       * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead
+       of "vector" where appropriate.
+       (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD)
+       (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators.
+       (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT)
+       (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE)
+       (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS)
+       (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs.
+       (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV)
+       (v_int_equiv): Extend to SVE modes.
+       (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New
+       mode attributes.
+       (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators.
+       (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt.
+       (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs.
+       (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP)
+       (SVE_COND_FP_CMP): New int iterators.
+       (perm_hilo): Handle the new unpack unspecs.
+       (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int
+       attributes.
+       * config/aarch64/predicates.md (aarch64_sve_cnt_immediate)
+       (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate)
+       (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand)
+       (aarch64_equality_operator, aarch64_constant_vector_operand)
+       (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates.
+       (aarch64_sve_nonimmediate_operand): Likewise.
+       (aarch64_sve_general_operand): Likewise.
+       (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise.
+       (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate)
+       (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise.
+       (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise.
+       (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise.
+       (aarch64_sve_float_arith_immediate): Likewise.
+       (aarch64_sve_float_arith_with_sub_immediate): Likewise.
+       (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise.
+       (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise.
+       (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise.
+       (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise.
+       (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise.
+       (aarch64_sve_float_arith_operand): Likewise.
+       (aarch64_sve_float_arith_with_sub_operand): Likewise.
+       (aarch64_sve_float_mul_operand): Likewise.
+       (aarch64_sve_vec_perm_operand): Likewise.
+       (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate.
+       (aarch64_mov_operand): Accept const_poly_int and const_vector.
+       (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const
+       as well as const_vector.
+       (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier
+       in file.  Use CONST0_RTX and CONSTM1_RTX.
+       (aarch64_simd_or_scalar_imm_zero): Likewise.  Add match_codes.
+       (aarch64_simd_reg_or_zero): Accept const as well as const_vector.
+       Use aarch64_simd_imm_zero.
+       * config/aarch64/aarch64-sve.md: New file.
+       * config/aarch64/aarch64.md: Include it.
+       (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers.
+       (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE)
+       (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI)
+       (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK)
+       (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants.
+       (sve): New attribute.
+       (enabled): Disable instructions with the sve attribute unless
+       TARGET_SVE.
+       (movqi, movhi): Pass CONST_POLY_INT operaneds through
+       aarch64_expand_mov_immediate.
+       (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle
+       CNT[BHSD] immediates.
+       (movti): Split CONST_POLY_INT moves into two halves.
+       (add<mode>3): Accept aarch64_pluslong_or_poly_operand.
+       Split additions that need a temporary here if the destination
+       is the stack pointer.
+       (*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates.
+       (*add<mode>3_poly_1): New instruction.
+       (set_clobber_cc): New expander.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+       * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes
+       parameter and use it instead of GET_MODE_SIZE (innermode).  Use
+       inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode).
+       Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of
+       GET_MODE_NUNITS (innermode).  Also add a first_elem parameter.
+       Change innermode from fixed_mode_size to machine_mode.
+       (simplify_subreg): Update call accordingly.  Handle a constant-sized
+       subreg of a variable-length CONST_VECTOR.
+ 2018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function.
+       (add_offset_to_base): New function, split out from...
+       (create_mem_ref): ...here.  When handling a scale other than 1,
+       check first whether the address is valid without the offset.
+       Add it into the base if so, leaving the index and scale as-is.
+ 2018-01-12  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/83778
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call
+       fold_for_warn before checking if arg2 is INTEGER_CST.
+ 2018-01-12  Segher Boessenkool  <segher@kernel.crashing.org>
+       * config/rs6000/predicates.md (load_multiple_operation): Delete.
+       (store_multiple_operation): Delete.
+       * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING.
+       * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete.
+       * config/rs6000/rs6000-string.c (expand_block_move): Delete everything
+       guarded by TARGET_STRING.
+       (rs6000_output_load_multiple): Delete.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
+       OPTION_MASK_STRING / TARGET_STRING handling.
+       (print_operand) <'N', 'O'>: Add comment that these are unused now.
+       (const rs6000_opt_masks) <"string">: Change mask to 0.
+       * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING.
+       (MASK_STRING): Delete.
+       * config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING
+       parts.  Simplify.
+       (load_multiple): Delete.
+       (*ldmsi8): Delete.
+       (*ldmsi7): Delete.
+       (*ldmsi6): Delete.
+       (*ldmsi5): Delete.
+       (*ldmsi4): Delete.
+       (*ldmsi3): Delete.
+       (store_multiple): Delete.
+       (*stmsi8): Delete.
+       (*stmsi7): Delete.
+       (*stmsi6): Delete.
+       (*stmsi5): Delete.
+       (*stmsi4): Delete.
+       (*stmsi3): Delete.
+       (movmemsi_8reg): Delete.
+       (corresponding unnamed define_insn): Delete.
+       (movmemsi_6reg): Delete.
+       (corresponding unnamed define_insn): Delete.
+       (movmemsi_4reg): Delete.
+       (corresponding unnamed define_insn): Delete.
+       (movmemsi_2reg): Delete.
+       (corresponding unnamed define_insn): Delete.
+       (movmemsi_1reg): Delete.
+       (corresponding unnamed define_insn): Delete.
+       * config/rs6000/rs6000.opt (mno-string): New.
+       (mstring): Replace by deprecation warning stub.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring.
+ 2018-01-12  Jakub Jelinek  <jakub@redhat.com>
+       * regrename.c (regrename_do_replace): If replacing the same
+       reg multiple times, try to reuse last created gen_raw_REG.
+       PR debug/81155
+       * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition
+       main to workaround a bug in GDB.
+ 2018-01-12  Tom de Vries  <tom@codesourcery.com>
+       PR target/83737
+       * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap.
+ 2018-01-12  Vladimir Makarov  <vmakarov@redhat.com>
+       PR rtl-optimization/80481
+       * ira-color.c (get_cap_member): New function.
+       (allocnos_conflict_by_live_ranges_p): Use it.
+       (slot_coalesced_allocno_live_ranges_intersect_p): Add assert.
+       (setup_slot_coalesced_allocno_live_ranges): Ditto.
+ 2018-01-12  Uros Bizjak  <ubizjak@gmail.com>
+       PR target/83628
+       * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
+       (*saddl_se_1): Ditto.
+       (*ssubsi_1): Ditto.
+       (*ssubl_se_1): Ditto.
+ 2018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest
+       rather than wi::to_widest for DR_INITs.
+       * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use
+       wi::to_poly_offset rather than wi::to_offset for DR_INIT.
+       (vect_analyze_data_ref_accesses): Require both DR_INITs to be
+       INTEGER_CSTs.
+       (vect_analyze_group_access_1): Note that here.
+ 2018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle
+       polynomial type sizes.
+ 2018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
+       * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a
+       poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size.
+       (gimple_add_tmp_var): Likewise.
+ 2018-01-12  Martin Liska  <mliska@suse.cz>
+       * gimple.c (gimple_alloc_counts): Use uint64_t instead of int.
+       (gimple_alloc_sizes): Likewise.
+       (dump_gimple_statistics): Use PRIu64 in printf format.
+       * gimple.h: Change uint64_t to int.
+ 2018-01-12  Martin Liska  <mliska@suse.cz>
+       * tree-core.h: Use uint64_t instead of int.
+       * tree.c (tree_node_counts): Likewise.
+       (tree_node_sizes): Likewise.
+       (dump_tree_statistics): Use PRIu64 in printf format.
+ 2018-01-12  Martin Liska  <mliska@suse.cz>
+       * Makefile.in: As qsort_chk is implemented in vec.c, add
+       vec.o to linkage of gencfn-macros.
+       * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's
+       passing the info to record_node_allocation_statistics.
+       (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration
+       and pass the info.
+       * ggc-common.c (struct ggc_usage): Add operator== and use
+       it in operator< and compare function.
+       * mem-stats.h (struct mem_usage): Likewise.
+       * vec.c (struct vec_usage): Remove operator< and compare
+       function. Can be simply inherited.
+ 2018-01-12  Martin Jambor  <mjambor@suse.cz>
+       PR target/81616
+       * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS.
+       * tree-ssa-math-opts.c: Include domwalk.h.
+       (convert_mult_to_fma_1): New function.
+       (fma_transformation_info): New type.
+       (fma_deferring_state): Likewise.
+       (cancel_fma_deferring): New function.
+       (result_of_phi): Likewise.
+       (last_fma_candidate_feeds_initial_phi): Likewise.
+       (convert_mult_to_fma): Added deferring logic, split actual
+       transformation to convert_mult_to_fma_1.
+       (math_opts_dom_walker): New type.
+       (math_opts_dom_walker::after_dom_children): New method, body moved
+       here from pass_optimize_widening_mul::execute, added deferring logic
+       bits.
+       (pass_optimize_widening_mul::execute): Moved most of code to
+       math_opts_dom_walker::after_dom_children.
+       * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New.
+       * config/i386/i386.c (ix86_option_override_internal): Added
+       maybe_setting of PARAM_AVOID_FMA_MAX_BITS.
+ 2018-01-12  Richard Biener  <rguenther@suse.de>
+       PR debug/83157
+       * dwarf2out.c (gen_variable_die): Do not reset old_die for
+       inline instance vars.
+ 2018-01-12  Oleg Endo  <olegendo@gcc.gnu.org>
+       PR target/81819
+       * config/rx/rx.c (rx_is_restricted_memory_address):
+       Handle SUBREG case.
+ 2018-01-12  Richard Biener  <rguenther@suse.de>
+       PR tree-optimization/80846
+       * target.def (split_reduction): New target hook.
+       * targhooks.c (default_split_reduction): New function.
+       * targhooks.h (default_split_reduction): Declare.
+       * tree-vect-loop.c (vect_create_epilog_for_reduction): If the
+       target requests first reduce vectors by combining low and high
+       parts.
+       * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust.
+       (get_vectype_for_scalar_type_and_size): Export.
+       * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare.
+       * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document.
+       * doc/tm.texi: Regenerate.
+       * config/i386/i386.c (ix86_split_reduction): Implement
+       TARGET_VECTORIZE_SPLIT_REDUCTION.
+ 2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
+       PR target/83368
+       * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM
+       in PIC mode except for TARGET_VXWORKS_RTP.
+       * config/sparc/sparc.c: Include cfgrtl.h.
+       (TARGET_INIT_PIC_REG): Define.
+       (TARGET_USE_PSEUDO_PIC_REG): Likewise.
+       (sparc_pic_register_p): New predicate.
+       (sparc_legitimate_address_p): Use it.
+       (sparc_legitimize_pic_address): Likewise.
+       (sparc_delegitimize_address): Likewise.
+       (sparc_mode_dependent_address_p): Likewise.
+       (gen_load_pcrel_sym): Remove 4th parameter.
+       (load_got_register): Adjust call to above.  Remove obsolete stuff.
+       (sparc_expand_prologue): Do not call load_got_register here.
+       (sparc_flat_expand_prologue): Likewise.
+       (sparc_output_mi_thunk): Set the pic_offset_table_rtx object.
+       (sparc_use_pseudo_pic_reg): New function.
+       (sparc_init_pic_reg): Likewise.
+       * config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
+       (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP.
+ 2018-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
+       * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
+       Add item for branch_cost.
+ 2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
+       PR rtl-optimization/83565
+       * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
+       not extend the result to a larger mode for rotate operations.
+       (num_sign_bit_copies1): Likewise.
+ 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+       PR target/40411
+       * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or
+       -symbolic.
+       Use values-Xc.o for -pedantic.
+       Link with values-xpg4.o for C90, values-xpg6.o otherwise.
+ 2018-01-12  Martin Liska  <mliska@suse.cz>
+       PR ipa/83054
+       * ipa-devirt.c (final_warning_record::grow_type_warnings):
+       New function.
+       (possible_polymorphic_call_targets): Use it.
+       (ipa_devirt): Likewise.
  
- 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
-       * doc/invoke.texi (Code Gen Options): Move section up in file,
-       before target-specific options.  Update menu and option summary
-       to reflect the new section ordering.
+ 2018-01-12  Martin Liska  <mliska@suse.cz>
  
- 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
+       * profile-count.h (enum profile_quality): Use 0 as invalid
+       enum value of profile_quality.
  
-       * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
-       (C++ Dialect Options): Add cross-reference to -std option.
-       * doc/standards.texi (C++ Language): Document C++14 support.
+ 2018-01-12  Chung-Ju Wu  <jasonwucj@gmail.com>
  
- 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and
+       -mext-string options.
  
-       * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
-       for pack/unpack functions for __ibm128.
-       (PACK_IF): Likewise.
-       (UNPACK_IF): Likewise.
+ 2018-01-12  Richard Biener  <rguenther@suse.de>
  
-       * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
-       support for __ibm128 pack/unpack functions.
-       (rs6000_invalid_builtin): Likewise.
-       (rs6000_init_builtins): Likewise.
-       (rs6000_opt_masks): Likewise.
-       * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
-       (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
-       functions
-       (RS6000_BTM_COMMON): Likewise.
-       * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
-       (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
-       disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
-       128-bit floating point.  Add support for the double values to be
-       in Altivec registers for TF/IF packing and unpacking, but restrict
-       TD packing sub-fields to be FPR registers.  Don't allow overlapped
-       register support for packing.  Allow pack inputs to be memory
-       locations.  Don't build generator functions for unpack<mode>_dm
-       and unpack<mode>_nodm.
-       (unpack<mode>_dm): Likewise.
-       (unpack<mode>_nodm): Likewise.
-       (pack<mode>): Likewise.
-       * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
-       built-in functions to pack/unpack explicit __ibm128 values.
-       (__builtin_unpack_ibm128): Likewise.
-       * doc/extend.texi (PowerPC Built-in Functions): Document
-       __builtin_pack_ibm128 and __builtin_unpack_ibm128.
- 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
-       PR c/66208
-       * c-common.c (check_function_nonnull): Remove unnecessary declaration.
-       Add new arg loc and pass it down as context.
-       (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
-       to the location to use for the warning.
-       (check_function_arguments): New arg loc.  All callers changed.  Pass
-       it to check_function_nonnull.
-       * c-common.h (check_function_arguments): Adjust declaration.
- 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
-       PR tree-optimization/69156
-       * gimple.c (validate_type): Removed.
-       (gimple_builtin_call_types_compatible_p): Use
-       useless_type_conversion_p instead of validate_type.
-       * value-prof.c (gimple_stringop_fixed_value): Fold
-       icall_size to correct type.
- 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
-       * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
-       effects.
- 2016-01-13  Richard Henderson  <rth@redhat.com>
-       PR tree-opt/68964
-       * target.def (builtin_tm_load, builtin_tm_store): Remove.
-       * config/i386/i386.c (ix86_builtin_tm_load): Remove.
-       (ix86_builtin_tm_store): Remove.
-       (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
-       (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
-       * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
-       (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
-       * doc/tm.texi: Rebuild.
-       * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
-       (BUILT_IN_TM_MEMCPY_RTWN): New.
-       * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
-       fallback from vector to integer helpers.
-       (build_tm_load): Handle vector types directly, instead of
-       via target hook.
-       (build_tm_store): Likewise.
-       (expand_assign_tm): Prepare for register types not handled by
-       the above.  Copy them to memory and use memcpy.
-       * tree.c (tm_define_builtin): New.
-       (find_tm_vector_type): New.
-       (build_tm_vector_builtins): New.
-       (build_common_builtin_nodes): Call it.
- 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
-       * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
-       TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
- 2016-01-13  Tom de Vries  <tom@codesourcery.com>
-       PR tree-optimization/69169
-       * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
-       handled_struct_type param.
-       (create_variable_info_for, intra_create_variable_infos): Call
-       create_variable_info_for_1 with extra arg.
- 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
-       * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
-       and "armv8.1-a+crc" entries.
- 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
-       PR target/69228
-       * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
-       Change first operand predicate from register_or_constm1_operand
-       to register_operand.
-       (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
-       (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
-       (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
-       (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
-       (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
-       (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
-       (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
-       * config/i386/i386.c (ix86_expand_builtin): Remove first operand
-       comparison with constm1_rtx from vec_prefetch_gen part.
- 2016-01-13  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69013
-       * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
-       Exchange assert for a test.
- 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-       PR target/69247
-       * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
- 2016-01-13  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69242
-       * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
-       assert with a check.
- 2016-01-13  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69186
-       * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
-       Properly guard vect_update_misalignment_for_peel call.
- 2016-01-12  Jeff Law  <law@redhat.com>
-       PR tree-optimization/pr67755
-       * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
-       "need_profile_correction".
-       (thread_block_1): Initialize new field to false by default.  If we
-       have multiple thread paths through a common joiner to different
-       final targets, then set new field to true.
-       (compute_path_counts): Only do count adjustment when it's really
-       needed.
+       * lto-streamer-out.c (DFS::DFS_write_tree_body): Process
+       DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P.
+       * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
+       Likewise.
+       * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
  
- 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
  
-       * doc/invoke.texi (Spec Files): Move section down in file, past
-       all command-line option descriptions.
+       * configure.ac (--with-long-double-format): Add support for the
+       configuration option to change the default long double format on
+       PowerPC systems.
+       * config.gcc (powerpc*-linux*-*): Likewise.
+       * configure: Regenerate.
+       * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long
+       double is IEEE, define __KC__ and __KF__ to allow floatn.h to be
+       used without modification.
  
- 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+ 2018-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
  
-       PR middle-end/54809
-       * doc/gty.texi: Remove documentation of mark_hook.
-       * gengtype.c (struct write_types_data): Remove code to support
-       mark_hook attribute.
-       (walk_type): Likewise.
-       (write_func_for_structure): Likewise.
+       * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define.
+       (SPEC_BARRIER): New instantiation of BU_P7_MISC_X.
+       * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle
+       MISC_BUILTIN_SPEC_BARRIER.
+       (rs6000_init_builtins): Likewise.
+       * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV
+       enum value.
+       (speculation_barrier): New define_insn.
+       * doc/extend.texi: Document __builtin_speculation_barrier.
  
- 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-11  Jakub Jelinek  <jakub@redhat.com>
  
-       * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
-       Directory Options, and -specs= to Overall Options.
-       (Overall Options): Adjust similarly.  Reorder to group related
-       options together.  Make -specs= cross-reference the spec file details.
-       (Directory Options): Adjust similarly.
+       PR target/83203
+       * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var
+       is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0.
+       * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode
+       iterators.
+       (ssescalarmodesuffix): Add 512-bit vectors.  Use "d" or "q" for
+       integral modes instead of "ss" and "sd".
+       (vec_set<mode>_0): New define_insns for 256-bit and 512-bit
+       vectors with 32-bit and 64-bit elements.
+       (vecdupssescalarmodesuffix): New mode attribute.
+       (vec_dup<mode>): Use it.
+ 2018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/83330
+       * config/i386/i386.c (ix86_compute_frame_layout): Align stack
+       frame if argument is passed on stack.
+ 2018-01-11  Jakub Jelinek  <jakub@redhat.com>
+       PR target/82682
+       * ree.c (combine_reaching_defs): Optimize also
+       reg2=exp; reg1=reg2; reg2=any_extend(reg1); into
+       reg2=any_extend(exp); reg1=reg2;, formatting fix.
+ 2018-01-11  Jan Hubicka  <hubicka@ucw.cz>
+       PR middle-end/83189
+       * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update.
+ 2018-01-11  Jan Hubicka  <hubicka@ucw.cz>
+       PR middle-end/83718
+       * tree-inline.c (copy_cfg_body): Adjust num&den for scaling
+       after they are computed.
+ 2018-01-11  Bin Cheng  <bin.cheng@arm.com>
+       PR tree-optimization/83695
+       * gimple-loop-linterchange.cc
+       (tree_loop_interchange::interchange_loops): Call scev_reset_htab to
+       reset cached scev information after interchange.
+       (pass_linterchange::execute): Remove call to scev_reset_htab.
+ 2018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32,
+       vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32,
+       vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32,
+       vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32,
+       vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32,
+       vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define.
+       * config/arm/arm_neon_builtins.def (vfmal_lane_low,
+       vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high,
+       vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low,
+       vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high,
+       vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins.
+       * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes.
+       (V_lane_reg): Likewise.
+       * config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>):
+       New define_expand.
+       (neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise.
+       (vfmal_lane_low<mode>_intrinsic,
+       vfmal_lane_low<vfmlsel2><mode>_intrinsic,
+       vfmal_lane_high<vfmlsel2><mode>_intrinsic,
+       vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic,
+       vfmsl_lane_low<vfmlsel2><mode>_intrinsic,
+       vfmsl_lane_high<vfmlsel2><mode>_intrinsic,
+       vfmsl_lane_high<mode>_intrinsic): New define_insns.
+ 2018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       * config/arm/arm-cpus.in (fp16fml): New feature.
+       (ALL_SIMD): Add fp16fml.
+       (armv8.2-a): Add fp16fml as an option.
+       (armv8.3-a): Likewise.
+       (armv8.4-a): Add fp16fml as part of fp16.
+       * config/arm/arm.h (TARGET_FP16FML): Define.
+       * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML
+       when appropriate.
+       * config/arm/arm-modes.def (V2HF): Define.
+       * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
+       vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32,
+       vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define.
+       * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high,
+       vfmsl_low, vfmsl_high): New set of builtins.
+       * config/arm/iterators.md (PLUSMINUS): New code iterator.
+       (vfml_op): New code attribute.
+       (VFMLHALVES): New int iterator.
+       (VFML, VFMLSEL): New mode attributes.
+       (V_reg): Define mapping for V2HF.
+       (V_hi, V_lo): New mode attributes.
+       (VF_constraint): Likewise.
+       (vfml_half, vfml_half_selector): New int attributes.
+       * config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New
+       define_expand.
+       (vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic,
+       vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic):
+       New define_insn.
+       * config/arm/t-arm-elf (v8_fps): Add fp16fml.
+       * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml.
+       * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs.
+       * doc/invoke.texi (ARM Options): Document fp16fml.  Update armv8.4-a
+       documentation.
+       * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon):
+       Document new effective target and option set.
  
- 2016-01-12  Jeff Law  <law@redhat.com>
+ 2018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
+       * config/arm/arm-cpus.in (armv8_4): New feature.
+       (ARMv8_4a): New fgroup.
+       (armv8.4-a): New arch.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a.
+       * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a.
+       * config/arm/t-multilib (v8_4_a_simd_variants): New variable.
+       Add matching rules for -march=armv8.4-a and extensions.
+       * doc/invoke.texi (ARM Options): Document -march=armv8.4-a.
  
- 2016-01-12  Olivier Hainque  <hainque@adacore.com>
+ 2018-01-11  Oleg Endo  <olegendo@gcc.gnu.org>
  
-       * gcc.c (spec_undefvar_allowed): New global.
-       (process_command): Set to true when running for --version or --help,
-       alone or together.
-       (getenv_spec_function): When the variable is not defined, use the
-       variable name as the variable value if we're allowed not to issue
-       a fatal error.
+       PR target/81821
+       * config/rx/rx.md (BW): New mode attribute.
+       (sync_lock_test_and_setsi): Add mode suffix to insn output.
  
- 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
+ 2018-01-11  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/68911
-       * tree-vrp.c (adjust_range_with_scev): Check overflow in range
-       information computed for expression "init + nit * step".
+       PR tree-optimization/83435
+       * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges.
+       * graphite-scop-detection.c (scop_detection::get_sese): Likewise.
+       * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear.
  
- 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
  
-       * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
-       about name of GCC executable.  Remove deleted node from menu.
-       (Directory Options) <-B>: Remove cross-reference to deleted node.
-       (Target Options): Delete section.
+       * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset
+       field.
+       (aarch64_classify_address): Initialize it.  Track polynomial offsets.
+       (aarch64_print_address_internal): Use it to check for a zero offset.
+ 2018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2.
+       * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset):
+       Return a poly_int64 rather than a HOST_WIDE_INT.
+       (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64
+       rather than a HOST_WIDE_INT.
+       * config/aarch64/aarch64.h (aarch64_frame): Protect with
+       HAVE_POLY_INT_H rather than HOST_WIDE_INT.  Change locals_offset,
+       hard_fp_offset, frame_size, initial_adjust, callee_offset and
+       final_offset from HOST_WIDE_INT to poly_int64.
+       * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
+       to_constant when getting the number of units in an Advanced SIMD
+       mode.
+       (aarch64_builtin_vectorized_function): Check for a constant number
+       of units.
+       * config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial
+       GET_MODE_SIZE.
+       (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits
+       attribute instead of GET_MODE_NUNITS.
+       * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
+       (aarch64_class_max_nregs): Use the constant_lowest_bound of the
+       GET_MODE_SIZE for fixed-size registers.
+       (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p.
+       (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index)
+       (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address)
+       (aarch64_legitimize_address_displacement, aarch64_secondary_reload)
+       (aarch64_print_operand, aarch64_print_address_internal)
+       (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost)
+       (aarch64_short_vector_p, aapcs_vfp_sub_candidate)
+       (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp):
+       Handle polynomial GET_MODE_SIZE.
+       (aarch64_hard_regno_caller_save_mode): Likewise.  Return modes
+       wider than SImode without modification.
+       (tls_symbolic_operand_type): Use strip_offset instead of split_const.
+       (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward)
+       (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle
+       passing and returning SVE modes.
+       (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode
+       rather than GEN_INT.
+       (aarch64_emit_probe_stack_range): Take the size as a poly_int64
+       rather than a HOST_WIDE_INT, but call sorry if it isn't constant.
+       (aarch64_allocate_and_probe_stack_space): Likewise.
+       (aarch64_layout_frame): Cope with polynomial offsets.
+       (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the
+       start_offset as a poly_int64 rather than a HOST_WIDE_INT.  Track
+       polynomial offsets.
+       (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p)
+       (aarch64_offset_7bit_signed_scaled_p): Take the offset as a
+       poly_int64 rather than a HOST_WIDE_INT.
+       (aarch64_get_separate_components, aarch64_process_components)
+       (aarch64_expand_prologue, aarch64_expand_epilogue)
+       (aarch64_use_return_insn_p): Handle polynomial frame offsets.
+       (aarch64_anchor_offset): New function, split out from...
+       (aarch64_legitimize_address): ...here.
+       (aarch64_builtin_vectorization_cost): Handle polynomial
+       TYPE_VECTOR_SUBPARTS.
+       (aarch64_simd_check_vect_par_cnst_half): Handle polynomial
+       GET_MODE_NUNITS.
+       (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the
+       number of elements from the PARALLEL rather than the mode.
+       (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE
+       rather than GET_MODE_BITSIZE.
+       (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext)
+       (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip)
+       (aarch64_expand_vec_perm_const_1): Handle polynomial
+       d->perm.length () and d->perm elements.
+       (aarch64_evpc_tbl): Likewise.  Use nelt rather than GET_MODE_NUNITS.
+       Apply to_constant to d->perm elements.
+       (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle
+       polynomial CONST_VECTOR_NUNITS.
+       (aarch64_move_pointer): Take amount as a poly_int64 rather
+       than an int.
+       (aarch64_progress_pointer): Avoid temporary variable.
+       * config/aarch64/aarch64.md (aarch64_<crc_variant>): Use
+       the mode attribute instead of GET_MODE.
+ 2018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that
+       x exists before using it.
+       (aarch64_add_constant_internal): Rename to...
+       (aarch64_add_offset_1): ...this.  Replace regnum with separate
+       src and dest rtxes.  Handle the case in which they're different,
+       including when the offset is zero.  Replace scratchreg with an rtx.
+       Use 2 additions if there is no spare register into which we can
+       move a 16-bit constant.
+       (aarch64_add_constant): Delete.
+       (aarch64_add_offset): Replace reg with separate src and dest
+       rtxes.  Take a poly_int64 offset instead of a HOST_WIDE_INT.
+       Use aarch64_add_offset_1.
+       (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as
+       an rtx rather than an int.  Take the delta as a poly_int64
+       rather than a HOST_WIDE_INT.  Use aarch64_add_offset.
+       (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset.
+       (aarch64_expand_prologue): Update calls to aarch64_sub_sp,
+       aarch64_allocate_and_probe_stack_space and aarch64_add_offset.
+       (aarch64_expand_epilogue): Update calls to aarch64_add_offset
+       and aarch64_add_sp.
+       (aarch64_output_mi_thunk): Use aarch64_add_offset rather than
+       aarch64_add_constant.
  
- 2016-01-12  Christian Bruel  <christian.bruel@st.com>
+ 2018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/69180
-       * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
-       for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
+       * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
+       Use scalar_float_mode.
  
- 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
+ 2018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/69198
-       * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
-       aligned_mem is properly set for AVX512-VL floating point masked
-       stores.
+       * config/aarch64/aarch64-simd.md
+       (aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS.
+       (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise.
+       (aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise.
+       (aarch64_fml<f16mac1>l_lane_highv2sf): Likewise.
+       (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise.
+       (aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise.
+       (aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise.
+       (aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise.
+       (aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise.
+       (aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise.
+ 2018-01-11  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       PR target/83514
+       * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if
+       targ_options->x_arm_arch_string is non NULL.
+ 2018-01-11  Tamar Christina  <tamar.christina@arm.com>
+       * config/aarch64/aarch64.h
+       (AARCH64_FL_FOR_ARCH8_4): Add  AARCH64_FL_DOTPROD.
+ 2018-01-11  Sudakshina Das  <sudi.das@arm.com>
+       PR target/82096
+       * expmed.c (emit_store_flag_force): Swap if const op0
+       and change VOIDmode to mode of op0.
+ 2018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR rtl-optimization/83761
+       * caller-save.c (replace_reg_with_saved_mem): Pass bits rather
+       than bytes to mode_for_size.
+ 2018-01-10  Jan Hubicka  <hubicka@ucw.cz>
+       PR middle-end/83189
+       * gfortran.fortran-torture/compile/pr83189.f90: New testcase.
+       * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero
+       profile.
+ 2018-01-10  Jan Hubicka  <hubicka@ucw.cz>
+       PR middle-end/83575
+       * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition
+       when in layout mode.
+       (cfg_layout_finalize): Do not verify cfg before we are out of layout.
+       * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing
+       partition fixup.
+ 2018-01-10  Michael Collison  <michael.collison@arm.com>
+       * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE.
+       * config/aarch64/aarch64-option-extension.def: Add
+       AARCH64_OPT_EXTENSION of 'fp16fml'.
+       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
+       (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true.
+       * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate.
+       * config/aarch64/constraints.md (Ui7): New constraint.
+       * config/aarch64/iterators.md (VFMLA_W): New mode iterator.
+       (VFMLA_SEL_W): Ditto.
+       (f16quad): Ditto.
+       (f16mac1): Ditto.
+       (VFMLA16_LOW): New int iterator.
+       (VFMLA16_HIGH): Ditto.
+       (UNSPEC_FMLAL): New unspec.
+       (UNSPEC_FMLSL): Ditto.
+       (UNSPEC_FMLAL2): Ditto.
+       (UNSPEC_FMLSL2): Ditto.
+       (f16mac): New code attribute.
+       * config/aarch64/aarch64-simd-builtins.def
+       (aarch64_fmlal_lowv2sf): Ditto.
+       (aarch64_fmlsl_lowv2sf): Ditto.
+       (aarch64_fmlalq_lowv4sf): Ditto.
+       (aarch64_fmlslq_lowv4sf): Ditto.
+       (aarch64_fmlal_highv2sf): Ditto.
+       (aarch64_fmlsl_highv2sf): Ditto.
+       (aarch64_fmlalq_highv4sf): Ditto.
+       (aarch64_fmlslq_highv4sf): Ditto.
+       (aarch64_fmlal_lane_lowv2sf): Ditto.
+       (aarch64_fmlsl_lane_lowv2sf): Ditto.
+       (aarch64_fmlal_laneq_lowv2sf): Ditto.
+       (aarch64_fmlsl_laneq_lowv2sf): Ditto.
+       (aarch64_fmlalq_lane_lowv4sf): Ditto.
+       (aarch64_fmlsl_lane_lowv4sf): Ditto.
+       (aarch64_fmlalq_laneq_lowv4sf): Ditto.
+       (aarch64_fmlsl_laneq_lowv4sf): Ditto.
+       (aarch64_fmlal_lane_highv2sf): Ditto.
+       (aarch64_fmlsl_lane_highv2sf): Ditto.
+       (aarch64_fmlal_laneq_highv2sf): Ditto.
+       (aarch64_fmlsl_laneq_highv2sf): Ditto.
+       (aarch64_fmlalq_lane_highv4sf): Ditto.
+       (aarch64_fmlsl_lane_highv4sf): Ditto.
+       (aarch64_fmlalq_laneq_highv4sf): Ditto.
+       (aarch64_fmlsl_laneq_highv4sf): Ditto.
+       * config/aarch64/aarch64-simd.md:
+       (aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern.
+       (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
+       (aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto.
+       (aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
+       (aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto.
+       (aarch64_fml<f16mac1>l_lane_highv2sf): Ditto.
+       (aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto.
+       (aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto.
+       (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto.
+       (aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto.
+       (aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto.
+       (aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto.
+       (aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto.
+       (aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto.
+       (aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto.
+       (aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto.
+       (aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto.
+       (aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto.
+       (aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto.
+       (aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto.
+       * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic.
+       (vfmlsl_low_u32): Ditto.
+       (vfmlalq_low_u32): Ditto.
+       (vfmlslq_low_u32): Ditto.
+       (vfmlal_high_u32): Ditto.
+       (vfmlsl_high_u32): Ditto.
+       (vfmlalq_high_u32): Ditto.
+       (vfmlslq_high_u32): Ditto.
+       (vfmlal_lane_low_u32): Ditto.
+       (vfmlsl_lane_low_u32): Ditto.
+       (vfmlal_laneq_low_u32): Ditto.
+       (vfmlsl_laneq_low_u32): Ditto.
+       (vfmlalq_lane_low_u32): Ditto.
+       (vfmlslq_lane_low_u32): Ditto.
+       (vfmlalq_laneq_low_u32): Ditto.
+       (vfmlslq_laneq_low_u32): Ditto.
+       (vfmlal_lane_high_u32): Ditto.
+       (vfmlsl_lane_high_u32): Ditto.
+       (vfmlal_laneq_high_u32): Ditto.
+       (vfmlsl_laneq_high_u32): Ditto.
+       (vfmlalq_lane_high_u32): Ditto.
+       (vfmlslq_lane_high_u32): Ditto.
+       (vfmlalq_laneq_high_u32): Ditto.
+       (vfmlslq_laneq_high_u32): Ditto.
+       * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag.
+       (AARCH64_FL_FOR_ARCH8_4): New.
+       (AARCH64_ISA_F16FML): New ISA flag.
+       (TARGET_F16FML): New feature flag for fp16fml.
+       (doc/invoke.texi): Document new fp16fml option.
+ 2018-01-10  Michael Collison  <michael.collison@arm.com>
+       * config/aarch64/aarch64-builtins.c:
+       (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New.
+       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
+       (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true.
+       * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags.
+       (AARCH64_ISA_SHA3): New ISA flag.
+       (TARGET_SHA3): New feature flag for sha3.
+       * config/aarch64/iterators.md (sha512_op): New int attribute.
+       (CRYPTO_SHA512): New int iterator.
+       (UNSPEC_SHA512H): New unspec.
+       (UNSPEC_SHA512H2): Ditto.
+       (UNSPEC_SHA512SU0): Ditto.
+       (UNSPEC_SHA512SU1): Ditto.
+       * config/aarch64/aarch64-simd-builtins.def
+       (aarch64_crypto_sha512hqv2di): New builtin.
+       (aarch64_crypto_sha512h2qv2di): Ditto.
+       (aarch64_crypto_sha512su0qv2di): Ditto.
+       (aarch64_crypto_sha512su1qv2di): Ditto.
+       (aarch64_eor3qv8hi): Ditto.
+       (aarch64_rax1qv2di): Ditto.
+       (aarch64_xarqv2di): Ditto.
+       (aarch64_bcaxqv8hi): Ditto.
+       * config/aarch64/aarch64-simd.md:
+       (aarch64_crypto_sha512h<sha512_op>qv2di): New pattern.
+       (aarch64_crypto_sha512su0qv2di): Ditto.
+       (aarch64_crypto_sha512su1qv2di): Ditto.
+       (aarch64_eor3qv8hi): Ditto.
+       (aarch64_rax1qv2di): Ditto.
+       (aarch64_xarqv2di): Ditto.
+       (aarch64_bcaxqv8hi): Ditto.
+       * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic.
+       (vsha512h2q_u64): Ditto.
+       (vsha512su0q_u64): Ditto.
+       (vsha512su1q_u64): Ditto.
+       (veor3q_u16): Ditto.
+       (vrax1q_u64): Ditto.
+       (vxarq_u64): Ditto.
+       (vbcaxq_u16): Ditto.
+       * config/arm/types.md (crypto_sha512): New type attribute.
+       (crypto_sha3): Ditto.
+       (doc/invoke.texi): Document new sha3 option.
+ 2018-01-10  Michael Collison  <michael.collison@arm.com>
+       * config/aarch64/aarch64-builtins.c:
+       (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New.
+       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
+       (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true.
+       (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true.
+       * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags.
+       (AARCH64_ISA_SM4): New ISA flag.
+       (TARGET_SM4): New feature flag for sm4.
+       * config/aarch64/aarch64-simd-builtins.def
+       (aarch64_sm3ss1qv4si): Ditto.
+       (aarch64_sm3tt1aq4si): Ditto.
+       (aarch64_sm3tt1bq4si): Ditto.
+       (aarch64_sm3tt2aq4si): Ditto.
+       (aarch64_sm3tt2bq4si): Ditto.
+       (aarch64_sm3partw1qv4si): Ditto.
+       (aarch64_sm3partw2qv4si): Ditto.
+       (aarch64_sm4eqv4si): Ditto.
+       (aarch64_sm4ekeyqv4si): Ditto.
+       * config/aarch64/aarch64-simd.md:
+       (aarch64_sm3ss1qv4si): Ditto.
+       (aarch64_sm3tt<sm3tt_op>qv4si): Ditto.
+       (aarch64_sm3partw<sm3part_op>qv4si): Ditto.
+       (aarch64_sm4eqv4si): Ditto.
+       (aarch64_sm4ekeyqv4si): Ditto.
+       * config/aarch64/iterators.md (sm3tt_op): New int iterator.
+       (sm3part_op): Ditto.
+       (CRYPTO_SM3TT): Ditto.
+       (CRYPTO_SM3PART): Ditto.
+       (UNSPEC_SM3SS1): New unspec.
+       (UNSPEC_SM3TT1A): Ditto.
+       (UNSPEC_SM3TT1B): Ditto.
+       (UNSPEC_SM3TT2A): Ditto.
+       (UNSPEC_SM3TT2B): Ditto.
+       (UNSPEC_SM3PARTW1): Ditto.
+       (UNSPEC_SM3PARTW2): Ditto.
+       (UNSPEC_SM4E): Ditto.
+       (UNSPEC_SM4EKEY): Ditto.
+       * config/aarch64/constraints.md (Ui2): New constraint.
+       * config/aarch64/predicates.md (aarch64_imm2): New predicate.
+       * config/arm/types.md (crypto_sm3): New type attribute.
+       (crypto_sm4): Ditto.
+       * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic.
+       (vsm3tt1aq_u32): Ditto.
+       (vsm3tt1bq_u32): Ditto.
+       (vsm3tt2aq_u32): Ditto.
+       (vsm3tt2bq_u32): Ditto.
+       (vsm3partw1q_u32): Ditto.
+       (vsm3partw2q_u32): Ditto.
+       (vsm4eq_u32): Ditto.
+       (vsm4ekeyq_u32): Ditto.
+       (doc/invoke.texi): Document new sm4 option.
+ 2018-01-10  Michael Collison  <michael.collison@arm.com>
+       * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture.
+       * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag.
+       (AARCH64_FL_FOR_ARCH8_4): New.
+       (AARCH64_FL_V8_4): New flag.
+       (doc/invoke.texi): Document new armv8.4-a option.
+ 2018-01-10  Michael Collison  <michael.collison@arm.com>
+       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
+       (__ARM_FEATURE_AES): Define if TARGET_AES is true.
+       (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true.
+       * config/aarch64/aarch64-option-extension.def: Add
+       AARCH64_OPT_EXTENSION of 'sha2'.
+       (aes): Add AARCH64_OPT_EXTENSION of 'aes'.
+       (crypto): Disable sha2 and aes if crypto disabled.
+       (crypto): Enable aes and sha2 if enabled.
+       (simd): Disable sha2 and aes if simd disabled.
+       * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2):
+       New flags.
+       (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags.
+       (TARGET_SHA2): New feature flag for sha2.
+       (TARGET_AES): New feature flag for aes.
+       * config/aarch64/aarch64-simd.md:
+       (aarch64_crypto_aes<aes_op>v16qi): Make pattern
+       conditional on TARGET_AES.
+       (aarch64_crypto_aes<aesmc_op>v16qi): Ditto.
+       (aarch64_crypto_sha1hsi): Make pattern conditional
+       on TARGET_SHA2.
+       (aarch64_crypto_sha1hv4si): Ditto.
+       (aarch64_be_crypto_sha1hv4si): Ditto.
+       (aarch64_crypto_sha1su1v4si): Ditto.
+       (aarch64_crypto_sha1<sha1_op>v4si): Ditto.
+       (aarch64_crypto_sha1su0v4si): Ditto.
+       (aarch64_crypto_sha256h<sha256_op>v4si): Ditto.
+       (aarch64_crypto_sha256su0v4si): Ditto.
+       (aarch64_crypto_sha256su1v4si): Ditto.
+       (doc/invoke.texi): Document new aes and sha2 options.
+ 2018-01-10  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/83781
+       * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers
+       as string arrays.
+ 2018-01-11  Martin Sebor  <msebor@gmail.com>
+           Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
  
-       PR target/69175
-       * ifcvt.c (cond_exec_process_if_block): When removing the last
-       insn from then_bb, remove also any possible barriers that follow it.
+       PR tree-optimization/83501
+       PR tree-optimization/81703
  
- 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
+       * tree-ssa-strlen.c (get_string_cst): Rename...
+       (get_string_len): ...to this.  Handle global constants.
+       (handle_char_store): Adjust.
  
-       PR target/68456
-       PR target/69226
-       * config/i386/iamcu.h (SIZE_TYPE): New macro.
-       (PTRDIFF_TYPE): Likewise.
-       (WCHAR_TYPE): Likewise.
-       (WCHAR_TYPE_SIZE): Likewise.
-       (STDINT_LONG32): Likewise.
+ 2018-01-10  Kito Cheng  <kito.cheng@gmail.com>
+           Jim Wilson  <jimw@sifive.com>
  
- 2016-01-12  Richard Biener  <rguenther@suse.de>
+       * config/riscv/riscv-protos.h (riscv_output_return): New.
+       * config/riscv/riscv.c (struct machine_function): New naked_p field.
+       (riscv_attribute_table, riscv_output_return),
+       (riscv_handle_fndecl_attribute, riscv_naked_function_p),
+       (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New.
+       (riscv_compute_frame_info): Only compute frame->mask if not a naked
+       function.
+       (riscv_expand_prologue): Add early return for naked function.
+       (riscv_expand_epilogue): Likewise.
+       (riscv_function_ok_for_sibcall): Return false for naked function.
+       (riscv_set_current_function): New.
+       (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS),
+       (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New.
+       * config/riscv/riscv.md (simple_return): Call riscv_output_return.
+       * doc/extend.texi (RISC-V Function Attributes): New.
+ 2018-01-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly
+       check for 128-bit long double before checking TCmode.
+       * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for
+       128-bit long doubles before checking TFmode or TCmode.
+       (FLOAT128_IBM_P): Likewise.
  
-       PR tree-optimization/69053
-       * tree-vect-loop.c (get_initial_def_for_reduction): Properly
-       convert initial value for cond reductions.
+ 2018-01-10  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/83671
+       * builtins.c (c_strlen): Unconditionally return zero for the empty
+       string.
+       Use -Warray-bounds for warnings.
+       * gimple-fold.c (get_range_strlen): Handle non-constant lengths
+       for non-constant array indices with COMPONENT_REF, arrays of
+       arrays, and pointers to arrays.
+       (gimple_fold_builtin_strlen): Determine and set length range for
+       non-constant character arrays.
+ 2018-01-10  Aldy Hernandez  <aldyh@redhat.com>
+       PR middle-end/81897
+       * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip
+       empty blocks.
+ 2018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
+       * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf.
+ 2018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
+       PR target/83399
+       * config/rs6000/rs6000.c (print_operand) <'y'>: Use
+       VECTOR_MEM_ALTIVEC_OR_VSX_P.
+       * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use
+       indexed_or_indirect_operand predicate.
+       (*vsx_le_perm_load_<mode> for VSX_W): Likewise.
+       (*vsx_le_perm_load_v8hi): Likewise.
+       (*vsx_le_perm_load_v16qi): Likewise.
+       (*vsx_le_perm_store_<mode> for VSX_D): Likewise.
+       (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
+       (*vsx_le_perm_store_v8hi): Likewise.
+       (*vsx_le_perm_store_v16qi): Likewise.
+       (eight unnamed splitters): Likewise.
+ 2018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
+       * config/rs6000/x86intrin.h: Change #warning to #error. Update message.
+       * config/rs6000/emmintrin.h: Likewise.
+       * config/rs6000/mmintrin.h: Likewise.
+       * config/rs6000/xmmintrin.h: Likewise.
+ 2018-01-10  David Malcolm  <dmalcolm@redhat.com>
+       PR c++/43486
+       * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of
+       "public_flag".
+       * tree.c (tree_nop_conversion): Return true for location wrapper
+       nodes.
+       (maybe_wrap_with_location): New function.
+       (selftest::check_strip_nops): New function.
+       (selftest::test_location_wrappers): New function.
+       (selftest::tree_c_tests): Call it.
+       * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro.
+       (maybe_wrap_with_location): New decl.
+       (EXPR_LOCATION_WRAPPER_P): New macro.
+       (location_wrapper_p): New inline function.
+       (tree_strip_any_location_wrapper): New inline function.
+ 2018-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+       PR target/83735
+       * config/i386/i386.c (ix86_compute_frame_layout): Always adjust
+       stack_realign_offset for the largest alignment of stack slot
+       actually used.
+       (ix86_find_max_used_stack_alignment): New function.
+       (ix86_finalize_stack_frame_flags): Use it.  Set
+       max_used_stack_alignment if we don't realign stack.
+       * config/i386/i386.h (machine_function): Add
+       max_used_stack_alignment.
  
- 2016-01-12  Richard Biener  <rguenther@suse.de>
+ 2018-01-10  Christophe Lyon  <christophe.lyon@linaro.org>
  
-       PR tree-optimization/69007
-       * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
-       widen_sum after dot_prod and sad.
+       * config/arm/arm.opt (-mbranch-cost): New option.
+       * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into
+       account.
  
- 2016-01-12  Richard Biener  <rguenther@suse.de>
+ 2018-01-10  Segher Boessenkool  <segher@kernel.crashing.org>
  
-       PR tree-optimization/69168
-       * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
-       pattern stmt SLP type.
-       * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
-       end up unused so cope with that case.
+       PR target/83629
+       * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
+       load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
  
- 2016-01-12  Richard Biener  <rguenther@suse.de>
+ 2018-01-10  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/69157
-       * tree-vect-stmts.c (vectorizable_mask_load_store): Check
-       stmts def type only during analyze phase.
-       (vectorizable_call): Likewise.
-       (vectorizable_simd_clone_call): Likewise.
-       (vectorizable_conversion): Likewise.
-       (vectorizable_assignment): Likewise.
-       (vectorizable_shift): Likewise.
-       (vectorizable_operation): Likewise.
-       (vectorizable_store): Likewise.
-       (vectorizable_load): Likewise.
+       PR debug/83765
+       * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration
+       early out so it also covers the case where we have a non-NULL
+       origin.
  
- 2016-01-12  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69174
-       * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
-       space.
-       (vectorizable_load): Properly compute the number of loads needed
-       for permuted strided SLP loads and do not spuriously assign
-       to SLP_TREE_VEC_STMTS.
- 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
-       * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
-       (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
-       (MD_EXEC_PREFIX): Remove.
-       (MD_STARTFILE_PREFIX) Removee.
-       (FILE_NAME_ABSOLUTE_P): Remove.
-       (CPP_SPEC): Do not read macros from sys/version.h.
-       (LINK_COMMAND_SPEC): Remove.
-       (LOCAL_INCLUDE_DIR): Remove.
-       (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
-       (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
-       (POST_LINK_SPEC): Define to invoke stubify after linker
-       (LIBSTDCXX): Remove define
-       (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
-       (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
-       (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
-       (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
-       (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
-       (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
-       (i386_djgpp_asm_named_section): Add propotype of new procedure
-       * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
-       (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
-       (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
-       in config/i386/djgpp.h).
-       (STANDARD_STARTFILE_PREFIX_2): Define identical to
-       STANDARD_STARTFILE_PREFIX_1.
-       (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
-       (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
-       installation errors.
-       (MAX_OFILE_ALIGNMENT): Define to 128.
-       (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
-       * config/i386/djgpp.c: New file. Add implementation of
-       i386_djgpp_asm_named_section.
-       * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
-       * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
-       Add rule for building djgpp.o.
- 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
-       * config/rs6000/rs6000.c (v2df_reduction_p): New function.
-       (rtx_is_swappable_p): Reductions are swappable.
-       (insn_is_swappable_p): V2DF reductions are swappable.
- 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
-       * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
-       reloads for other unsupported memory operands.
- 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
-           Jim Wilson  <jim.wilson@linaro.org>
-       PR target/69194
-       * config/arm/arm-builtins.c (arm_expand_neon_args): Call
-       copy_to_mode_reg instead of force_reg.
- 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
-       PR target/69225
-       * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
-       TARGET_80387 is true.
- 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
-       PR target/69071
-       * lra-eliminations.c (move_plus_up): Only move plus up
-       if subreg of the constant can be simplified into constant
-       and use the simplified subreg of the constant instead of
-       the original constant.
-       * fold-const.c (fold_convertible_p): Don't return true
-       for conversion of VECTOR_TYPE to same sized integral type.
-       (fold_convert_loc): Fix up formatting.  Fold conversion of
-       VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
-       instead of NOP_EXPR.
-       PR tree-optimization/69214
-       * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
-       innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
-       Formatting fix.
-       PR tree-optimization/69207
-       * tree-vect-slp.c (vect_get_constant_vectors): For
-       VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
-       fold_convertible_p to vector_type's element type, and always
-       use VCE for non-VECTOR_BOOLEAN_TYPE_P.
- 2016-01-11  Richard Biener  <rguenther@suse.de>
-       PR tree-optimization/69173
-       * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
-       fixup the cycle if all stmts are in a pattern.
- 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
-       PR middle-end/68999
-       * alias.c (base_alias_check): Move check for addresses with
-       alignment ANDs before the call for compare_base_decls.
-       (memrefs_conflict_p): Return -1 for different decls
-       that went through alignment adjustments.
- 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
-       PR rtl-optimization/68796
-       * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
-       * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
-       and QImode comparisons against zero with CC_NZmode.
-       * config/aarch64/iterators.md (short_mask): New mode_attr.
+ 2018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
+       PR tree-optimization/83753
+       * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS
+       for non-strided grouped accesses if the number of elements is 1.
  
-       * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
-       (<avx512>_store<mode>_mask): Likewise.
+ 2018-01-10  Jan Hubicka  <hubicka@ucw.cz>
  
- 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
-           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+       PR target/81616
+       * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER.
+       * i386.h (TARGET_USE_GATHER): Define.
+       * x86-tune.def (X86_TUNE_USE_GATHER): New.
  
-       PR rtl-optimization/68841
-       * ifcvt.c (struct noce_if_info): Add orig_x field.
-       (bbs_ok_for_cmove_arith): Add to_rename parameter.
-       Don't record conflicts on to_rename if it's present.
-       Allow memory destinations in sets.
-       (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
-       blocks, passing orig_x to the checks.
-       (noce_process_if_block): Set if_info->orig_x appropriately.
+ 2018-01-10  Martin Liska  <mliska@suse.cz>
  
- 2016-01-11  Tom de Vries  <tom@codesourcery.com>
+       PR bootstrap/82831
+       * basic-block.h (CLEANUP_NO_PARTITIONING): New define.
+       * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up
+       partitioning.
+       * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if
+       CLEANUP_NO_PARTITIONING is not set.
  
-       PR tree-optimization/69069
-       * tree-parloops.c (create_parallel_loop): Add missing phi args.
+ 2018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
+       * doc/rtl.texi: Remove documentation of (const ...) wrappers
+       for vectors, as a partial revert of r254296.
+       * rtl.h (const_vec_p): Delete.
+       (const_vec_duplicate_p): Don't test for vector CONSTs.
+       (unwrap_const_vec_duplicate, const_vec_series_p): Likewise.
+       * expmed.c (make_tree): Likewise.
  
-       PR rtl-optimization/68920
-       * config/i386/i386.c (ix86_option_override_internal): Restrict number
-       of conditional moves for  RTL if-conversion to 1 for
-       TARGET_ONE_IF_CONV_INSN.
-       * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
-       * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
-       * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
-       parameter to restirct number of conditional moves for
-       RTL if-conversion.
-       * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
-       * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
-       conditionl moves.
+       Revert:
+       * common.md (E, F): Use CONSTANT_P instead of checking for
+       CONST_VECTOR.
+       * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
+       checking for CONST_VECTOR.
+ 2018-01-09  Jan Hubicka  <hubicka@ucw.cz>
+       PR middle-end/83575
+       * predict.c (force_edge_cold): Handle in more sane way edges
+       with no prediction.
+ 2018-01-09  Carl Love  <cel@us.ibm.com>
+       * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF,
+       V4SI, V4SF types.
+       (p8_vmrgew): Add support for V2DI, V2DF, V4SF types.
+       * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF,
+       VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF,
+       VMRGOW_V2DI, VMRGOW_V2DF.  Remove definition for VMRGOW.
+       * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2,
+       P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW):  Add definitions.
+       * config/rs6000/rs6000-protos.h: Add extern defition for
+       rs6000_generate_float2_double_code.
+       * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add
+       function.
+       * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn.
+       (float2_v2df): Add define_expand.
  
- 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
+ 2018-01-09  Uros Bizjak  <ubizjak@gmail.com>
  
-       PR bootstrap/69123
-       * var-tracking.c (drop_overlapping_mem_locs): Operate on all
-       onepart vars.  Fix typo in comment.  Fix reversed condition in
-       unshare test.
-       (dataflow_set_remove_mem_locs): Operate on all onepart vars.
+       PR target/83628
+       * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
+       op_mode in the force_to_mode call.
  
-       PR bootstrap/69123
-       * var-tracking.c (dump_onepart_variable_differences): New.
-       (dataflow_set_different): If a detailed dump is requested,
-       delay early returns and dump differences between onepart
-       variables present before and after, and added variables.
+ 2018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
+       * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p
+       instead of checking each element individually.
+       (aarch64_evpc_uzp): Likewise.
+       (aarch64_evpc_zip): Likewise.
+       (aarch64_evpc_ext): Likewise.
+       (aarch64_evpc_rev): Likewise.
+       (aarch64_evpc_dup): Test the encoding for a single duplicated element,
+       instead of checking each element individually.  Return true without
+       generating rtl if
+       (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test
+       whether all selected elements come from the same input, instead of
+       checking each element individually.  Remove calls to gen_rtx_REG,
+       start_sequence and end_sequence and instead assert that no rtl is
+       generated.
  
-       PR target/69010
-       * expr.c (expand_expr_real_1): For boolean vector constants
-       with a scalar mode use const_scalar_mask_from_tree.
-       (const_scalar_mask_from_tree): New.
-       * optabs.c (expand_vec_cond_mask_expr): Use mask mode
-       assigned to a mask type to handle constants.
+ 2018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-11  Martin Jambor  <mjambor@suse.cz>
+       * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix
+       order of HIGH and CONST checks.
  
-       PR ipa/69044
-       * ipa-cp.c (estimate_local_effects): Do not clone for removal of
-       useless parameters if we cannot change function signature.
+ 2018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-11  Martin Jambor  <mjambor@suse.cz>
+       * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable
+       if the destination isn't an SSA_NAME.
  
-       PR ipa/66616
-       * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
-       flag.
+ 2018-01-09  Richard Biener  <rguenther@suse.de>
  
- 2016-01-11  Tom de Vries  <tom@codesourcery.com>
+       PR tree-optimization/83668
+       * graphite.c (canonicalize_loop_closed_ssa): Add edge argument,
+       move prologue...
+       (canonicalize_loop_form): ... here, renamed from ...
+       (canonicalize_loop_closed_ssa_form): ... this and amended to
+       swap successor edges for loop exit blocks to make us use
+       the RPO order we need for initial schedule generation.
  
-       PR tree-optimization/69109
-       * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
-       latch with phi.
+ 2018-01-09  Joseph Myers  <joseph@codesourcery.com>
  
- 2016-01-11  Tom de Vries  <tom@codesourcery.com>
+       PR tree-optimization/64811
+       * match.pd: When optimizing comparisons with Inf, avoid
+       introducing or losing exceptions from comparisons with NaN.
  
-       PR tree-optimization/69108
-       * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
-       res is not used in a phi.
+ 2018-01-09  Martin Liska  <mliska@suse.cz>
  
- 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
+       PR sanitizer/82517
+       * asan.c (shadow_mem_size): Add gcc_assert.
  
-       PR 67425
-       * common.opt (frandom-seed): Fix parameter name.
-       * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
+ 2018-01-09  Georg-Johann Lay  <avr@gjlay.de>
  
- 2016-01-11  Tom de Vries  <tom@codesourcery.com>
+       Don't save registers in main().
  
-       PR tree-optimization/69058
-       * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
-       not supported.
+       PR target/83738
+       * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it.
+       * config/avr/avr.opt (-mmain-is-OS_task): New target option.
+       * config/avr/avr.c (avr_set_current_function): Don't error if
+       naked, OS_task or OS_main are specified at the same time.
+       (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task,
+       OS_main.
+       (avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task
+       attribute.
+       * common/config/avr/avr-common.c (avr_option_optimization_table):
+       Switch on -mmain-is-OS_task for optimizing compilations.
  
- 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
+ 2018-01-09  Richard Biener  <rguenther@suse.de>
  
-       * config/arc/arc.opt (mdiv-rem): Add period to the end.
-       (mcode-density): Likewise.
+       PR tree-optimization/83572
+       * graphite.c: Include cfganal.h.
+       (graphite_transform_loops): Connect infinite loops to exit
+       and remove fake edges at the end.
  
- 2016-01-10  Tom de Vries  <tom@codesourcery.com>
+ 2018-01-09  Jan Hubicka  <hubicka@ucw.cz>
  
-       PR tree-optimization/69062
-       * tree-parloops.c (loop_has_phi_with_address_arg): New function.
-       (parallelize_loops): Don't paralelize loop that has phi with address
-       arg.
+       * ipa-inline.c (edge_badness): Revert accidental checkin.
  
- 2016-01-10  Tom de Vries  <tom@codesourcery.com>
+ 2018-01-09  Jan Hubicka  <hubicka@ucw.cz>
  
-       PR tree-optimization/69039
-       * tree-parloops.c (try_create_reduction_list): Only allow single exit
-       phi for reduction.
+       PR ipa/80763
+       * ipa-comdats.c (set_comdat_group): Only set comdat group of real
+       symbols; not inline clones.
  
- 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
+ 2018-01-09  Jakub Jelinek  <jakub@redhat.com>
  
-       PR middle-end/68743
-       * match.pd: Require target has function_c99_misc before doing
-       truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
+       PR target/83507
+       * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move
+       hard registers.  Formatting fixes.
  
- 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
+       PR preprocessor/83722
+       * gcc.c (try_generate_repro): Pass
+       &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than
+       &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to
+       do_report_bug.
  
-       * configure.ac (isl_options_set_schedule_serialize_sccs): Also
-       use GMPINC.
-       * configure: Regenerate.
+ 2018-01-08  Monk Chiang  <sh.chiang04@gmail.com>
+           Kito Cheng  <kito.cheng@gmail.com>
  
- 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
+       * config/riscv/riscv.c (machine_function::is_leaf): Remove field.
+       (riscv_leaf_function_p): Delete.
+       (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
  
-       PR middle-end/50865
-       PR tree-optimization/69097
-       * fold-const.h (expr_not_equal_to): New prototype.
-       * fold-const.c: Include stringpool.h and tree-ssanames.h.
-       (expr_not_equal_to): New function.
-       * match.pd (X % -Y is the same as X % Y): Don't optimize
-       unless X is known not to be equal to minimum or Y is known
-       not to be equal to -1.
-       * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
-       fold TRUNC_MOD_EXPR if the second argument is not a power of two.
-       (simplify_stmt_using_ranges): Adjust caller.
-       (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
-       substitute_and_fold.
+ 2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
  
- 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
+       * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
+       function.
+       (do_ifelse): New function.
+       (do_isel): New function.
+       (do_sub3): New function.
+       (do_add3): New function.
+       (do_load_mask_compare): New function.
+       (do_overlap_load_compare): New function.
+       (expand_compare_loop): New function.
+       (expand_block_compare): Call expand_compare_loop() when appropriate.
+       * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
+       option description.
+       (-mblock-compare-inline-loop-limit): New option.
+ 2018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+       PR target/83677
+       * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
+       Reverse order of second and third operands in first alternative.
+       * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
+       of first and second elements in UNSPEC_VPERMR vector.
+       (altivec_expand_vec_perm_le): Likewise.
  
-       * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
-       w/o DECL_NAME.
+ 2018-01-08  Jeff Law  <law@redhat.com>
  
- 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
+       PR rtl-optimizatin/81308
+       * tree-switch-conversion.c (cfg_altered): New file scoped static.
+       (process_switch): If group_case_labels makes a change, then set
+       cfg_altered.
+       (pass_convert_switch::execute): If a switch is converted, then
+       set cfg_altered.  Return TODO_cfg_cleanup if cfg_altered is true.
  
-       PR tree-optimization/69167
-       * gimple-fold.c (replace_stmt_with_simplification): Also punt if
-       new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
-       ops[0] comparison.
-       * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
+       PR rtl-optimization/81308
+       * recog.c (split_all_insns): Conditionally cleanup the CFG after
+       splitting insns.
  
- 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
-           Richard Biener  <rguenther@suse.de>
+ 2018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
  
-       PR tree-optimization/68707
-       * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
-       instances that can be handled via vect_load_lanes.
+       PR target/83663 - Revert r255946
+       * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
+       generation for cases where splatting a value is not useful.
+       * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
+       across a vec_duplicate and a paradoxical subreg forming a vector
+       mode to a vec_concat.
  
- 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
-       * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
-       if we can't determine address equivalence.
-       * alias.c (compare_base_decl): Update for changed return value of
-       symtab_node::equal_address_to.
+       * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for
+       -march=armv8.3-a variants.
+       * config/arm/t-multilib: Likewise.
+       * config/arm/t-arm-elf: Likewise.  Handle dotprod extension.
  
- 2016-01-08  Jason Merrill  <jason@redhat.com>
+ 2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
  
-       PR c++/68983
-       PR c++/67557
-       * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
-       * expr.c (store_field): Not here.
-       * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
-       call with TREE_ADDRESSABLE type.
-       * tree-cfg.c (verify_gimple_call): Adjust.
+       * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it
+       to generate rtl.
+       (cceq_ior_compare_complement): Give it a name so I can use it, and
+       change boolean_or_operator predicate to boolean_operator so it can
+       be used to generate a crand.
+       (eqne): New code iterator.
+       (bd/bd_neg): New code_attrs.
+       (<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into
+       a single define_insn.
+       (<bd>tf_<mode>): A new insn pattern for the conditional form branch
+       decrement (bdnzt/bdnzf/bdzt/bdzf).
+       * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
+       with the new names of the branch decrement patterns, and added the
+       names of the branch decrement conditional patterns.
  
- 2016-01-08  Olivier Hainque  <hainque@adacore.com>
+ 2018-01-08  Richard Biener  <rguenther@suse.de>
  
-       * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
-       libc_internal.
+       PR tree-optimization/83563
+       * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV
+       cache.
  
- 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
+ 2018-01-08  Richard Biener  <rguenther@suse.de>
  
-       * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
-       (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
-       (reduc_smin_v2sf): Rename to...
-       (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
-       (reduc_splus_v2sf): Rename to...
-       (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
+       PR middle-end/83713
+       * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
  
- 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
+ 2018-01-08  Richard Biener  <rguenther@suse.de>
  
-       PR tree-optimization/69162
-       * gimplify.c (gimplify_va_arg_expr): Encode original type of
-       valist argument in another argument.
-       (gimplify_modify_expr): Adjust for the above change.  Cleanup.
-       * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
-       to determine the va_list type, build a MEM_REF instead of
-       build_fold_indirect_ref.
+       PR tree-optimization/83685
+       * tree-ssa-pre.c (create_expression_by_pieces): Do not insert
+       references to abnormals.
  
-       PR tree-optimization/69172
-       * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
-       gimple_build.
+ 2018-01-08  Richard Biener  <rguenther@suse.de>
  
- 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+       PR lto/83719
+       * dwarf2out.c (output_indirect_strings): Handle empty
+       skeleton_debug_str_hash.
+       (dwarf2out_early_finish): Index strings for -gsplit-dwarf.
  
-       PR tree-optimization/67781
-       * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
-       and cmpnop in two steps: first the ones not accessed in original
-       gimple expression in a endian independent way and then the ones not
-       accessed in the final result in an endian-specific way.
+ 2018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete.
+       (emit_store_direct): Likewise.
+       (arc_trampoline_adjust_address): Likewise.
+       (arc_asm_trampoline_template): New function.
+       (arc_initialize_trampoline): Use asm_trampoline_template.
+       (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define.
+       * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16.
+       * config/arc/arc.md (flush_icache): Delete pattern.
+ 2018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
+       * config/arc/arc-c.def (__ARC_UNALIGNED__): New define.
+       * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using
+       munaligned-access.
+ 2018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       PR target/83681
+       * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard
+       by not USED_FOR_TARGET.
+       (make_pass_resolve_sw_modes): Likewise.
+ 2018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       * config/nios2/nios2.h (nios2_section_threshold): Guard by not
+       USED_FOR_TARGET.
+ 2018-01-08  Richard Biener  <rguenther@suse.de>
+       PR middle-end/83580
+       * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS.
+ 2018-01-08  Richard Biener  <rguenther@suse.de>
+       PR middle-end/83517
+       * match.pd ((t * 2) / 2) -> t): Add missing :c.
+ 2018-01-06  Aldy Hernandez  <aldyh@redhat.com>
+       PR middle-end/81897
+       * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on
+       basic blocks with a small number of successors.
+       (convert_control_dep_chain_into_preds): Improve handling of
+       forwarder blocks.
+       (dump_predicates): Split apart into...
+       (dump_pred_chain): ...here...
+       (dump_pred_info): ...and here.
+       (can_one_predicate_be_invalidated_p): Add debugging printfs.
+       (can_chain_union_be_invalidated_p): Improve check for invalidation
+       of paths.
+       (uninit_uses_cannot_happen): Avoid unnecessary if
+       convert_control_dep_chain_into_preds yielded nothing.
+ 2018-01-06  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/83640
+       * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid
+       subtracting negative offset from size.
+       (builtin_access::overlap): Adjust offset bounds of the access to fall
+       within the size of the object if possible.
+ 2018-01-06  Richard Sandiford  <richard.sandiford@linaro.org>
+       PR rtl-optimization/83699
+       * expmed.c (extract_bit_field_1): Restrict the vector usage of
+       extract_bit_field_as_subreg to cases in which the extracted
+       value is also a vector.
+       * lra-constraints.c (process_alt_operands): Test for the equivalence
+       substitutions when detecting a possible reload cycle.
+ 2018-01-06  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/83480
+       * toplev.c (process_options): Don't enable debug_nonbind_markers_p
+       by default if flag_selective_schedling{,2}.  Formatting fixes.
+       PR rtl-optimization/83682
+       * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE
+       if it has non-VECTOR_MODE element mode.
+       (vec_duplicate_p): Likewise.
+       PR middle-end/83694
+       * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode
+       and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT.
+ 2018-01-05  Jakub Jelinek  <jakub@redhat.com>
+       PR target/83604
+       * config/i386/i386-builtin.def
+       (__builtin_ia32_vgf2p8affineinvqb_v64qi,
+       __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi):
+       Require also OPTION_MASK_ISA_AVX512F in addition to
+       OPTION_MASK_ISA_GFNI.
+       (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask,
+       __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require
+       OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition
+       to OPTION_MASK_ISA_GFNI.
+       (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require
+       OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and
+       OPTION_MASK_ISA_AVX512BW.
+       (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require
+       OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in
+       addition to OPTION_MASK_ISA_GFNI.
+       (__builtin_ia32_vgf2p8affineinvqb_v16qi,
+       __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi):
+       Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition
+       to OPTION_MASK_ISA_GFNI.
+       * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being
+       a requirement for all ISAs rather than any of them with a few
+       exceptions.
+       (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before
+       processing.
+       (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2
+       bitmasks to be enabled with 3 exceptions, instead of requiring any
+       enabled ISA with lots of exceptions.
+       * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
+       vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
+       Change avx512bw in isa attribute to avx512f.
+       * config/i386/sgxintrin.h: Add license boilerplate.
+       * config/i386/vaesintrin.h: Likewise.  Fix macro spelling __AVX512F
+       to __AVX512F__ and __AVX512VL to __AVX512VL__.
+       (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128,
+       _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not
+       defined.
+       * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8,
+       _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable
+       temporarily sse2 rather than sse if not enabled already.
+       PR target/83604
+       * config/i386/sse.md (VI248_VLBW): Rename to ...
+       (VI248_AVX512VL): ... this.  Don't guard V32HI with TARGET_AVX512BW.
+       (vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>,
+       vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz,
+       vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask,
+       vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL
+       mode iterator instead of VI248_VLBW.
+ 2018-01-05  Jan Hubicka  <hubicka@ucw.cz>
+       * ipa-fnsummary.c (record_modified_bb_info): Add OP.
+       (record_modified): Skip clobbers; add debug output.
+       (param_change_prob): Use sreal frequencies.
+ 2018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
+       punt for user-aligned variables.
+ 2018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
+       * tree-chrec.c (chrec_contains_symbols): Return true for
+       POLY_INT_CST.
+ 2018-01-05  Sudakshina Das  <sudi.das@arm.com>
+       PR target/82439
+       * simplify-rtx.c (simplify_relational_operation_1): Add simplifications
+       of (x|y) == x for BICS pattern.
+ 2018-01-05  Jakub Jelinek  <jakub@redhat.com>
+       PR tree-optimization/83605
+       * gimple-ssa-strength-reduction.c: Include tree-eh.h.
+       (find_candidates_dom_walker::before_dom_children): Ignore stmts that
+       can throw.
+ 2018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
+       * config/epiphany/rtems.h: New file.
+ 2018-01-04  Jakub Jelinek  <jakub@redhat.com>
+           Uros Bizjak  <ubizjak@gmail.com>
  
- 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
+       PR target/83554
+       * config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use
+       QIreg_operand instead of register_operand predicate.
+       * config/i386/i386.c (ix86_rop_should_change_byte_p,
+       set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in
+       comments instead of -fmitigate[-_]rop.
  
-       PR tree-optimization/69083
-       * tree-vect-slp.c (vect_get_constant_vectors): For
-       VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
-       element type.  If op is fold_convertible_p to vector_type's element
-       type, use NOP_EXPR instead of VCE.
+ 2018-01-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
- 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
+       PR bootstrap/81926
+       * cgraphunit.c (symbol_table::compile): Switch to text_section
+       before calling assembly_start debug hook.
+       * run-rtl-passes.c (run_rtl_passes): Likewise.
+       Include output.h.
  
-       PR rtl-optimization/67778
-       PR rtl-optimization/68634
-       PR rtl-optimization/68909
-       * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
-       block from the stack until done with it.  Remove a superfluous
-       bitmap set.  Remove a superfluous bitmap test.
+ 2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-07  Martin Sebor  <msebor@redhat.com>
+       * tree-vrp.c (extract_range_from_binary_expr_1): Check
+       range_int_cst_p rather than !symbolic_range_p before calling
+       extract_range_from_multiplicative_op_1.
  
-       PR c/68966
-       * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
-       constraint on the type of arguments.
+ 2018-01-04  Jeff Law  <law@redhat.com>
  
- 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
+       * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove
+       redundant test in assertion.
  
-       * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
-       SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
-       unaligned_access on the gcc_options set.
-       * config/arm/arm.c (arm_option_override_internal): Use
-       SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
+ 2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
+       * doc/rtl.texi: Document machine_mode wrapper classes.
  
-       PR target/69140
-       * config/i386/i386.c (ix86_frame_pointer_required): Enable
-       frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
+ 2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
+       * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before
+       using tree_to_uhwi.
  
-       Revert
-       2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/69140
-       * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
-       depending on frame_pointer_needed before remaining integer and SSE
-       registers are saved.
+       * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow
+       the VEC_PERM_EXPR fold to fail.
  
- 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-04  Jakub Jelinek  <jakub@redhat.com>
  
-       PR 1078
-       * doc/extend.texi (Nvidia PDX Function Attributes): New section.
+       PR debug/83585
+       * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition
+       to switched_sections.
  
- 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+ 2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/69171
-       * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
-       Use the "xBm" constraint.
-       (float<sseintvecmodelower><mode>2<mask_name><round_name):
-       Likewise.
-       (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
-       (sse_cvtsi2ssq<round_name>): Likewise.
-       (sse_cvtss2si<round_name>): Likewise.
-       (sse_cvtss2siq<round_name>): Likewise.
-       (sse2_cvtsi2sdq<round_name>): Likewise.
-       (sse2_cvtsd2si<round_name>): Likewise.
-       (sse2_cvtsd2siq<round_name>): Likewise.
-       * config/i386/subst.md (round_nimm_scalar_predicate): New
-       predicate.
+       PR target/83680
+       * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted
+       test for d.testing.
  
- 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
+ 2018-01-04  Peter Bergner  <bergner@vnet.ibm.com>
  
-       PR middle-end/67639
-       * varasm.c (make_decl_rtl): Mark invalid register vars as
-       DECL_EXTERNAL.
+       PR target/83387
+       * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not
+       allow arguments in FP registers if TARGET_HARD_FLOAT is false.
  
-       PR rtl-optimization/66206
-       * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
-       All callers changed.
+ 2018-01-04  Jakub Jelinek  <jakub@redhat.com>
  
- 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/83666
+       * cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode
+       is BLKmode and bitpos not zero or mode change is needed.
  
-       PR tree-optimization/69141
-       * tree-ssa-pre.c: Include langhooks.h.
-       (eliminate_dom_walker::before_dom_children): Use
-       lang_hooks.decl_printable_name instead of
-       cgraph_node::get ()->name ().
+ 2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR middle-end/68960
-       * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
-       it and DECL_ALIGN too.
+       PR target/83675
+       * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require
+       TARGET_VIS2.
  
- 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
+ 2018-01-04  Uros Bizjak  <ubizjak@gmail.com>
  
-       * config/mips/mips-ftypes.def: Sort to lexicographical order.
+       PR target/83628
+       * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
+       instead of MULT rtx.  Update all corresponding splitters.
+       (*saddl_se): Ditto.
+       (*ssub<modesuffix>): Ditto.
+       (*ssubl_se): Ditto.
+       (*cmp_sadd_di): Update split patterns.
+       (*cmp_sadd_si): Ditto.
+       (*cmp_sadd_sidi): Ditto.
+       (*cmp_ssub_di): Ditto.
+       (*cmp_ssub_si): Ditto.
+       (*cmp_ssub_sidi): Ditto.
+       * config/alpha/predicates.md (const23_operand): New predicate.
+       * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
+       Look for ASHIFT, not MULT inner operand.
+       (alpha_split_conditional_move): Update for *sadd<modesuffix> change.
  
- 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
+ 2018-01-04  Martin Liska  <mliska@suse.cz>
  
-       PR target/69140
-       * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
-       depending on frame_pointer_needed before remaining integer and SSE
-       registers are saved.
+       PR gcov-profile/83669
+       * gcov.c (output_intermediate_file): Add version to intermediate
+       gcov file.
+       * doc/gcov.texi: Document new field 'version' in intermediate
+       file format. Fix location of '-k' option of gcov command.
  
- 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+ 2018-01-04  Martin Liska  <mliska@suse.cz>
  
-       * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
-       mode iterator with VSX_M2.
-       (*p9_vecstore_<mode>): Likewise.
-       (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
-       (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
-       (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
-       (define_split for VSX_LE128 stores): Likewise.
-       (define_peephole2 for TImode LE swaps): Likewise.
-       (define_split for VSX_LE128 post-reload stores): Likewise.
+       PR ipa/82352
+       * ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
  
- 2016-01-06  Marek Polacek  <polacek@redhat.com>
+ 2018-01-04  Jakub Jelinek  <jakub@redhat.com>
  
-       PR sanitizer/69099
-       * convert.c (convert_to_integer_1): Adjust call to
-       ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
-       * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
-       EXPR instead of ARG.
-       * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
+       * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi.
  
- 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-03  Martin Sebor  <msebor@redhat.com>
  
-       PR 1078
-       * doc/extend.texi (RL78 Variable Attributes): New section.
+       PR tree-optimization/83655
+       * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid
+       checking calls with invalid arguments.
  
- 2016-01-05  Marek Polacek  <polacek@redhat.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR c/69104
-       * builtins.c (get_memmodel): Use expansion point location rather than
-       the input location.  Call warning_at rather than warning.
-       (expand_builtin_atomic_compare_exchange): Likewise.
-       (expand_builtin_atomic_load): Likewise.
-       (expand_builtin_atomic_store): Likewise.
-       (expand_builtin_atomic_clear): Likewise.
+       * tree-vect-stmts.c (vect_get_store_rhs): New function.
+       (vectorizable_mask_load_store): Delete.
+       (vectorizable_call): Return false for masked loads and stores.
+       (vectorizable_store): Handle IFN_MASK_STORE.  Use vect_get_store_rhs
+       instead of gimple_assign_rhs1.
+       (vectorizable_load): Handle IFN_MASK_LOAD.
+       (vect_transform_stmt): Don't set is_store for call_vec_info_type.
  
- 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/68991
-       * config/i386/i386.c (ix86_expand_vector_logical_operator):
-       Replace nonimmediate_operand with vector_operand.
-       * config/i386/predicates.md (vector_operand): New predicate.
-       (general_vector_operand): Replace nonimmediate_operand with
-       vector_operand.
-       * config/i386/sse.md: Replace nonimmediate_operand with
-       vector_operand and m constraint with Bm constraint on SSE
-       patterns with 16-byte memory operand.
-       * config/i386/subst.md (round_nimm_predicate): Replace
-       nonimmediate_operand with vector_operand.
-       (round_saeonly_nimm_predicate): Likewise.
-       (round_saeonly_nimm_scalar_predicate): New.
+       * tree-vect-stmts.c (vect_build_gather_load_calls): New function,
+       split out from..,
+       (vectorizable_mask_load_store): ...here.
+       (vectorizable_load): ...and here.
  
- 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR target/68991
-       * config/i386/constraints.md (Bm): New constraint.
-       * config/i386/predicates.md (vector_memory_operand): New
-       predicate.
-       * config/i386/sse.md: Replace xm with xBm in plusminus and
-       any_logic patterns.
+       * tree-vect-stmts.c (vect_build_all_ones_mask)
+       (vect_build_zero_merge_argument): New functions, split out from...
+       (vectorizable_load): ...here.
  
- 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR 1078
-       * doc/extend.texi (V850 Function Attributes): New section.
-       (V850 Variable Attributes): New section.
+       * tree-vect-stmts.c (vect_check_store_rhs): New function,
+       split out from...
+       (vectorizable_mask_load_store): ...here.
+       (vectorizable_store): ...and here.
  
- 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR 1078
-       * doc/extend.texi (MicroBlaze Function Attributes): Document
-       interrupt_handler and fast_interrupt attributes.
+       * tree-vect-stmts.c (vect_check_load_store_mask): New function,
+       split out from...
+       (vectorizable_mask_load_store): ...here.
  
- 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR other/60465
-       * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
-       for local symbolic operands.
-       * config/ia64/predicates.md (local_symbolic_operand64): New
-       predicate.
+       * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c
+       (vect_model_store_cost): Take a vec_load_store_type instead of a
+       vect_def_type.
+       * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h.
+       (vect_model_store_cost): Take a vec_load_store_type instead of a
+       vect_def_type.
+       (vectorizable_mask_load_store): Update accordingly.
+       (vectorizable_store): Likewise.
+       * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly.
  
- 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
-       PR rtl-optimization/68651
-       * combine.c (combine_simplify_rtx): Canonicalize x + x into
-       x << 1.
+       * tree-vect-loop.c (vect_transform_loop): Stub out scalar
+       IFN_MASK_LOAD calls here rather than...
+       * tree-vect-stmts.c (vectorizable_mask_load_store): ...here.
  
- 2016-01-05  Nathan Sidwell  <nathan@acm.org>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
  
-       * alias.c (compare_base_decls): Use symtab_node::get.
+       * expmed.c (extract_bit_field_1): For vector extracts,
+       fall back to extract_bit_field_as_subreg if vec_extract
+       isn't available.
  
- 2016-01-05  Nick Clifton  <nickc@redhat.com>
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
  
-       PR target/68770
-       * ira-costs.c (copy_cost): Initialise the t_icode field of the
-       secondary_reload_info structure.
+       * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether
+       they are variable or constant sized.
+       (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized
+       slots for constant-sized data.
  
-       PR target/66655
-       * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
-       decls if weak support is available.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
  
- 2016-01-04  Martin Sebor  <msebor@redhat.com>
+       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When
+       handling COND_EXPRs with boolean comparisons, try to find a better
+       basis for the mask type than the boolean itself.
  
-       * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
  
- 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
+       * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default
+       is calculated and how it can be overridden.
+       * genmodes.c (max_bitsize_mode_any_mode): New variable.
+       (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE,
+       if defined.
+       (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE,
+       if nonzero.
  
-       * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
-       OPTION_MASK_P9_DFORM.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
  
-       * config/rs6000/constraints.md (wo constraint): New constraint for
-       ISA 3.0 (power9).
+       * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate):
+       Remove the mode argument.
+       (aarch64_simd_valid_immediate): Remove the mode and inverse
+       arguments.
+       * config/aarch64/iterators.md (bitsize): New iterator.
+       * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3)
+       (ior<mode>3): Update calls to aarch64_output_simd_mov_immediate.
+       * config/aarch64/constraints.md (Do, Db, Dn): Update calls to
+       aarch64_simd_valid_immediate.
+       * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise.
+       (aarch64_reg_or_bic_imm): Likewise.
+       * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn
+       with an insn_type enum and msl with a modifier_type enum.
+       Replace element_width with a scalar_mode.  Change the shift
+       to unsigned int.  Add constructors for scalar_float_mode and
+       scalar_int_mode elements.
+       (aarch64_vect_float_const_representable_p): Delete.
+       (aarch64_can_const_movi_rtx_p)
+       (aarch64_simd_scalar_immediate_valid_for_move)
+       (aarch64_simd_make_constant): Update call to
+       aarch64_simd_valid_immediate.
+       (aarch64_advsimd_valid_immediate_hs): New function.
+       (aarch64_advsimd_valid_immediate): Likewise.
+       (aarch64_simd_valid_immediate): Remove mode and inverse
+       arguments.  Rewrite to use the above.  Use const_vec_duplicate_p
+       to detect duplicated constants and use aarch64_float_const_zero_rtx_p
+       and aarch64_float_const_representable_p on the result.
+       (aarch64_output_simd_mov_immediate): Remove mode argument.
+       Update call to aarch64_simd_valid_immediate and use of
+       simd_immediate_info.
+       (aarch64_output_scalar_simd_mov_immediate): Update call
+       accordingly.
  
-       * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
-       for wo constraint.
-       (rs6000_init_hard_regno_mode_ok): Likewise.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION.
+       (mode_nunits): Likewise CONST_MODE_NUNITS.
+       * machmode.def (ADJUST_NUNITS): Document.
+       * genmodes.c (mode_data::need_nunits_adj): New field.
+       (blank_mode): Update accordingly.
+       (adj_nunits): New variable.
+       (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ
+       parameter.
+       (emit_mode_size_inline): Set need_bytesize_adj for all modes
+       listed in adj_nunits.
+       (emit_mode_nunits_inline): Set need_nunits_adj for all modes
+       listed in adj_nunits.  Don't emit case statements for such modes.
+       (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS
+       and CONST_MODE_PRECISION.  Make CONST_MODE_SIZE expand to
+       nothing if adj_nunits is nonnull.
+       (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl.
+       (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit)
+       (emit_mode_fbit): Update use of print_maybe_const_decl.
+       (emit_move_size): Likewise.  Treat the array as non-const
+       if adj_nunits.
+       (emit_mode_adjustments): Handle adj_nunits.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+       * machmode.def (VECTOR_MODES_WITH_PREFIX): Document.
+       * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro.
+       (VECTOR_MODES): Use it.
+       (make_vector_modes): Take the prefix as an argument.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * mode-classes.def (MODE_VECTOR_BOOL): New mode class.
+       * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true
+       for MODE_VECTOR_BOOL.
+       * machmode.def (VECTOR_BOOL_MODE): Document.
+       * genmodes.c (VECTOR_BOOL_MODE): New macro.
+       (make_vector_bool_mode): New function.
+       (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle
+       MODE_VECTOR_BOOL.
+       * lto-streamer-in.c (lto_input_mode_table): Likewise.
+       * rtx-vector-builder.c (rtx_vector_builder::find_cached_value):
+       Likewise.
+       * stor-layout.c (int_mode_for_mode): Likewise.
+       * tree.c (build_vector_type_for_mode): Likewise.
+       * varasm.c (output_constant_pool_2): Likewise.
+       * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and
+       CONSTM1_RTX (BImode) are the same thing.  Initialize const_tiny_rtx
+       for MODE_VECTOR_BOOL.
+       * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list
+       of mode class checks.
+       * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P
+       instead of a list of mode class checks.
+       (expand_vector_scalar_condition): Likewise.
+       (type_for_widest_vector_mode): Handle BImode as an inner mode.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * machmode.h (mode_size): Change from unsigned short to
+       poly_uint16_pod.
+       (mode_to_bytes): Return a poly_uint16 rather than an unsigned short.
+       (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
+       or if measurement_type is not polynomial.
+       (fixed_size_mode::includes_p): Check for constant-sized modes.
+       * genmodes.c (emit_mode_size_inline): Make mode_size_inline
+       return a poly_uint16 rather than an unsigned short.
+       (emit_mode_size): Change the type of mode_size from unsigned short
+       to poly_uint16_pod.  Use ZERO_COEFFS for the initializer.
+       (emit_mode_adjustments): Cope with polynomial vector sizes.
+       * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
+       for GET_MODE_SIZE.
+       * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
+       for GET_MODE_SIZE.
+       * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial.
+       * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise.
+       * caller-save.c (setup_save_areas): Likewise.
+       (replace_reg_with_saved_mem): Likewise.
+       * calls.c (emit_library_call_value_1): Likewise.
+       * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise.
+       * combine.c (simplify_set, make_extraction, simplify_shift_const_1)
+       (gen_lowpart_for_combine): Likewise.
+       * convert.c (convert_to_integer_1): Likewise.
+       * cse.c (equiv_constant, cse_insn): Likewise.
+       * cselib.c (autoinc_split, cselib_hash_rtx): Likewise.
+       (cselib_subst_to_values): Likewise.
+       * dce.c (word_dce_process_block): Likewise.
+       * df-problems.c (df_word_lr_mark_ref): Likewise.
+       * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise.
+       * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor)
+       (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor)
+       (rtl_for_decl_location): Likewise.
+       * emit-rtl.c (gen_highpart, widen_memory_access): Likewise.
+       * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise.
+       * expr.c (emit_group_load_1, clear_storage_hints): Likewise.
+       (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise.
+       (expand_expr_real_1): Likewise.
+       * function.c (assign_parm_setup_block_p, assign_parm_setup_block)
+       (pad_below): Likewise.
+       * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
+       * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise.
+       * ira.c (get_subreg_tracking_sizes): Likewise.
+       * ira-build.c (ira_create_allocno_objects): Likewise.
+       * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise.
+       (ira_sort_regnos_for_alter_reg): Likewise.
+       * ira-costs.c (record_operand_costs): Likewise.
+       * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn)
+       (resolve_simple_move): Likewise.
+       * lra-constraints.c (get_reload_reg, operands_match_p): Likewise.
+       (process_addr_reg, simplify_operand_subreg, curr_insn_transform)
+       (lra_constraints): Likewise.
+       (CONST_POOL_OK_P): Reject variable-sized modes.
+       * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare)
+       (add_pseudo_to_slot, lra_spill): Likewise.
+       * omp-low.c (omp_clause_aligned_alignment): Likewise.
+       * optabs-query.c (get_best_extraction_insn): Likewise.
+       * optabs-tree.c (expand_vec_cond_expr_p): Likewise.
+       * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise.
+       (expand_mult_highpart, valid_multiword_target_p): Likewise.
+       * recog.c (offsettable_address_addr_space_p): Likewise.
+       * regcprop.c (maybe_mode_change): Likewise.
+       * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise.
+       * regrename.c (build_def_use): Likewise.
+       * regstat.c (dump_reg_info): Likewise.
+       * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload)
+       (find_reloads, find_reloads_subreg_address): Likewise.
+       * reload1.c (eliminate_regs_1): Likewise.
+       * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise.
+       * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
+       (simplify_binary_operation_1, simplify_subreg): Likewise.
+       * targhooks.c (default_function_arg_padding): Likewise.
+       (default_hard_regno_nregs, default_class_max_nregs): Likewise.
+       * tree-cfg.c (verify_gimple_assign_binary): Likewise.
+       (verify_gimple_assign_ternary): Likewise.
+       * tree-inline.c (estimate_move_cost): Likewise.
+       * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
+       * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise.
+       (get_address_cost_ainc): Likewise.
+       * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
+       (vect_supportable_dr_alignment): Likewise.
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
+       (vectorizable_reduction): Likewise.
+       * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift)
+       (vectorizable_operation, vectorizable_load): Likewise.
+       * tree.c (build_same_sized_truth_vector_type): Likewise.
+       * valtrack.c (cleanup_auto_inc_dec): Likewise.
+       * var-tracking.c (emit_note_insn_var_location): Likewise.
+       * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>.
+       (ADDR_VEC_ALIGN): Likewise.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * machmode.h (mode_to_bits): Return a poly_uint16 rather than an
+       unsigned short.
+       (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
+       or if measurement_type is polynomial.
+       * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial.
+       * combine.c (make_extraction): Likewise.
+       * dse.c (find_shift_sequence): Likewise.
+       * dwarf2out.c (mem_loc_descriptor): Likewise.
+       * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise.
+       (extract_bit_field, extract_low_bits): Likewise.
+       * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise.
+       (optimize_bitfield_assignment_op, expand_assignment): Likewise.
+       (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise.
+       * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise.
+       * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
+       * reload.c (find_reloads): Likewise.
+       * reload1.c (alter_reg): Likewise.
+       * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise.
+       * targhooks.c (default_secondary_memory_needed_mode): Likewise.
+       * tree-if-conv.c (predicate_mem_writes): Likewise.
+       * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
+       * tree-vect-patterns.c (adjust_bool_pattern): Likewise.
+       * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
+       * valtrack.c (dead_debug_insert_temp): Likewise.
+       * varasm.c (mergeable_constant_section): Likewise.
+       * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * expr.c (expand_assignment): Cope with polynomial mode sizes
+       when assigning to a CONCAT.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * machmode.h (mode_precision): Change from unsigned short to
+       poly_uint16_pod.
+       (mode_to_precision): Return a poly_uint16 rather than an unsigned
+       short.
+       (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES,
+       or if measurement_type is not polynomial.
+       (HWI_COMPUTABLE_MODE_P): Turn into a function.  Optimize the case
+       in which the mode is already known to be a scalar_int_mode.
+       * genmodes.c (emit_mode_precision): Change the type of mode_precision
+       from unsigned short to poly_uint16_pod.  Use ZERO_COEFFS for the
+       initializer.
+       * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
+       for GET_MODE_PRECISION.
+       * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
+       for GET_MODE_PRECISION.
+       * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION
+       as polynomial.
+       (try_combine, find_split_point, combine_simplify_rtx): Likewise.
+       (expand_field_assignment, make_extraction): Likewise.
+       (make_compound_operation_int, record_dead_and_set_regs_1): Likewise.
+       (get_last_value): Likewise.
+       * convert.c (convert_to_integer_1): Likewise.
+       * cse.c (cse_insn): Likewise.
+       * expr.c (expand_expr_real_1): Likewise.
+       * lra-constraints.c (simplify_operand_subreg): Likewise.
+       * optabs-query.c (can_atomic_load_p): Likewise.
+       * optabs.c (expand_atomic_load): Likewise.
+       (expand_atomic_store): Likewise.
+       * ree.c (combine_reaching_defs): Likewise.
+       * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise.
+       * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise.
+       * tree.h (type_has_mode_precision_p): Likewise.
+       * ubsan.c (instrument_si_overflow): Likewise.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle
+       polynomial numbers of units.
+       (SET_TYPE_VECTOR_SUBPARTS): Likewise.
+       (valid_vector_subparts_p): New function.
+       (build_vector_type): Remove temporary shim and take the number
+       of units as a poly_uint64 rather than an int.
+       (build_opaque_vector_type): Take the number of units as a
+       poly_uint64 rather than an int.
+       * tree.c (build_vector_from_ctor): Handle polynomial
+       TYPE_VECTOR_SUBPARTS.
+       (type_hash_canon_hash, type_cache_hasher::equal): Likewise.
+       (uniform_vector_p, vector_type_mode, build_vector): Likewise.
+       (build_vector_from_val): If the number of units is variable,
+       use build_vec_duplicate_cst for constant operands and
+       VEC_DUPLICATE_EXPR otherwise.
+       (make_vector_type): Remove temporary is_constant ().
+       (build_vector_type, build_opaque_vector_type): Take the number of
+       units as a poly_uint64 rather than an int.
+       (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and
+       VECTOR_CST_NELTS.
+       * cfgexpand.c (expand_debug_expr): Likewise.
+       * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise.
+       (store_constructor, expand_expr_real_1): Likewise.
+       (const_scalar_mask_from_tree): Likewise.
+       * fold-const-call.c (fold_const_reduction): Likewise.
+       * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise.
+       (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise.
+       (native_encode_vector, vec_cst_ctor_to_array): Likewise.
+       (fold_relational_const): Likewise.
+       (native_interpret_vector): Likewise.  Change the size from an
+       int to an unsigned int.
+       * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial
+       TYPE_VECTOR_SUBPARTS.
+       (gimple_fold_indirect_ref, gimple_build_vector): Likewise.
+       (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when
+       duplicating a non-constant operand into a variable-length vector.
+       * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial
+       TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS.
+       * ipa-icf.c (sem_variable::equals): Likewise.
+       * match.pd: Likewise.
+       * omp-simd-clone.c (simd_clone_subparts): Likewise.
+       * print-tree.c (print_node): Likewise.
+       * stor-layout.c (layout_type): Likewise.
+       * targhooks.c (default_builtin_vectorization_cost): Likewise.
+       * tree-cfg.c (verify_gimple_comparison): Likewise.
+       (verify_gimple_assign_binary): Likewise.
+       (verify_gimple_assign_ternary): Likewise.
+       (verify_gimple_assign_single): Likewise.
+       * tree-pretty-print.c (dump_generic_node): Likewise.
+       * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
+       (simplify_bitfield_ref, is_combined_permutation_identity): Likewise.
+       * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
+       (vect_grouped_load_supported, vect_permute_load_chain): Likewise.
+       (vect_shift_permute_load_chain): Likewise.
+       * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise.
+       (expand_vector_condition, optimize_vector_constructor): Likewise.
+       (lower_vec_perm, get_compute_type): Likewise.
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
+       (get_initial_defs_for_reduction, vect_transform_loop): Likewise.
+       * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
+       (vect_recog_mask_conversion_pattern): Likewise.
+       * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise.
+       (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise.
+       * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
+       (get_group_load_store_type, vectorizable_mask_load_store): Likewise.
+       (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment)
+       (vectorizable_shift, vectorizable_operation, vectorizable_store)
+       (vectorizable_load, vect_is_simple_cond, vectorizable_comparison)
+       (supportable_widening_operation): Likewise.
+       (supportable_narrowing_operation): Likewise.
+       * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts):
+       Likewise.
+       * varasm.c (output_constant): Likewise.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize
+       so that both the length == 3 and length != 3 cases set up their
+       own permute vectors.  Add comments explaining why we know the
+       number of elements is constant.
+       (vect_permute_load_chain): Likewise.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * machmode.h (mode_nunits): Change from unsigned char to
+       poly_uint16_pod.
+       (ONLY_FIXED_SIZE_MODES): New macro.
+       (pod_mode::measurement_type, scalar_int_mode::measurement_type)
+       (scalar_float_mode::measurement_type, scalar_mode::measurement_type)
+       (complex_mode::measurement_type, fixed_size_mode::measurement_type):
+       New typedefs.
+       (mode_to_nunits): Return a poly_uint16 rather than an unsigned short.
+       (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES,
+       or if measurement_type is not polynomial.
+       * genmodes.c (ZERO_COEFFS): New macro.
+       (emit_mode_nunits_inline): Make mode_nunits_inline return a
+       poly_uint16.
+       (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod.
+       Use ZERO_COEFFS when emitting initializers.
+       * data-streamer.h (bp_pack_poly_value): New function.
+       (bp_unpack_poly_value): Likewise.
+       * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
+       for GET_MODE_NUNITS.
+       * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
+       for GET_MODE_NUNITS.
+       * tree.c (make_vector_type): Remove temporary shim and make
+       the real function take the number of units as a poly_uint64
+       rather than an int.
+       (build_vector_type_for_mode): Handle polynomial nunits.
+       * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise.
+       * emit-rtl.c (const_vec_series_p_1): Likewise.
+       (gen_rtx_CONST_VECTOR): Likewise.
+       * fold-const.c (test_vec_duplicate_folding): Likewise.
+       * genrecog.c (validate_pattern): Likewise.
+       * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise.
+       * optabs-tree.c (expand_vec_cond_expr_p): Likewise.
+       * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise.
+       (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise.
+       (expand_vec_cond_expr, expand_mult_highpart): Likewise.
+       * rtlanal.c (subreg_get_info): Likewise.
+       * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
+       (vect_grouped_load_supported): Likewise.
+       * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
+       * tree-vect-loop.c (have_whole_vector_shift): Likewise.
+       * simplify-rtx.c (simplify_unary_operation_1): Likewise.
+       (simplify_const_unary_operation, simplify_binary_operation_1)
+       (simplify_const_binary_operation, simplify_ternary_operation)
+       (test_vector_ops_duplicate, test_vector_ops): Likewise.
+       (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode
+       instead of CONST_VECTOR_NUNITS.
+       * varasm.c (output_constant_pool_2): Likewise.
+       * rtx-vector-builder.c (rtx_vector_builder::build): Only include the
+       explicit-encoded elements in the XVEC for variable-length vectors.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+       * lra-constraints.c (curr_insn_transform): Use partial_subreg_p.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+       * coretypes.h (fixed_size_mode): Declare.
+       (fixed_size_mode_pod): New typedef.
+       * builtins.h (target_builtins::x_apply_args_mode)
+       (target_builtins::x_apply_result_mode): Change type to
+       fixed_size_mode_pod.
+       * builtins.c (apply_args_size, apply_result_size, result_vector)
+       (expand_builtin_apply_args_1, expand_builtin_apply)
+       (expand_builtin_return): Update accordingly.
+ 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
+       * cse.c (hash_rtx_cb): Hash only the encoded elements.
+       * cselib.c (cselib_hash_rtx): Likewise.
+       * expmed.c (make_tree): Build VECTOR_CSTs directly from the
+       CONST_VECTOR encoding.
+ 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
+           Jeff Law  <law@redhat.com>
  
-       * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
-       wo constraint.
+       PR target/83641
+       * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For
+       noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop,
+       only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp
+       and add REG_CFA_ADJUST_CFA notes in that case to both insns.
+       PR target/83641
+       * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not
+       explicitly probe *sp in a noreturn function if there were any callee
+       register saves or frame pointer is needed.
+ 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/83621
+       * cfgexpand.c (expand_debug_expr): Return NULL if mode is
+       BLKmode for ternary, binary or unary expressions.
+       PR debug/83645
+       * var-tracking.c (delete_vta_debug_insn): New inline function.
+       (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just
+       insns from get_insns () to NULL instead of each bb separately.
+       Use delete_vta_debug_insn.  No longer static.
+       (vt_debug_insns_local, variable_tracking_main_1): Adjust
+       delete_vta_debug_insns callers.
+       * rtl.h (delete_vta_debug_insns): Declare.
+       * final.c (rest_of_handle_final): Call delete_vta_debug_insns
+       instead of variable_tracking_main.
+ 2018-01-03  Martin Sebor  <msebor@redhat.com>
+       PR tree-optimization/83603
+       * calls.c (maybe_warn_nonstring_arg): Avoid accessing function
+       arguments past the endof the argument list in functions declared
+       without a prototype.
+       * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call):
+       Avoid checking when arguments are null.
+ 2018-01-03  Martin Sebor  <msebor@redhat.com>
+       PR c/83559
+       * doc/extend.texi (attribute const): Fix a typo.
+       * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid
+       issuing -Wsuggest-attribute for void functions.
+ 2018-01-03  Martin Sebor  <msebor@redhat.com>
+       * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use
+       offset_int::from instead of wide_int::to_shwi.
+       (maybe_diag_overlap): Remove assertion.
+       Use HOST_WIDE_INT_PRINT_DEC instead of %lli.
+       * gimple-ssa-sprintf.c (format_directive): Same.
+       (parse_directive): Same.
+       (sprintf_dom_walker::compute_format_length): Same.
+       (try_substitute_return_value): Same.
+ 2018-01-03  Jeff Law  <law@redhat.com>
+       PR middle-end/83654
+       * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a
+       non-constant residual for zero at runtime and avoid probing in
+       that case.  Reorganize code for trailing problem to mirror handling
+       of the residual.
+ 2018-01-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+       PR tree-optimization/83501
+       * tree-ssa-strlen.c (get_string_cst): New.
+       (handle_char_store): Call get_string_cst.
+ 2018-01-03  Martin Liska  <mliska@suse.cz>
+       PR tree-optimization/83593
+       * tree-ssa-strlen.c: Include tree-cfg.h.
+       (strlen_check_and_optimize_stmt): Add new argument cleanup_eh.
+       (strlen_dom_walker): Add new member variable m_cleanup_cfg.
+       (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg
+       to false.
+       (strlen_dom_walker::before_dom_children): Call
+       gimple_purge_dead_eh_edges. Dump tranformation with details
+       dump flags.
+       (strlen_dom_walker::before_dom_children): Update call by adding
+       new argument cleanup_eh.
+       (pass_strlen::execute): Return TODO_cleanup_cfg if needed.
+ 2018-01-03  Martin Liska  <mliska@suse.cz>
+       PR ipa/83549
+       * cif-code.def (VARIADIC_THUNK): New enum value.
+       * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic
+       thunks.
  
-       * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
-       expanders not to have constraints.  Add support for ISA 3.0 xxperm
-       instruction.  Add support for fusing xxlor with xxperm.
-       (altivec_vperm_<mode>_internal): Likewise.
-       (altivec_vperm_v8hiv16qi): Likewise.
-       (altivec_vperm_<mode>v16q): Likewise.
-       (altivec_vperm_<mode>_uns): Likewise.
-       (vperm_v8hiv4si): Likewise.
-       (vperm_v16qiv8hi): Likewise.
+ 2018-01-03  Jan Beulich  <jbeulich@suse.com>
  
-       * doc/md.texi (RS/6000 constraints): Document wo constraint.
+       * sse.md (mov<mode>_internal): Tighten condition for when to use
+       vmovdqu<ssescalarsize> for TI and OI modes.
  
- 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
  
        Update copyright years.
  
diff --cc gcc/common.opt
Simple merge
diff --cc gcc/ira-costs.c
index 533d86946fe31dee33d73f8e0adce9da732fd718,2b4ae38f410c1a61ecdd9eea9fbe8d4bafe8e5e5..bc010e223b14f63e5705c450f875ce4dea805802
@@@ -478,928 -478,6 +478,928 @@@ copy_cost (rtx x, machine_mode mode, re
  
  \f
  
-                       if (HARD_REGNO_MODE_OK (i, mode)
 +/* Some insn operand info after choosing an insn alternative.  */
 +struct op_info
 +{
 +  /* Flags of that insn alternative permits the operand to be in
 +     memory or an address.  */
 +  bool allows_mem_p;
 +  bool allows_addr_p;
 +  /* Class of the operand permitted by the insn alternative.  It is an
 +     approximation.  The accuracy can be improved if we have a set of
 +     register classes.  Does we need such accuracy?  The question is
 +     open.  */
 +  enum reg_class op_class;
 +};
 +
 +/* Container of the above info about the insn operands.  */
 +static vec<struct op_info> op_infos;
 +
 +/* Info about selected alternative of the insns.  We could use set of
 +   alternatives here.  Does it worth spent time for keeping and
 +   processing more one alternative?  The question is open.  */
 +struct insn_selection
 +{
 +  /* Number of the selcted alternative.  */
 +  int alt;
 +  /* Start index of the insn operands info in op_infos.  */
 +  int op_info_start;
 +};
 +
 +/* Container of the above info about the selected insns
 +   alternative.  */
 +static vec<struct insn_selection> insn_selections;
 +
 +/* True if X is a constant that can be forced into the constant pool.
 +   MODE is the mode of the operand, or VOIDmode if not known.  */
 +#define CONST_POOL_OK_P(MODE, X)              \
 +  ((MODE) != VOIDmode                         \
 +   && CONSTANT_P (X)                          \
 +   && GET_CODE (X) != HIGH                    \
 +   && !targetm.cannot_force_const_mem (MODE, X))
 +
 +/* True if C is a non-empty register class that has too few registers
 +   to be safely used as a reload target class.        */
 +#define SMALL_REGISTER_CLASS_P(C)                                     \
 +  (reg_class_size [(C)] == 1                                          \
 +   || (reg_class_size [(C)] >= 1 && targetm.class_likely_spilled_p (C)))
 +
 +static inline bool
 +general_constant_p (rtx x)
 +{
 +  return CONSTANT_P (x) && (! flag_pic || LEGITIMATE_PIC_OPERAND_P (x));
 +}
 +
 +/* A container used for quick access to operand constraints for given
 +   alternative.  Use preferred pseudo reg classes from the previous
 +   pass when it is possible.  */
 +static vec<const char *> insn_constraints;
 +
 +/* Choose INSN alternative and setup corresponding elements of
 +   INSN_SELECTIONS and OP_INFOS.  */
 +static void
 +setup_insn_alt (rtx_insn *insn)
 +{
 +  bool ok_p = false;
 +  int nop, best_overall, overall, nalt, i, m, len, uid;
 +  /* LOSERS counts the operands that don't fit this alternative and
 +     would require loading.  */
 +  int best_losers, losers;
 +  /* REJECT is a count of how undesirable this alternative says it is
 +     if any reloading is required.  If the alternative matches exactly
 +     then REJECT is ignored, but otherwise it gets this much counted
 +     against it in addition to the reloading needed.  */
 +  int reject;
 +  enum reg_class curr_alt[MAX_RECOG_OPERANDS];
 +  enum reg_class goal_op_alt[MAX_RECOG_OPERANDS];
 +  bool curr_alt_win[MAX_RECOG_OPERANDS];
 +  bool curr_alt_offmemok[MAX_RECOG_OPERANDS];
 +  bool goal_alt_offmemok[MAX_RECOG_OPERANDS];
 +  bool curr_alt_addrok[MAX_RECOG_OPERANDS];
 +  bool goal_alt_addrok[MAX_RECOG_OPERANDS];
 +  int curr_alt_matches[MAX_RECOG_OPERANDS];
 +  rtx op;
 +  /* The register when the operand is a subreg of register, otherwise the
 +     operand itself.  */
 +  rtx no_subreg_reg_operand[MAX_RECOG_OPERANDS];
 +  /* The register if the operand is a register or subreg of register,
 +     otherwise NULL.  */
 +  rtx operand_reg[MAX_RECOG_OPERANDS];
 +  enum op_type operand_type[MAX_RECOG_OPERANDS];
 +  int hard_regno[MAX_RECOG_OPERANDS];
 +  bool curr_swapped, goal_alt_swapped = false;
 +  bool early_clobber_p[MAX_RECOG_OPERANDS];
 +  int best_reload_nregs = 0, reload_nregs;
 +  bool costly_p, addrok;
 +  enum reg_class cl;
 +  enum constraint_num cn;
 +  enum machine_mode curr_operand_mode[MAX_RECOG_OPERANDS];
 +  enum machine_mode mode;
 +  int goal_alt_number = -1;
 +  int commutative = -1;
 +  bool no_input_reloads_p, no_output_reloads_p;
 +  rtx set;
 +  const char *p;
 +
 +  uid = INSN_UID (insn);
 +  len = insn_selections.length ();
 +  if (len <= uid)
 +    {
 +      insn_selections.safe_grow (uid + 1);
 +      for (i = len; i <= uid; i++)
 +      insn_selections[i].alt = -1;
 +    }
 +  if (!NONDEBUG_INSN_P (insn))
 +    {
 +      insn_selections[INSN_UID (insn)].alt = -1;
 +      return;
 +    }
 +  if ((set = single_set (insn)) != NULL_RTX)
 +    {
 +      rtx dest = SET_DEST (set);
 +      rtx src = SET_SRC (set);
 +
 +      if (GET_CODE (dest) == SUBREG)
 +      dest = SUBREG_REG (dest);
 +      if (GET_CODE (src) == SUBREG)
 +      src = SUBREG_REG (src);
 +      if (((REG_P (dest) && REGNO (dest) >= FIRST_PSEUDO_REGISTER)
 +         || MEM_P (dest))
 +        && ((REG_P (src) && REGNO (src) >= FIRST_PSEUDO_REGISTER)
 +            || MEM_P (src)))
 +      {
 +        if (ira_dump_file != NULL)
 +          fprintf (ira_dump_file, "insn %d is move -- ignore\n", INSN_UID (insn));
 +        insn_selections[INSN_UID (insn)].alt = -1;
 +        return;
 +      }
 +    }
 +  no_input_reloads_p = no_output_reloads_p = false;
 +  /* JUMP_INSNs and CALL_INSNs are not allowed to have any output
 +     reloads; neither are insns that SET cc0.  Insns that use CC0 are
 +     not allowed to have any input reloads.  */
 +  if (JUMP_P (insn) || CALL_P (insn))
 +    no_output_reloads_p = true;
 +#ifdef HAVE_cc0
 +  if (reg_referenced_p (cc0_rtx, PATTERN (insn)))
 +    no_input_reloads_p = true;
 +  if (reg_set_p (cc0_rtx, PATTERN (insn)))
 +    no_output_reloads_p = true;
 +#endif
 +  insn_constraints.truncate (0);
 +  insn_constraints.safe_grow_cleared (recog_data.n_operands
 +                                    * recog_data.n_alternatives + 1);
 +  best_losers = best_overall = INT_MAX;
 +  for (curr_swapped = false;;curr_swapped = true)
 +    {
 +      /* Calculate some data common for all alternatives to speed up the
 +       function.  */
 +      for (nop = 0; nop < recog_data.n_operands; nop++)
 +      {
 +        operand_type[nop] = OP_IN;
 +        op = no_subreg_reg_operand[nop] = recog_data.operand[nop];
 +        operand_reg[nop] = op;
 +        hard_regno[nop] = -1;
 +        if (GET_CODE (operand_reg[nop]) == SUBREG)
 +          operand_reg[nop] = SUBREG_REG (operand_reg[nop]);
 +        if (REG_P (operand_reg[nop]))
 +          {
 +            no_subreg_reg_operand[nop] = operand_reg[nop];
 +            if (REGNO (operand_reg[nop]) < FIRST_PSEUDO_REGISTER)
 +              hard_regno[nop] = REGNO (operand_reg[nop]);
 +          }
 +        else
 +          operand_reg[nop] = NULL_RTX;
 +        for (nalt = 0, p = recog_data.constraints[nop];
 +             nalt < recog_data.n_alternatives;
 +             nalt++)
 +          {
 +            insn_constraints[nop * recog_data.n_alternatives + nalt] = p;
 +            while (*p && *p != ',')
 +              p++;
 +            if (*p)
 +              p++;
 +          }
 +        mode = GET_MODE (recog_data.operand[nop]);
 +        curr_operand_mode[nop] = mode;
 +      }
 +      
 +      alternative_mask enabled = get_enabled_alternatives (insn);
 +      /* The constraints are made of several alternatives. Each operand's
 +       constraint looks like foo,bar,... with commas separating the
 +       alternatives.  The first alternatives for all operands go
 +       together, the second alternatives go together, etc.
 +       
 +       First loop over alternatives.  */
 +      for (nalt = 0; nalt < recog_data.n_alternatives; nalt++)
 +      {
 +        /* Loop over operands for one constraint alternative.  */
 +        if (!TEST_BIT (enabled, nalt))
 +          continue;
 +        
 +        overall = losers = reject = reload_nregs = 0;
 +        
 +        for (nop = 0; nop < recog_data.n_operands; nop++)
 +          {
 +            int len, c, this_alternative_matches;
 +            bool win, did_match, offmemok;
 +            /* false => this operand can be reloaded somehow for this
 +               alternative.  */
 +            bool badop;
 +            /* true => this operand can be reloaded if the alternative
 +               allows regs.  */
 +            bool winreg;
 +            /* True if a constant forced into memory would be OK for
 +               this operand.  */
 +            bool constmemok;
 +            enum reg_class this_alternative, this_costly_alternative;
 +            bool this_alternative_win;
 +            bool this_alternative_offmemok;
 +            bool scratch_p;
 +            enum machine_mode mode;
 +
 +            p = insn_constraints[nop * recog_data.n_alternatives + nalt];
 +            if (*p == 0 || *p == ',')
 +              {
 +                /* Fast track for no constraints at all.      */
 +                curr_alt[nop] = NO_REGS;
 +                curr_alt_win[nop] = true;
 +                curr_alt_offmemok[nop] = false;
 +                curr_alt_addrok[nop] = false;
 +                curr_alt_matches[nop] = -1;
 +                continue;
 +              }
 +            
 +            op = no_subreg_reg_operand[nop];
 +            mode = curr_operand_mode[nop];
 +            
 +            win = did_match = winreg = offmemok = constmemok = addrok = false;
 +            badop = true;
 +            
 +            early_clobber_p[nop] = false;
 +            
 +            this_costly_alternative = this_alternative = NO_REGS;
 +            this_alternative_win = false;
 +            this_alternative_offmemok = false;
 +            this_alternative_matches = -1;
 +            scratch_p = GET_CODE (no_subreg_reg_operand[nop]) == SCRATCH;
 +            
 +            /* Scan this alternative's specs for this operand; set WIN
 +               if the operand fits any letter in this alternative.
 +               Otherwise, clear BADOP if this operand could fit some
 +               letter after reloads, or set WINREG if this operand could
 +               fit after reloads provided the constraint allows some
 +               registers.      */
 +            costly_p = false;
 +            do
 +              {
 +                switch ((c = *p, len = CONSTRAINT_LEN (c, p)), c)
 +                  {
 +                  case '\0':
 +                    len = 0;
 +                    break;
 +                  case ',':
 +                    c = '\0';
 +                    break;
 +                  case '=':
 +                    operand_type[nop] = OP_OUT;
 +                    break;
 +                  case '+':
 +                    operand_type[nop] = OP_INOUT;
 +                    break;
 +                  case ' ': case '\t':
 +                    break;
 +                  case '*':
 +                    /* Ignore the next letter for this pass.  */
 +                    c = *++p;
 +                    len = CONSTRAINT_LEN (c, p);
 +                    break;
 +                  case '^':
 +                  case '?':
 +                    reject += 6;
 +                    break;
 +                  case '!':
 +                    reject += 600;
 +                    break;
 +                  case '%':
 +                    /* We only support one commutative marker, the first
 +                       one.  We already set commutative above.  */
 +                    if (commutative < 0)
 +                      commutative = nop;
 +                    break;
 +                  case '&':
 +                    early_clobber_p[nop] = true;
 +                    break;
 +                    
 +                  case '#':
 +                    /* Ignore rest of this alternative.  */
 +                    do
 +                      p++;
 +                    while (*p && *p != ',');
 +                    c = '\0';
 +                    break;
 +                    
 +                  case '0':  case '1':  case '2':      case '3':  case '4':
 +                  case '5':  case '6':  case '7':      case '8':  case '9':
 +                    {
 +                      char *end;
 +                      bool match_p;
 +                      
 +                      m = strtoul (p, &end, 10);
 +                      p = end;
 +                      len = 0;
 +                      ira_assert (nop > m);
 +                      
 +                      this_alternative_matches = m;
 +                      /* We are supposed to match a previous
 +                         operand.  If we do, we win if that one did.
 +                         If we do not, count both of the operands as
 +                         losers.  (This is too conservative, since
 +                         most of the time only a single reload insn
 +                         will be needed to make the two operands
 +                         win.  As a result, this alternative may be
 +                         rejected when it is actually
 +                         desirable.)  */
 +                      match_p = false;
 +                      if (rtx_equal_p (recog_data.operand[nop],
 +                                       recog_data.operand[m]))
 +                        {
 +                          /* We should reject matching of an early
 +                             clobber operand if the matching operand is
 +                             not dying in the insn.  */
 +                          if (! early_clobber_p[m]
 +                              || operand_reg[nop] == NULL_RTX
 +                              || (find_regno_note (insn, REG_DEAD,
 +                                                   REGNO (op))
 +                                  || REGNO (op) == REGNO (operand_reg[m])))
 +                            match_p = true;
 +                        }
 +                      if (match_p)
 +                        {
 +                          /* If we are matching a non-offsettable
 +                             address where an offsettable address
 +                             was expected, then we must reject this
 +                             combination, because we can't reload
 +                             it.  */
 +                          if (curr_alt_offmemok[m]
 +                              && MEM_P (recog_data.operand[m])
 +                              && curr_alt[m] == NO_REGS && ! curr_alt_win[m])
 +                            continue;
 +                          
 +                        }
 +                      else
 +                        {
 +                          /* Operands don't match.  Both operands must
 +                             allow a reload register, otherwise we
 +                             cannot make them match.  */
 +                          if (curr_alt[m] == NO_REGS)
 +                            break;
 +                          /* Retroactively mark the operand we had to
 +                             match as a loser, if it wasn't already and
 +                             it wasn't matched to a register constraint
 +                             (e.g it might be matched by memory). */
 +                          if (curr_alt_win[m] && operand_reg[m] == NULL_RTX)
 +                            {
 +                              losers++;
 +                              reload_nregs
 +                                += (ira_reg_class_max_nregs[curr_alt[m]]
 +                                    [GET_MODE (recog_data.operand[m])]);
 +                            }
 +                          
 +                          /* We prefer no matching alternatives because
 +                             it gives more freedom in RA.      */
 +                          if (operand_reg[nop] == NULL_RTX
 +                              || (find_regno_note (insn, REG_DEAD,
 +                                                   REGNO (operand_reg[nop]))
 +                                  == NULL_RTX))
 +                            reject += 2;
 +                        }
 +                      /* If we have to reload this operand and some
 +                         previous operand also had to match the same
 +                         thing as this operand, we don't know how to do
 +                         that.  */
 +                      if (!match_p || !curr_alt_win[m])
 +                        {
 +                          for (i = 0; i < nop; i++)
 +                            if (curr_alt_matches[i] == m)
 +                              break;
 +                          if (i < nop)
 +                            break;
 +                        }
 +                      else
 +                        did_match = true;
 +                      
 +                      /* This can be fixed with reloads if the operand
 +                         we are supposed to match can be fixed with
 +                         reloads. */
 +                      badop = false;
 +                      this_alternative = curr_alt[m];
 +                      winreg = this_alternative != NO_REGS;
 +                      break;
 +                    }
 +
 +                  case 'g':
 +                    if (MEM_P (op) || general_constant_p (op))
 +                      win = true;
 +                    /* Drop through into 'r' case.  */
 +                    cl = GENERAL_REGS;
 +                    goto reg;
 +
 +                  default:
 +                    cn = lookup_constraint (p);
 +                    switch (get_constraint_type (cn))
 +                      {
 +                      case CT_REGISTER:
 +                        cl = reg_class_for_constraint (cn);
 +                        if (cl != NO_REGS)
 +                          goto reg;
 +                        break;
 +                        
 +                      case CT_CONST_INT:
 +                        if (CONST_INT_P (op)
 +                            && insn_const_int_ok_for_constraint (INTVAL (op), cn))
 +                          win = true;
 +                        break;
 +
 +                      case CT_MEMORY:
 +                        if (constraint_satisfied_p (op, cn))
 +                          win = true;
 +
 +                        /* If we didn't already win, we can reload
 +                           constants via force_const_mem or put the
 +                           pseudo value into memory, or make other
 +                           memory by reloading the address like for
 +                           'o'.  */
 +                        if (CONST_POOL_OK_P (mode, op)
 +                            || MEM_P (op) || REG_P (op))
 +                          badop = false;
 +                        constmemok = true;
 +                        offmemok = true;
 +                        break;
 +
 +                      case CT_ADDRESS:
 +                        /* If we didn't already win, we can reload
 +                           the address into a base register.  */
 +                        if (constraint_satisfied_p (op, cn))
 +                          win = true;
 +                        cl = base_reg_class (VOIDmode, ADDR_SPACE_GENERIC,
 +                                             ADDRESS, SCRATCH);
 +                        badop = false;
 +                        addrok = true;
 +                        goto reg;
 +
 +                      case CT_FIXED_FORM:
 +                        if (constraint_satisfied_p (op, cn))
 +                          win = true;
 +                        break;
 +
 +                      case CT_SPECIAL_MEMORY:
 +                        if (constraint_satisfied_p (op, cn))
 +                          win = true;
 +                        break;
 +                      }
 +                    break;
 +                    
 +                  reg:
 +                    this_alternative
 +                      = reg_class_subunion[this_alternative][cl];
 +                    if (costly_p)
 +                      this_costly_alternative
 +                        = (reg_class_subunion
 +                           [this_costly_alternative][cl]);
 +                    if (mode == BLKmode)
 +                      break;
 +                    winreg = true;
 +                    if (hard_regno[nop] >= 0)
 +                      {
 +                        if (in_hard_reg_set_p (reg_class_contents[this_alternative],
 +                                               mode, hard_regno[nop]))
 +                          win = true;
 +                      }
 +                    else if ((pref == NULL && REG_P (op)) || scratch_p)
 +                      win = true;
 +                    else if (pref != NULL &&  REG_P (op)
 +                             && REGNO (op) >= FIRST_PSEUDO_REGISTER
 +                             && pref[COST_INDEX (REGNO (op))] != NO_REGS
 +                             && (ira_class_subset_p
 +                                 [pref[COST_INDEX (REGNO (op))]][this_alternative]))
 +                      win = true;
 +                    break;
 +                  }
 +                if (c != ' ' && c != '\t')
 +                  costly_p = c == '*';
 +              }
 +            while ((p += len), c);
 +            
 +            /* Record which operands fit this alternative.  */
 +            if (win)
 +              {
 +                this_alternative_win = true;
 +                if (operand_reg[nop] != NULL_RTX || scratch_p)
 +                  {
 +                    if (this_costly_alternative == this_alternative
 +                        || (hard_regno[nop] >= 0
 +                            && in_hard_reg_set_p (reg_class_contents
 +                                                  [this_costly_alternative],
 +                                                  mode, hard_regno[nop]))
 +                        || (pref != NULL &&  REG_P (op)
 +                            && REGNO (op) >= FIRST_PSEUDO_REGISTER
 +                            && (ira_class_subset_p
 +                                [pref[COST_INDEX (REGNO (op))]]
 +                                [this_costly_alternative])))
 +                      reject++;
 +                  }
 +              }
 +            else if (did_match)
 +              ;
 +            else
 +              {
 +                int const_to_mem = 0;
 +                bool no_regs_p;
 +                
 +                /* If this alternative asks for a specific reg class, see if there
 +                   is at least one allocatable register in that class.  */
 +                no_regs_p
 +                  = (this_alternative == NO_REGS
 +                     || (hard_reg_set_subset_p
 +                         (reg_class_contents[this_alternative],
 +                          ira_no_alloc_regs)));
 +                
 +                /* For asms, verify that the class for this alternative is possible
 +                   for the mode that is specified.  */
 +                if (!no_regs_p && INSN_CODE (insn) < 0)
 +                  {
 +                    int i;
 +                    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
-                          nr < hard_regno_nregs[other_regno][mode];
++                      if (targetm.hard_regno_mode_ok (i, mode)
 +                          && in_hard_reg_set_p (reg_class_contents[this_alternative],
 +                                                mode, i))
 +                        break;
 +                    if (i == FIRST_PSEUDO_REGISTER)
 +                      winreg = false;
 +                  }
 +                
 +                /* If this operand accepts a register, and if the
 +                   register class has at least one allocatable register,
 +                   then this operand can be reloaded.  */
 +                if (winreg && !no_regs_p)
 +                  badop = false;
 +                
 +                if (badop)
 +                  goto fail;
 +                
 +                this_alternative_offmemok = offmemok;
 +                if (this_costly_alternative != NO_REGS)
 +                  reject++;
 +                /* If the operand is dying, has a matching constraint,
 +                   and satisfies constraints of the matched operand
 +                   which failed to satisfy the own constraints, we do
 +                   not need to generate a reload insn for this
 +                   operand.  */
 +                if (!(this_alternative_matches >= 0
 +                      && !curr_alt_win[this_alternative_matches]
 +                      && REG_P (op)
 +                      && find_regno_note (insn, REG_DEAD, REGNO (op))
 +                      && ((hard_regno[nop] >= 0
 +                           && in_hard_reg_set_p (reg_class_contents
 +                                                 [curr_alt[this_alternative_matches]],
 +                                                 mode, hard_regno[nop]))
 +                          || pref == NULL
 +                          || (REGNO (op) >= FIRST_PSEUDO_REGISTER
 +                              && pref[COST_INDEX (REGNO (op))] != NO_REGS
 +                              && (ira_class_subset_p
 +                                  [pref[COST_INDEX (REGNO (op))]]
 +                                  [curr_alt[this_alternative_matches]])))))
 +                  losers++;
 +                /* If this is a constant that is reloaded into the
 +                   desired class by copying it to memory first, count
 +                   that as another reload.  This is consistent with
 +                   other code and is required to avoid choosing another
 +                   alternative when the constant is moved into memory.
 +                   Note that the test here is precisely the same as in
 +                   the code below that calls force_const_mem.  */
 +                if (CONST_POOL_OK_P (mode, op)
 +                    && ((targetm.preferred_reload_class
 +                         (op, this_alternative) == NO_REGS)
 +                        || no_input_reloads_p))
 +                  {
 +                    const_to_mem = 1;
 +                    if (! no_regs_p)
 +                      losers++;
 +                  }
 +                
 +                /* Alternative loses if it requires a type of reload not
 +                   permitted for this insn.  We can always reload
 +                   objects with a REG_UNUSED note.  */
 +                if ((operand_type[nop] != OP_IN
 +                     && no_output_reloads_p
 +                     && ! find_reg_note (insn, REG_UNUSED, op))
 +                    || (operand_type[nop] != OP_OUT
 +                        && no_input_reloads_p && ! const_to_mem))
 +                  goto fail;
 +                
 +                /* Check strong discouragement of reload of non-constant
 +                   into class THIS_ALTERNATIVE.  */
 +                if (! CONSTANT_P (op) && ! no_regs_p
 +                    && (targetm.preferred_reload_class
 +                        (op, this_alternative) == NO_REGS
 +                        || (operand_type[nop] == OP_OUT
 +                            && (targetm.preferred_output_reload_class
 +                                (op, this_alternative) == NO_REGS))))
 +                  reject += 600;
 +                
 +                if (! (MEM_P (op) && offmemok)
 +                    && ! (const_to_mem && constmemok))
 +                  {
 +                    /* We prefer to reload pseudos over reloading
 +                       other things, since such reloads may be able
 +                       to be eliminated later.  So bump REJECT in
 +                       other cases.  Don't do this in the case where
 +                       we are forcing a constant into memory and it
 +                       will then win since we don't want to have a
 +                       different alternative match then.  */
 +                    if (! (scratch_p
 +                           || (REG_P (op) && REGNO (op) >= FIRST_PSEUDO_REGISTER)))
 +                      reject += 2;
 +                    
 +                    if (! no_regs_p)
 +                      reload_nregs
 +                        += ira_reg_class_max_nregs[this_alternative][mode];
 +                    
 +                    if (SMALL_REGISTER_CLASS_P (this_alternative))
 +                      reject += 3;
 +                  }
 +                
 +                /* We are trying to spill pseudo into memory.  It is
 +                   usually more costly than moving to a hard
 +                   register although it might takes the same number
 +                   of reloads.  */
 +                if (no_regs_p && (REG_P (op) || scratch_p))
 +                  reject += 3;
 +                
 +                /* Input reloads can be inherited more often than
 +                   output reloads can be removed, so penalize output
 +                   reloads.  */
 +                if (! (REG_P (op) || scratch_p) || operand_type[nop] != OP_IN)
 +                  reject++;
 +              }
 +            
 +            if (early_clobber_p[nop] && ! scratch_p)
 +              reject++;
 +            
 +            /* ??? We check early clobbers after processing all
 +               operands (see loop below) and there we update the
 +               costs more.  Should we update the cost (may be
 +               approximately) here because of early clobber register
 +               reloads or it is a rare or non-important thing to be
 +               worth to do it.  */
 +            overall = losers * 6 + reject;
 +            if ((best_losers == 0 || losers != 0) && best_overall < overall)
 +              goto fail;
 +            
 +            curr_alt[nop] = this_alternative;
 +            curr_alt_win[nop] = this_alternative_win;
 +            curr_alt_offmemok[nop] = this_alternative_offmemok;
 +            curr_alt_addrok[nop] = addrok;
 +            curr_alt_matches[nop] = this_alternative_matches;
 +            
 +            if (this_alternative_matches >= 0
 +                && !did_match && !this_alternative_win)
 +              curr_alt_win[this_alternative_matches] = false;
 +          }
 +        ok_p = true;
 +        /* If this alternative can be made to work by reloading, and
 +           it needs less reloading than the others checked so far,
 +           record it as the chosen goal for reloading.  */
 +        if ((best_losers != 0 && losers == 0)
 +            || (((best_losers == 0 && losers == 0)
 +                 || (best_losers != 0 && losers != 0))
 +                && (best_overall > overall
 +                    || (best_overall == overall
 +                        /* If the cost of the reloads is the same,
 +                           prefer alternative which requires minimal
 +                           number of reload regs.  */
 +                    && (reload_nregs < best_reload_nregs
 +                        || (reload_nregs == best_reload_nregs
 +                            && nalt < goal_alt_number))))))
 +          {
 +            goal_alt_swapped = curr_swapped;
 +            for (nop = 0; nop < recog_data.n_operands; nop++)
 +              {
 +                goal_op_alt[nop] = curr_alt[nop];
 +                goal_alt_offmemok[nop] = curr_alt_offmemok[nop];
 +                goal_alt_addrok[nop] = curr_alt_addrok[nop];
 +                if ((m = curr_alt_matches[nop]) >= 0)
 +                  {
 +                    goal_op_alt[nop] = reg_class_subunion[curr_alt[m]][curr_alt[nop]];
 +                    if (curr_alt_offmemok[m])
 +                      goal_alt_offmemok[nop] = true;
 +                  }
 +              }
 +            best_overall = overall;
 +            best_losers = losers;
 +            best_reload_nregs = reload_nregs;
 +            goal_alt_number = nalt;
 +          }
 +        if (losers == 0)
 +          /* Everything is satisfied.  Do not process alternatives
 +             anymore.  */
 +          break;
 +      fail:
 +        ;
 +      }
 +      if (commutative < 0)
 +      break;
 +      if (curr_swapped)
 +      break;
 +      op = recog_data.operand[commutative];
 +      recog_data.operand[commutative] = recog_data.operand[commutative + 1];
 +      recog_data.operand[commutative + 1] = op;
 +    }
 +  if (curr_swapped)
 +    {
 +      op = recog_data.operand[commutative];
 +      recog_data.operand[commutative] = recog_data.operand[commutative + 1];
 +      recog_data.operand[commutative + 1] = op;
 +    }
 +  if (! ok_p)
 +    goal_alt_number = 0;
 +  if (ira_dump_file != NULL)
 +    {
 +      fprintf (ira_dump_file, "insn %u", uid);
 +      if (INSN_CODE (insn) >= 0
 +          && (p = get_insn_name (INSN_CODE (insn))) != NULL)
 +        fprintf (ira_dump_file, " {%s}", p);
 +      fprintf (ira_dump_file, " will use alt %d%s:", goal_alt_number,
 +             goal_alt_swapped ? " with swap" : "" );
 +    }
 +  len = op_infos.length ();
 +  if (insn_selections[uid].alt >= 0 && insn_selections[uid].alt != goal_alt_number)
 +    fprintf (stderr, "change alt %d to %d in insn %d\n",
 +           insn_selections[uid].alt, goal_alt_number, uid);
 +  insn_selections[uid].alt = goal_alt_number;
 +  insn_selections[uid].op_info_start = len;
 +  op_infos.safe_grow (len + recog_data.n_operands);
 +  for (nop = 0; nop < recog_data.n_operands; nop++)
 +    {
 +      op_infos[len + nop].op_class = goal_op_alt[nop];
 +      op_infos[len + nop].allows_mem_p = goal_alt_offmemok[nop];
 +      op_infos[len + nop].allows_addr_p = goal_alt_addrok[nop];
 +      if (ira_dump_file != NULL)
 +      {
 +        p = insn_constraints[nop * recog_data.n_alternatives + goal_alt_number];
 +        if (p == NULL || *p == '\0')
 +          continue;
 +        fprintf (ira_dump_file, "  (%d) ", nop);
 +        for (; *p != '\0' && *p != ',' && *p != '#'; p++)
 +          fputc (*p, ira_dump_file);
 +      }
 +    }
 +  if (ira_dump_file != NULL)
 +    fprintf (ira_dump_file, "\n");
 +}
 +
 +static void
 +record_address_regs (enum machine_mode mode, addr_space_t as, rtx x,
 +                   int context, enum rtx_code outer_code,
 +                   enum rtx_code index_code, int scale);
 +
 +/* Update reg classes and memory costs of pseudos after choosing
 +   alternative ISEL of INSN.  Don't update memory costs if
 +   IGNORE_MEM_COST_P is TRUE.  */
 +static void
 +define_op_cost_from_alt (rtx_insn *insn, const struct insn_selection &isel, bool ignore_mem_cost_p)
 +{
 +  int nop, op_start, regno, other_regno;
 +  rtx set;
 +
 +  ira_assert (isel.alt >= 0);
 +  op_start = isel.op_info_start;
 +  for (nop = 0; nop < recog_data.n_operands; nop++)
 +    {
 +      rtx op = recog_data.operand[nop];
 +      int k, add_cost, regno;
 +      bool in_p, out_p, allows_mem_p;
 +      enum machine_mode mode;
 +      struct costs *pp;
 +      int *pp_costs;
 +      cost_classes_t cost_classes_ptr;
 +      enum reg_class *cost_classes;
 +      enum reg_class op_class, cost_class;
 +      move_table *move_in_cost, *move_out_cost;
 +
 +      if (GET_CODE (op) == SUBREG)
 +      op = SUBREG_REG (op);
 +      op_class = op_infos[op_start + nop].op_class;
 +      if (MEM_P (op))
 +      record_address_regs (GET_MODE (op), MEM_ADDR_SPACE (op),
 +                           XEXP (op, 0), 0, MEM, SCRATCH, frequency * 2);
 +      else if (op_infos[op_start + nop].allows_addr_p)
 +      record_address_regs (VOIDmode, ADDR_SPACE_GENERIC,
 +                           op, 0, ADDRESS, SCRATCH, frequency * 2);
 +  
 +      if (! REG_P (op) || (regno = REGNO (op)) < FIRST_PSEUDO_REGISTER)
 +      continue;
 +      
 +      op_class = op_infos[op_start + nop].op_class;
 +      mode = GET_MODE (op); /* ??? smallest mode for paradoxical subreg */
 +      pp = COSTS (costs, COST_INDEX (regno));
 +      cost_classes_ptr = regno_cost_classes[regno];
 +      cost_classes = cost_classes_ptr->classes;
 +      pp_costs = pp->cost;
 +      in_p = recog_data.operand_type[nop] != OP_OUT;
 +      out_p = recog_data.operand_type[nop] != OP_IN;
 +      ira_init_register_move_cost_if_necessary (mode);
 +      if (! in_p)
 +      {
 +        ira_assert (out_p);
 +        move_out_cost = ira_may_move_out_cost[mode];
 +        for (k = cost_classes_ptr->num - 1; k >= 0; k--)
 +          {
 +            cost_class = cost_classes[k];
 +            add_cost = move_out_cost[op_class][cost_class] * frequency;
 +            if (INT_MAX - add_cost < pp_costs[k])
 +              pp_costs[k] = INT_MAX;
 +            else 
 +              pp_costs[k] += add_cost;
 +          }
 +      }
 +      else if (! out_p)
 +      {
 +        ira_assert (in_p);
 +        move_in_cost = ira_may_move_in_cost[mode];
 +        for (k = cost_classes_ptr->num - 1; k >= 0; k--)
 +          {
 +            cost_class = cost_classes[k];
 +            add_cost = move_in_cost[cost_class][op_class] * frequency;
 +            if (INT_MAX - add_cost < pp_costs[k])
 +              pp_costs[k] = INT_MAX;
 +            else 
 +              pp_costs[k] += add_cost;
 +          }
 +      }
 +      else
 +      {
 +        move_in_cost = ira_may_move_in_cost[mode];
 +        move_out_cost = ira_may_move_out_cost[mode];
 +        for (k = cost_classes_ptr->num - 1; k >= 0; k--)
 +          {
 +            cost_class = cost_classes[k];
 +            add_cost = (move_in_cost[cost_class][op_class]
 +                        + move_out_cost[op_class][cost_class]) * frequency;
 +            if (INT_MAX - add_cost < pp_costs[k])
 +              pp_costs[k] = INT_MAX;
 +            else 
 +              pp_costs[k] += add_cost;
 +          }
 +      }
 +      
 +      if (!ignore_mem_cost_p)
 +      {
 +        allows_mem_p = op_infos[op_start + nop].allows_mem_p;
 +        /* If the alternative actually allows memory, make things a bit
 +           cheaper since we won't need an extra insn to load it.  */
 +        add_cost = ((out_p ? ira_memory_move_cost[mode][op_class][0] : 0)
 +                    + (in_p ? ira_memory_move_cost[mode][op_class][1] : 0)
 +                    - allows_mem_p) * frequency;
 +        if (INT_MAX - add_cost < pp->mem_cost)
 +          pp->mem_cost = INT_MAX;
 +        else 
 +          pp->mem_cost += add_cost;
 +      }
 +    }
 +  if ((set = single_set (insn)) != NULL_RTX)
 +    {
 +      rtx dest = SET_DEST (set);
 +      rtx src = SET_SRC (set);
 +
 +      dest = SET_DEST (set);
 +      src = SET_SRC (set);
 +      if (REG_P (src) && REG_P (dest)
 +        && find_regno_note (insn, REG_DEAD, REGNO (src))
 +        && (((regno = REGNO (src)) >= FIRST_PSEUDO_REGISTER
 +             && (other_regno = REGNO (dest)) < FIRST_PSEUDO_REGISTER)
 +            || ((regno = REGNO (dest)) >= FIRST_PSEUDO_REGISTER
 +                && (other_regno = REGNO (src)) < FIRST_PSEUDO_REGISTER)))
 +      {
 +        struct costs *pp = COSTS (costs, COST_INDEX (regno));
 +        int *pp_costs = pp->cost;
 +        enum machine_mode mode = GET_MODE (src);
 +        cost_classes_t cost_classes_ptr = regno_cost_classes[regno];
 +        enum reg_class *cost_classes = cost_classes_ptr->classes;
 +        reg_class_t rclass;
 +        int k, nr;
 +        
 +        for (k = cost_classes_ptr->num - 1; k >= 0; k--)
 +          {
 +            rclass = cost_classes[k];
 +            if (TEST_HARD_REG_BIT (reg_class_contents[rclass], other_regno)
 +                && (reg_class_size[(int) rclass]
 +                    == ira_reg_class_max_nregs [(int) rclass][(int) mode]))
 +              {
 +                if (reg_class_size[rclass] == 1)
 +                  pp_costs[k] -= frequency;
 +                else
 +                  {
 +                    for (nr = 0;
-                     if (nr == hard_regno_nregs[other_regno][mode])
++                         nr < hard_regno_nregs (other_regno, mode);
 +                         nr++)
 +                      if (! TEST_HARD_REG_BIT (reg_class_contents[rclass],
 +                                               other_regno + nr))
 +                        break;
 +                    
++                    if (nr == hard_regno_nregs (other_regno, mode))
 +                      pp_costs[k] -= frequency;
 +                  }
 +              }
 +          }
 +      }
 +    }
 +}
 +
 +\f
 +
 +
  /* Record the cost of using memory or hard registers of various
     classes for the operands in INSN.