S/390: movdf improvements
[gcc.git] / gcc / ChangeLog
index 458faddc8aed30e0e8d653d5a75105d7b5448019..bf69f7a4d8dd3c77850c9212ad2663963fe16176 100644 (file)
@@ -1,3 +1,751 @@
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
+       FP zero.
+       ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
+       will anyway by matched by mov<mode>_64dfp.
+
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
+       vlef/vstef.  Add missing operand to vleif.
+
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.c (s390_expand_vec_init): Enable vector load
+       pair for all vector types with 64 bit elements.
+       * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
+       * config/s390/vector.md (V_HW_64): ... here.
+       (V_128_NOSINGLE): New mode iterator.
+       ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
+       ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
+       ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
+       ("*vec_load_pairv2di"): Change to ...
+       ("*vec_load_pair<mode>"): ... this one.
+
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/constraints.md: Add comments.
+       (jKK): Reject element sizes > 8 bytes.
+       * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
+       s_operands.
+       * config/s390/s390.md: Add the s_operand checks formerly in
+       s390_split_ok_p to various splitters where they are still
+       required.
+       * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
+       for 128 bit vectors.  Plus two splitters.
+
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
+       the file.
+
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       PR target/79893
+       * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
+       error if the boundary argument is not constant.
+
+2017-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/80112
+       * loop-doloop.c (doloop_condition_get): Don't check condition
+       if cmp isn't SET with IF_THEN_ELSE src.
+
+2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/80158
+       * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
+       replacing a candidate statement, also replace it for the
+       candidate's alternate interpretation.
+       (replace_rhs_if_not_dup): Likewise.
+       (replace_one_candidate): Likewise.
+
+2017-03-24  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80167
+       * graphite-isl-ast-to-gimple.c
+       (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
+       properly.
+       (translate_isl_ast_to_gimple::get_rename): Likewise.
+
+2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
+       handling of certain combinations of target options, including the
+       combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
+       -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
+
+2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/71436
+       * config/arm/arm.md (*load_multiple): Add reload_completed to
+       matching condition.
+
+2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+            Richard Biener  <rguenth@suse.com>
+
+       PR tree-optimization/79908
+       PR tree-optimization/80136
+       * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
+       been cast away, gimplify_and_add suffices.
+
+2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de> 
+
+       * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
+
+2017-03-23  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80032
+       * gimplify.c (gimple_push_cleanup): Forced unconditional
+       cleanups still have to go to the conditional_cleanups
+       sequence.
+
+2017-03-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/80072
+       * tree-ssa-reassoc.c (struct operand_entry): Change id field type
+       to unsigned int.
+       (next_operand_entry_id): Change type to unsigned int.
+       (sort_by_operand_rank): Make sure to return the right return value
+       even if unsigned fields are bigger than INT_MAX.
+       (struct oecount): Change cnt and id type to unsigned int.
+       (oecount_hasher::equal): Formatting fix.
+       (oecount_cmp): Make sure to return the right return value
+       even if unsigned fields are bigger than INT_MAX.
+       (undistribute_ops_list): Change next_oecount_id type to unsigned int.
+
+       PR c++/80129
+       * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
+       TREE_READONLY on result if writing it more than once.
+
+       PR sanitizer/80110
+       * doc/invoke.texi (-fsanitize=thread): Document that with
+       -fnon-call-exceptions atomics are not able to throw
+       exceptions.
+
+       PR sanitizer/80110
+       * tsan.c: Include tree-eh.h.
+       (instrument_builtin_call): Call maybe_clean_eh_stmt or
+       maybe_clean_or_replace_eh_stmt where needed.
+       (instrument_memory_accesses): Add cfg_changed argument.
+       Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
+       if it returned true.
+       (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
+
+       PR rtl-optimization/63191
+       * config/i386/i386.c (ix86_delegitimize_address): Turn into small
+       wrapper function, moved the whole old content into ...
+       (ix86_delegitimize_address_1): ... this.  New inline function.
+       (ix86_find_base_term): Use ix86_delegitimize_address_1 with
+       true as last argument instead of ix86_delegitimize_address.
+
+2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/aarch64/aarch64.c (generic_branch_cost): Copy
+       cortexa57_branch_cost.
+
+2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
+
+2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+
+       PR target/80123
+       * doc/md.texi (Constraints): Document wA constraint.
+       * config/rs6000/constraints.md (wA): New.
+       * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
+       (rs6000_init_hard_regno_mode_ok): Init wA constraint.
+       * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
+       * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
+
+2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
+
+       PR c++/80029
+       * gimplify.c (is_oacc_declared): New function.
+       (oacc_default_clause): Use it to set default flags for acc declared
+       variables inside parallel regions.
+       (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
+       declared variables.
+       (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
+       declare attribute to any decl as necessary.
+
+2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       PR target/80082
+       * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
+       (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
+       * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
+       (arm_arch_lpae): This.
+       * config/arm/arm.c (arm_arch7ve): Rename into ...
+       (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
+       * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
+       arm_arch_lpae.
+
+2017-03-22  Martin Liska  <mliska@suse.cz>
+
+       PR target/79906
+       * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
+       error message instead of an ICE.
+
+2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       * doc/extend.texi (6.11 Additional Floating Types): Revise.
+
+2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
+       comments.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
+       comments.
+
+2017-03-21  Martin Sebor  <msebor@redhat.com>
+
+       * doc/extend.texi: Use "cannot" instead of "can't."
+       * doc/hostconfig.texi: Same.
+       * doc/install.texi: Same.
+       * doc/invoke.texi: Same.
+       * doc/loop.texi: Same.
+       * doc/md.texi: Same.
+       * doc/objc.texi: Same.
+       * doc/rtl.texi: Same.
+       * doc/tm.texi: Same.
+       * doc/tm.texi.in: Same.
+       * doc/trouble.texi: Same.
+
+2017-03-21  Alexandre Oliva <aoliva@redhat.com>
+
+       PR debug/63238
+       * dwarf2out.c (struct checksum_attributes): Add at_alignment.
+       (collect_checksum_attributes): Set it.
+       (die_checksum_ordered): Use it.
+
+2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/79908
+       * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
+       change: For a VA_ARG whose LHS has been cast away, use
+       force_gimple_operand to construct the side effects.
+
+2017-03-21  David Malcolm  <dmalcolm@redhat.com>
+
+       PR translation/80001
+       * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
+       more amenable to translation.
+       (oacc_loop_auto_partitions): Likewise.
+
+2017-03-21  Marek Polacek  <polacek@redhat.com>
+           Martin Sebor  <msebor@redhat.com>
+
+       PR tree-optimization/80109
+       * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
+       on INTEGRAL_TYPE_P.
+
+2017-03-21  Jakub Jelinek  <jakub@redhat.com>
+           Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/80125
+       * combine.c (can_combine_p): Revert the 2017-03-20 change, only
+       check reg_used_between_p between insn and one of succ or succ2
+       depending on if succ is artificial insn not inserted into insn
+       stream.
+
+2017-03-21  Martin Liska  <mliska@suse.cz>
+
+       PR gcov-profile/80081
+       * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
+       * doc/gcc.texi: Include gcov-dump stuff.
+       * doc/gcov-dump.texi: New file.
+
+2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
+
+       PR rtl-optimization/79150
+       * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
+       conditional jump, if the jump is the last insn of the loop.
+
+2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+            Richard Biener  <rguenth@suse.com>
+
+       PR tree-optimization/79908
+       * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
+       been cast away, use force_gimple_operand to construct the side
+       effects.
+
+2017-03-21  Martin Liska  <mliska@suse.cz>
+
+       PR libfortran/79956
+       * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
+       to NULL.
+
+2017-03-21  Brad Spengler <spender@grsecurity.net>
+
+       PR plugins/80094
+       * plugin.c (htab_hash_plugin): New function.
+       (add_new_plugin): Use it and adjust.
+       (parse_plugin_arg_opt): Adjust.
+       (init_one_plugin): Likewise.
+
+2017-03-21  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80032
+       * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
+       if set force the cleanup to happen unconditionally.
+       (gimplify_target_expr): Push inserted clobbers with force_uncond
+       to avoid them being removed by control-dependent DCE.
+
+2017-03-21  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80122
+       * tree-inline.c (copy_bb): Do not expans va-arg packs or
+       va_arg_pack_len when the inlined call stmt requires pack
+       expansion itself.
+       * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
+
+2017-03-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR sanitizer/78158
+       * tsan.c (instrument_builtin_call): If the memory model argument
+       is not a constant, assume it is valid.
+
+       PR c/67338
+       * fold-const.c (round_up_loc): Negate divisor in unsigned type to
+       avoid UB.
+
+2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR rtl-optimization/79910
+       * combine.c (can_combine_p): Do not allow combining an I0 or I1
+       if its dest is used by an insn before I2 (other than the combined
+       insns themselves, which are properly handled already).
+
+2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       Revert:
+       2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
+
+       * combine.c (record_used_regs): New static function.
+       (try_combine): Handle situations where there is an additional
+       instruction between I2 and I3 which needs to have a LOG_LINK
+       updated.
+
+       Revert:
+       2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
+
+       * combine.c (try_combine): Delete redundant i1 test.  Call
+       prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
+
+2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+
+       PR target/80083
+       * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
+       alternatives 13/14.
+
+2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/80054
+       * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
+       the optimization if a PHI or any of its arguments is not dominated
+       by the candidate's basis.  Use gphi* rather than gimple* as
+       appropriate.
+       (replace_profitable_candidates): Clean up a gimple* variable that
+       should be a gphi* variable.
+
+2017-03-20  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/52477
+       * doc/extend.texi (attribute constructor): Document present limitation.
+
+2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       PR target/79963
+       * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
+       __POWER9_VECTOR__ #ifdef control, change template definition to
+       use Power9-specific built-in function.
+       (vec_any_eq): Likewise.
+       * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
+       to control outcomes from this test.
+       (vector_ae_<mode>p): For VEC_F modes, likewise.
+
+2017-03-20  Ian Lance Taylor  <iant@google.com>
+
+       * config/i386/i386.c (ix86_function_regparm): Save an extra
+       register for -fsplit-stack with DECL_STATIC_CHAIN.
+
+2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
+
+       PR target/79912
+       * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
+       (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
+
+2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
+
+       * config/riscv/riscv.c (riscv_print_operand): Use "fence
+       iorw,ow".
+       * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
+       iorw,iorw".
+
+2017-03-20  Marek Polacek  <polacek@redhat.com>
+
+       PR sanitizer/80063
+       * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
+
+2017-03-20  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80113
+       * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
+       allocate extra SSA name for PHI def.
+       (add_close_phis_to_outer_loops): Likewise.
+       (add_close_phis_to_merge_points): Likewise.
+       (copy_loop_close_phi_args): Likewise.
+       (copy_cond_phi_nodes): Likewise.
+
+2017-03-20  Martin Liska  <mliska@suse.cz>
+
+       PR middle-end/79753
+       * tree-chkp.c (chkp_build_returned_bound): Do not build
+       returned bounds for a LHS that's not a BOUNDED_P type.
+
+2017-03-20  Martin Liska  <mliska@suse.cz>
+
+       PR target/79769
+       PR target/79770
+       * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
+       COMPLEX_CST and VECTOR_CST.
+
+2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       PR target/78857
+       * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
+       target operand.  A new splitter adds the clobber statement in case
+       the target operand is dead anyway.
+
+2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer 
+       to age-old versions of binutils and glibc.
+
+2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
+
+2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/contrib.texi (Contributors): Add Segher Boessenkool.
+
+2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
+       
+       * doc/install.texi (Specific) <arm-*-eabi>: Remove old
+       requirement for binutils 2.13.
+
+2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
+
+       * combine.c (try_combine): Delete redundant i1 test.  Call
+       prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
+
+2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
+
+       * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
+       riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
+       contents.
+       <riscv64-*-elf>: Re-arrange section
+       <riscv32-*-elf>: Add a note about requiring binutils 2.28.
+       <riscv32-*-linux>: Likewise.
+       <riscv64-*-elf>: Likewise
+       <riscv64-*-linux>: Likewise.
+
+2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/80052
+       * aarch64.opt(verbose-cost-dump): Fix typo.
+
+2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
+
+       PR target/79951
+       * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
+       for VECTOR_UNIT_VSX_P (<MODE>mode) too.
+
+2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
+
+       * reload.c (find_reloads): When reloading a nonoffsettable address,
+       use RELOAD_OTHER for it and its address reloads.
+
+       PR rtl-optimization/79910
+       * combine.c (record_used_regs): New static function.
+       (try_combine): Handle situations where there is an additional
+       instruction between I2 and I3 which needs to have a LOG_LINK
+       updated.
+
+2017-03-17  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/71437
+       * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
+       conditional in the hash table first.
+       (vrp_dom_walker::before_dom_children): Extract condition from
+       ASSERT_EXPR.  Record condition, its inverion and any implied
+       conditions as well.
+
+2017-03-17  Marek Polacek  <polacek@redhat.com>
+           Markus Trippelsdorf  <markus@trippelsdorf.de>
+
+       PR tree-optimization/80079
+       * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
+       m_stores_head.
+
+2017-03-17  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/80075
+       * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
+       Properly verify the LHS before the RHS possibly claims to be
+       handled.
+       (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
+       do not throw.
+
+2017-03-17  Martin Jambor  <mjambor@suse.cz>
+
+       * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
+       (List of -O2 options): Likewise.
+       (-fipa-bit-cp): Replace "ipa" with "interprocedural."
+       (-fipa-vrp) New.
+
+2017-03-17  Tom de Vries  <tom@codesourcery.com>
+
+       * gcov-dump.c (print_usage): Print bug_report_url.
+
+2017-03-17  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/80050
+       * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
+       (parser::peek): Likewise.
+
+2017-03-17  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80048
+       * sese.c (free_sese_info): Properly release rename_map and
+       copied_bb_map elements.
+
+2017-03-16  Alexandre Oliva <aoliva@redhat.com>
+
+       * gimple-ssa-store-merging.c (struct imm_store_chain_info):
+       Add linked-list forward and backlinks.  Insert on
+       construction, remove on destruction.
+       (class pass_store_merging): Add m_stores_head field.
+       (pass_store_merging::terminate_and_process_all_chains):
+       Iterate over m_stores_head list.
+       (pass_store_merging::terminate_all_aliasing_chains):
+       Likewise.
+       (pass_store_merging::execute): Check for debug stmts first.
+       Push new chains onto the m_stores_head stack.
+
+2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/71294
+       * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
+       SPLAT operation on ISA 2.07 64-bit systems that have direct move,
+       but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
+
+2017-03-16  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/71437
+       * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
+       member function.  Implementation moved into after_dom_children
+       member function and into the threader's thread_outgoing_edges
+       function.
+       (dom_opt_dom_walker::after_dom_children): Simplify by moving
+       some code into new thread_outgoing_edges.
+       * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
+       definition.  Simplify marker handling (do it here).   Assume we always
+       have the available expression and the const/copies tables.
+       (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
+       and tree-vrp.c
+       * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
+       * tree-vrp.c (equiv_stack): No longer file scoped.
+       (vrp_dom_walker): New class.
+       (vrp_dom_walker::before_dom_children): New member function.
+       (vrp_dom_walker::after_dom_children): Likewise.
+       (identify_jump_threads):  Setup domwalker.  Use it rather than
+       walking edges in a random order by hand.  Simplify setup/finalization.
+       (finalize_jump_threads): Remove.
+       (vrp_finalize): Do not call identify_jump_threads here.
+       (execute_vrp): Do it here instead and call thread_through_all_blocks
+       here too.
+
+       PR tree-optimization/71437
+       * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
+       callers changed.
+       (simplify_stmt_for_jump_threading): Add basic_block argument.  All
+       callers changed.
+       (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
+       (dom_opt_dom_walker::thread_across_edge): Remove
+       handle_dominating_asserts argument.  All callers changed.
+       (record_temporary_equivalences_from_stmts_at_dest): Corresponding
+       changes.  Remove calls to lhs_of_dominating_assert.  Other
+       uses of handle_dominating_asserts turn into unconditional code
+       (simplify_control_stmt_condition_1): Likewise.
+       (simplify_control_stmt_condition): Likewise.
+       (thread_through_normal_block, thread_across_edge): Likewise.
+       * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
+       * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
+       object if it is not an SSA_NAME.
+       (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
+       before calling into the VRP specific simplifiers.
+       (identify_jump_threads): Remove handle_dominating_asserts
+       argument.
+
+2017-03-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/79886
+       * tree-diagnostic.c (default_tree_printer): No longer static.
+       * tree-diagnostic.h (default_tree_printer): New prototype.
+
+2017-03-16  Tamar Christina  <tamar.christina@arm.com>
+
+       * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
+       Change ins into fmov.
+
+2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
+       * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
+       Use h_con constraint for operand 1.
+       (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
+       (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
+
+2017-03-15  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/71437
+       * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
+       (record_temporary_equivalences): Use it.
+
+       PR tree-optimization/71437
+       * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
+       tree-ssa-scopedtables.
+       (lookup_avail_expr, build_and_record_new_cond): Likewise.
+       (record_conditions, record_cond, vuse_eq): Likewise.
+       (record_edge_info): Adjust to API tweak of record_conditions.
+       (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
+       (record_temporary_equivalences, optimize_stmt): Likewise.
+       (eliminate_redundant_computations): Likewise.
+       (record_equivalences_from_stmt): Likewise.
+       * tree-ssa-scopedtables.c: Include options.h and params.h.
+       (vuse_eq): New function, moved from tree-ssa-dom.c
+       (build_and_record_new_cond): Likewise.
+       (record_conditions): Likewise.  Accept vector of conditions rather
+       than edge_equivalence structure for first argument.
+       for the first argument.
+       (avail_exprs_stack::lookup_avail_expr): New member function, moved
+       from tree-ssa-dom.c.
+       (avail_exprs_stack::record_cond): Likewise.
+       * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
+       from tree-ssa-dom.c.
+       (avail_exprs_stack): Add new member functions lookup_avail_expr
+       and record_cond.
+       (record_conditions): Declare.
+
+2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/80017
+       * lra-constraints.c (process_alt_operands): Increase reject for
+       reloading an input/output operand.
+
+2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/79038
+       * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
+       insns to convert from signed/unsigned char/short to IEEE 128-bit
+       floating point.
+       (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
+
+2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/80019
+       * config/i386/i386.c (ix86_vector_duplicate_value): Create
+       subreg of inner mode for values already in registers.
+
+2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
+
+       * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
+       iteration reg is used after the loop.
+
+2017-03-14  Martin Sebor  <msebor@redhat.com>
+
+       PR tree-optimization/79800
+       * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
+       precision in negative-positive range.
+       (format_floating): Call non-const overload with adjusted precision.
+
+2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/79947
+       * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
+       -mpowerpc-gfxopt.
+
+2017-03-14  Martin Sebor  <msebor@redhat.com>
+
+       PR middle-end/80020
+       * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
+       * builtins.def (aligned_alloc): Use it.
+
+       PR c/79936
+       * Makefile.in (GTFILES): Add calls.c.
+       * calls.c: Include "gt-calls.h".
+
+2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR rtl-optimization/79728
+       * regs.h (struct target_regs): New field
+       x_contains_allocatable_regs_of_mode.
+       (contains_allocatable_regs_of_mode): New macro.
+       * reginfo.c (init_reg_sets_1): Initialize it, and change
+       contains_reg_of_mode so it includes global regs as well.
+       * reload.c (push_reload): Use contains_allocatable_regs_of_mode
+       rather than contains_regs_of_mode.
+
+2017-03-14  Martin Liska  <mliska@suse.cz>
+
+       * doc/invoke.texi: Document options that can't be combined with
+       -fcheck-pointer-bounds.
+
+2017-03-14  Martin Liska  <mliska@suse.cz>
+
+       PR middle-end/79831
+       * doc/invoke.texi (-Wchkp): Document the option.
+
+2017-03-14  Martin Liska  <mliska@suse.cz>
+
+       * Makefile.in: Install gcov-dump.
+
+2017-03-14  Martin Liska  <mliska@suse.cz>
+
+       * multiple_target.c (expand_target_clones): Bail out for
+       an invalid attribute.
+
+2017-03-14  Richard Biener  <rguenther@suse.de>
+
+       * alias.c (struct alias_set_entry): Pack properly.
+       * cfgloop.h (struct loop): Likewise.
+       * cse.c (struct set): Likewise.
+       * ipa-utils.c (struct searchc_env): Likewise.
+       * loop-invariant.c (struct invariant): Likewise.
+       * lra-remat.c (struct cand): Likewise.
+       * recog.c (struct change_t): Likewise.
+       * rtl.h (struct address_info): Likewise.
+       * symbol-summary.h (function_summary): Likewise.
+       * tree-loop-distribution.c (struct partition): Likewise.
+       * tree-object-size.c (struct object_size_info): Likewise.
+       * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
+       * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
+       * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
+       * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
+       * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
+       * tree-vectorizer.h (struct _loop_vec_info): Likewise.
+       (struct _stmt_vec_info): Likewise.
+
+2017-03-14  Martin Liska  <mliska@suse.cz>
+
+       PR target/79892
+       * multiple_target.c (create_dispatcher_calls): Check that
+       a target can create a function dispatcher.
+
 2017-03-14  Martin Liska  <mliska@suse.cz>
 
        PR lto/66295