+2017-12-19 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (legitimate_scaled_address_p): Clean
+ fall-through warning.
+ (arc_compute_frame_size): Remove unused variables.
+ (arc_print_operand): Fix fprintif format.
+ (arc_can_follow_jump): Clean fall-through warning.
+
+2017-12-19 Marek Polacek <polacek@redhat.com>
+
+ PR c++/83489
+ * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
+ on an error node.
+
+2017-12-19 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (overriderregs): New variable.
+ (arc_override_options): Track fixed/call saved/call options.
+ (arc_conditional_register_usage): Check against overrideregs
+ variable whenever we change register properties.
+
+2017-12-19 Nathan Sidwell <nathan@acm.org>
+
+ * opts.c (finish_options): Don't prefix dump_base_name if it
+ already contains directories.
+
+2017-12-19 Martin Liska <mliska@suse.cz>
+
+ PR rtl-optimization/82675
+ * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
+ more element in sbitmap.
+
+2017-12-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * gimplify.c (gimplify_expr): Use error_operand_p.
+
+2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ PR target/83387
+ * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
+ multilib.
+
+2017-12-19 Daniel Cederman <cederman@gaisler.com>
+
+ * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
+ the jump is to a label.
+
+2017-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/83444
+ * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
+ character loads.
+
+ PR ipa/82801
+ PR ipa/83346
+ * ipa-inline.c (flatten_remove_node_hook): New function.
+ (ipa_inline): Keep only nodes with flatten attribute at the end of
+ the array in the order from ipa_reverse_postorder, only walk that
+ portion of array for flattening, if there is more than one such
+ node, temporarily register a removal hook and ignore removed nodes.
+
+ PR tree-optimization/80631
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
+ induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
+ IFN_REDUC_MAX or IFN_REDUC_MIN.
+
+2017-12-18 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (record_equivalences_from_phis): Do not
+ record symbolic equivalences from backedges in the CFG.
+
+ Revert
+ 2017-11-19 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
+ of degenerates resulting from ignoring an edge.
+
+2017-12-18 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/83373
+ PR tree-optimization/78450
+ * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
+ (handle_builtin_strlen): Call it.
+
+2017-12-18 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR rtl-optimization/83424
+ * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
+
+2017-12-18 Marek Polacek <polacek@redhat.com>
+
+ PR middle-end/83463
+ * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
+ Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
+ values.
+
+2017-12-18 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
+ (umaddsidi4, umaddsidi_split): Likewise.
+
+2017-12-18 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (arc_legitimate_constant_p): Always check all
+ constants.
+
+2017-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ PR target/83420
+ * config/s390/s390.c (s390_option_override): Avoid strncpy.
+
+2017-12-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/81877
+ * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
+ (outermost_indep_loop): Adjust.
+ (ref_indep_loop_p_1): Likewise. Remove safelen handling again.
+ (can_sm_ref_p): Adjust.
+
+2017-12-18 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/77291
+ * tree.c (array_at_struct_end_p): Return true if the underlying
+ object has space for at least one element in excess of what
+ the array domain specifies.
+
+2017-12-17 Sandra Loosemore <sandra@codesourcery.com>
+
+ * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
+ example to avoid overfull hbox.
+ * doc/invoke.texi (Option Summary): Add missing @gol.
+ (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid
+ overfull hbox.
+
+2017-12-17 Sandra Loosemore <sandra@codesourcery.com>
+ Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
+ to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
+ (AArch64 Options): Document -mverbose-cost-dump.
+ (ARM Options): Likewise, plus -mflip-thumb.
+
+2017-12-17 Martin Sebor <msebor@redhat.com>
+
+ PR bootstrap/83446
+ * gimple-ssa-warn-restrict.c
+ (builtin_memref::offset_out_of_bounds): Correct the handling of
+ anti-ranges.
+
+2017-12-17 Sandra Loosemore <sandra@codesourcery.com>
+
+ * doc/invoke.texi (ARC Options): Add missing -mlra entry.
+
+2017-12-17 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
+
+2017-12-17 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
+ latencies.
+
+2017-12-16 Sandra Loosemore <sandra@codesourcery.com>
+
+ * doc/invoke.texi: Fix some typos.
+
+2017-12-16 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/78918
+ * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
+ * builtins.c (check_sizes): Rename...
+ (check_access): ...to this. Rename function arguments for clarity.
+ (check_memop_sizes): Adjust names.
+ (expand_builtin_memchr, expand_builtin_memcpy): Same.
+ (expand_builtin_memmove, expand_builtin_mempcpy): Same.
+ (expand_builtin_strcat, expand_builtin_stpncpy): Same.
+ (check_strncat_sizes, expand_builtin_strncat): Same.
+ (expand_builtin_strncpy, expand_builtin_memset): Same.
+ (expand_builtin_bzero, expand_builtin_memcmp): Same.
+ (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
+ (maybe_emit_sprintf_chk_warning): Same.
+ (expand_builtin_strcpy): Adjust.
+ (expand_builtin_stpcpy): Same.
+ (expand_builtin_with_bounds): Detect out-of-bounds accesses
+ in pointer-checking forms of memcpy, memmove, and mempcpy.
+ (gcall_to_tree_minimal, max_object_size): Define new functions.
+ * builtins.h (max_object_size): Declare.
+ * calls.c (alloc_max_size): Call max_object_size instead of
+ hardcoding ssizetype limit.
+ (get_size_range): Handle new argument.
+ * calls.h (get_size_range): Add a new argument.
+ * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
+ * doc/invoke.texi (-Wrestrict): Adjust, add example.
+ * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
+ operations.
+ (gimple_fold_builtin_memory_chk): Same.
+ (gimple_fold_builtin_stxcpy_chk): New function.
+ * gimple-ssa-warn-restrict.c: New source.
+ * gimple-ssa-warn-restrict.h: New header.
+ * gimple.c (gimple_build_call_from_tree): Propagate location.
+ * passes.def (pass_warn_restrict): Add new pass.
+ * tree-pass.h (make_pass_warn_restrict): Declare.
+ * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
+ operations.
+ (handle_builtin_strcat): Same.
+ (strlen_optimize_stmt): Rename...
+ (strlen_check_and_optimize_stmt): ...to this. Handle strncat,
+ stpncpy, strncpy, and their checking forms.
+
+2017-12-16 Jan Hubicka <hubicka@ucw.cz>
+
+ PR rtl-optimization/82849
+ * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
+ and get_max_loop_iterations_int.
+
+2017-12-16 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
+ (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
+ size as a poly_uint64.
+ (mode_for_vector, mode_for_int_vector): Take the number of vector
+ elements as a poly_uint64.
+ * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
+ size as a poly_uint64.
+ (mode_for_vector, mode_for_int_vector): Take the number of vector
+ elements as a poly_uint64.
+
+2017-12-16 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * machmode.h (MACRO_MODE): New macro.
+ * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
+ * targhooks.c (default_libcall_value, default_secondary_reload)
+ (default_memory_move_cost, default_register_move_cost)
+ (default_class_max_nregs): Likewise.
+
+2017-12-16 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * doc/sourcebuild.texi: Document IN_TARGET_CODE.
+ * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
+ target C file.
+ * genautomata.c (main): Likewise.
+ * genconditions.c (write_header): Likewise.
+ * genemit.c (main): Likewise.
+ * genextract.c (print_header): Likewise.
+ * genopinit.c (main): Likewise.
+ * genoutput.c (output_prologue): Likewise.
+ * genpeep.c (main): Likewise.
+ * genpreds.c (write_insn_preds_c): Likewise.
+ * genrecog.c (writer_header): Likewise.
+ * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
+ * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
+ * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
+ * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
+ * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
+ * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
+ * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
+ * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
+ * config/arc/arc.c (IN_TARGET_CODE): Likewise.
+ * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
+ * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
+ * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
+ * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
+ * config/arm/arm.c (IN_TARGET_CODE): Likewise.
+ * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
+ * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
+ * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
+ * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
+ * config/avr/avr.c (IN_TARGET_CODE): Likewise.
+ * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
+ * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
+ * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
+ * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
+ * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
+ * config/cris/cris.c (IN_TARGET_CODE): Likewise.
+ * config/darwin.c (IN_TARGET_CODE): Likewise.
+ * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
+ * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
+ * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
+ * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
+ * config/frv/frv.c (IN_TARGET_CODE): Likewise.
+ * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
+ * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
+ * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
+ * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
+ * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
+ * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
+ * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
+ * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
+ * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
+ * config/i386/i386.c (IN_TARGET_CODE): Likewise.
+ * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
+ * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
+ * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
+ * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
+ * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
+ * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
+ * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
+ * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
+ * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
+ * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
+ * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
+ * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
+ * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
+ * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
+ * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
+ * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
+ * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
+ * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
+ * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
+ * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
+ * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
+ * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
+ * config/mips/mips.c (IN_TARGET_CODE): Likewise.
+ * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
+ * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
+ * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
+ * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
+ * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
+ * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
+ * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
+ * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
+ * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
+ * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
+ * config/pa/pa.c (IN_TARGET_CODE): Likewise.
+ * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
+ * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
+ * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
+ * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
+ * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
+ * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
+ * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
+ * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
+ * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
+ * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
+ * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
+ * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
+ * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
+ * config/rx/rx.c (IN_TARGET_CODE): Likewise.
+ * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
+ * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
+ * config/s390/s390.c (IN_TARGET_CODE): Likewise.
+ * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
+ * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
+ * config/sh/sh.c (IN_TARGET_CODE): Likewise.
+ * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
+ * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
+ * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
+ * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
+ * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
+ * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
+ * config/spu/spu.c (IN_TARGET_CODE): Likewise.
+ * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
+ * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
+ * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
+ * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
+ * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
+ * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
+ * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
+ * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
+ * config/v850/v850.c (IN_TARGET_CODE): Likewise.
+ * config/vax/vax.c (IN_TARGET_CODE): Likewise.
+ * config/visium/visium.c (IN_TARGET_CODE): Likewise.
+ * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
+ * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
+ * config/vms/vms.c (IN_TARGET_CODE): Likewise.
+ * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
+
+2017-12-16 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
+ checks for MEM_REF.
+
+2017-12-16 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * doc/generic.texi (VEC_SERIES_EXPR): Document.
+ * doc/md.texi (vec_series@var{m}): Document.
+ * tree.def (VEC_SERIES_EXPR): New tree code.
+ * tree.h (build_vec_series): Declare.
+ * tree.c (build_vec_series): New function.
+ * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ * gimple-pretty-print.c (dump_binary_rhs): Likewise.
+ * tree-inline.c (estimate_operator_cost): Likewise.
+ * expr.c (expand_expr_real_2): Likewise.
+ * optabs-tree.c (optab_for_tree_code): Likewise.
+ * tree-cfg.c (verify_gimple_assign_binary): Likewise.
+ * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
+ * expmed.c (make_tree): Handle VEC_SERIES.
+ * optabs.def (vec_series_optab): New optab.
+ * optabs.h (expand_vec_series_expr): Declare.
+ * optabs.c (expand_vec_series_expr): New function.
+ * tree-vect-generic.c (expand_vector_operations_1): Check that
+ the operands also have vector type.
+
+2017-12-16 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hawyard@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
+ (VEC_COND_EXPR): Add missing @tindex.
+ * doc/md.texi (vec_duplicate@var{m}): Document.
+ * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
+ * tree.c (build_vector_from_val): Add stubbed-out handling of
+ variable-length vectors, using VEC_DUPLICATE_EXPR.
+ (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
+ * cfgexpand.c (expand_debug_expr): Likewise.
+ * tree-cfg.c (verify_gimple_assign_unary): Likewise.
+ * tree-inline.c (estimate_operator_cost): Likewise.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
+ * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
+ (test_vec_duplicate_folding): New function.
+ (fold_const_c_tests): Call it.
+ * optabs.def (vec_duplicate_optab): New optab.
+ * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
+ * optabs.h (expand_vector_broadcast): Declare.
+ * optabs.c (expand_vector_broadcast): Make non-static. Try using
+ vec_duplicate_optab.
+ * expr.c (store_constructor): Try using vec_duplicate_optab for
+ uniform vectors.
+ (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
+
+2017-12-15 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR target/83358
+ * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
+ div/mod latencies a bit.
+
+2017-12-15 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/36550
+ * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
+ (mark_threaded_blocks): Rewrite code to avoid block copying when
+ optimizing for size. Don't pessimize blocks which will be
+ copied, but all the statements will be dead.
+
+2017-12-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR tree-optimization/81165
+ * tree-ssa-threadupdate.c (uses_in_bb): New.
+ (estimate_threading_killed_stmts): New.
+ * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
+ * tree-ssa-threadedge.c
+ (record_temporary_equivalences_from_stmts_at_dest): Expand limit
+ when its hit.
+
+2017-12-15 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/83410
+ * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
+ threads when parallelizing loops.
+
+2017-12-15 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-core.h (struct attribute_spec): Swap affects_type_identity and
+ handler fields.
+ * config/alpha/alpha.c (vms_attribute_table): Swap
+ affects_type_identity and handler fields, adjust comments.
+ * config/mips/mips.c (mips_attribute_table): Likewise.
+ * config/visium/visium.c (visium_attribute_table): Likewise.
+ * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
+ * config/microblaze/microblaze.c (microblaze_attribute_table):
+ Likewise.
+ * config/spu/spu.c (spu_attribute_table): Likewise.
+ * config/mcore/mcore.c (mcore_attribute_table): Likewise.
+ * config/arc/arc.c (arc_attribute_table): Likewise.
+ * config/m68k/m68k.c (m68k_attribute_table): Likewise.
+ * config/v850/v850.c (v850_handle_interrupt_attribute,
+ v850_handle_data_area_attribute): Formatting fixes.
+ (v850_attribute_table): Swap affects_type_identity and handler
+ fields, adjust comments.
+ * config/m32r/m32r.c (m32r_attribute_table): Likewise.
+ * config/arm/arm.c (arm_attribute_table): Likewise.
+ * config/avr/avr.c (avr_attribute_table): Likewise.
+ * config/s390/s390.c (s390_attribute_table): Likewise.
+ * config/sh/sh.c (sh_attribute_table): Likewise.
+ * config/i386/i386.c (ix86_handle_cconv_attribute,
+ ix86_handle_callee_pop_aggregate_return): Formatting fixes.
+ (ix86_attribute_table): Swap affects_type_identity and handler
+ fields, adjust comments.
+ * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
+ * config/sparc/sparc.c (sparc_attribute_table): Likewise.
+ * config/m32c/m32c.c (m32c_attribute_table): Likewise.
+ * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
+ * config/ia64/ia64.c (ia64_attribute_table): Likewise.
+ * config/msp430/msp430.c (msp430_attribute_table): Likewise.
+ * config/rx/rx.c (rx_attribute_table): Likewise.
+ * config/cr16/cr16.c (cr16_attribute_table): Likewise.
+ * config/h8300/h8300.c (h8300_attribute_table): Likewise.
+ * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
+ * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
+ * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
+ * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
+ * config/bfin/bfin.c (bfin_attribute_table): Likewise.
+ * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
+ * config/rl78/rl78.c (rl78_attribute_table): Likewise.
+ * config/nds32/nds32.c (nds32_attribute_table): Likewise.
+ * doc/plugins.texi (user_attr): Likewise. Add NULL for
+ exclude.
+ * attribs.c (empty_attribute_table): Swap affects_type_identity and
+ handler fields.
+ (register_scoped_attributes, decl_attributes): Formatting fixes.
+
+ PR tree-optimization/83269
+ * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
+ subtraction in arg0's type if type is signed and arg0 is unsigned.
+ Formatting fix.
+
+ PR sanitizer/81281
+ * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
+ convert? on @0 instead of convert. Check type of @1, not @0.
+ ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
+ convert? on @0 instead of convert. Check type of @1, not @0.
+ ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
+ only optimize if either both @1 and @2 types are narrower
+ precision, or both are wider or equal precision, and in the former
+ case only if both have undefined overflow.
+
+2017-12-15 Richard Biener <rguenther@suse.de>
+
+ PR lto/83388
+ * internal-fn.def (IFN_NOP): Add.
+ * internal-fn.c (expand_NOP): Do nothing.
+ * lto-streamer-in.c (input_function): Instead of removing
+ sanitizer calls replace them with IFN_NOP calls.
+
+2017-12-15 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * dse.c (store_info, read_info_type): Replace begin and end with
+ offset and width.
+ (print_range): New function.
+ (set_all_positions_unneeded, any_positions_needed_p)
+ (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
+ accordingly.
+ (record_store): Likewise. Optimize the case in which all positions
+ are unneeded.
+ (get_stored_val): Replace read_begin and read_end with read_offset
+ and read_width.
+ (replace_read): Update call accordingly.
+
+2017-12-15 Bin Cheng <bin.cheng@arm.com>
+
+ * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
+ (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
+ (loop_cand::loop_cand): Initialize above members.
+ (loop_cand::supported_operations): Delete.
+ (loop_cand::can_interchange_p): Inline above function.
+ (loop_cand::classify_simple_reduction): Record number of constant
+ initialized simple reductions.
+ (should_interchange_loops): New parameters. Check stmt cost of loops
+ to be interchange.
+ (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
+ Update call to should_interchange_loops.
+ (should_interchange_loop_nest): Update call to
+ should_interchange_loops.
+
+2017-12-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/66488
+ * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
+ * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
+ * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
+
+2017-12-15 Julia Koval <julia.koval@intel.com>
+
+ * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
+ __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
+ * config/i386/sse.md (vaesenclast_<mode>): New pattern.
+ * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
+ _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
+
+2017-12-15 Julia Koval <julia.koval@intel.com>
+
+ * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
+ __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
+ * config/i386/sse.md (vaesenc_<mode>): New pattern.
+ * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
+ _mm_aesenc_epi128): New intrinsics.
+
+2017-12-15 Julia Koval <julia.koval@intel.com>
+
+ * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
+ __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
+ * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
+ * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
+ _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
+
+2017-12-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * gimple-ssa-strength-reduction.c (analyze_increments):
+ Distinguish replacement costs for constant strides from those for
+ unknown strides.
+
+2017-12-14 Jakub Jelinek <jakub@redhat.com>
+
+ * var-tracking.c (variable_tracking_main_1): Formatting fix.
+
+2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * doc/invoke.texi: Document -Wcast-function-type.
+ * recog.h (stored_funcptr): Change signature.
+ * tree-dump.c (dump_node): Avoid warning.
+ * typed-splay-tree.h (typed_splay_tree): Avoid warning.
+
+2017-12-14 Qing Zhao <qing.zhao@oracle.com>
+
+ PR middle_end/79538
+ * gimple-fold.c (get_range_strlen): Add the handling of non-member
+ array.
+
+2017-12-14 David Malcolm <dmalcolm@redhat.com>
+
+ PR tree-optimization/83312
+ * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
+ * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
+ "val" param, and to cope with arbitrary basic blocks.
+ (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
+ handle NULL_TREE for "val", dropping "bb" param.
+ (find_taken_edge_switch_expr): Make "switch_stmt" param const and
+ drop "bb" param. Handle NULL_TREE for "val".
+ (find_case_label_for_value): Make "switch_stmt" param const.
+ * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
+ of dom_walker.
+ (vrp_prop::check_all_array_refs): Reimplement as...
+ (check_array_bounds_dom_walker::before_dom_children): ...this new
+ vfunc. Replace linear search through BB block list, excluding
+ those with non-executable in-edges via dominator walk.
+
+2017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/arm/arm.opt (mverbose-cost-dump): New option.
+ * config/arm/arm.c (arm_rtx_costs): Use it.
+
2017-12-14 Andreas Schwab <schwab@linux-m68k.org>
PR bootstrap/83396
* combine.c (combine_instructions): Don't combine in unreachable
basic blocks.
-2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
+2017-10-02 Peter Bergner <bergner@vnet.ibm.com>
PR target/80210
* config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite