[ARC][COMMITTED] Clean up build warnings.
[gcc.git] / gcc / ChangeLog
index 420d84b38e066b05679fbf31842a0966c210af1f..caa6d51100cb9cb9f40e0a77f14a4259f845f6af 100644 (file)
@@ -1,3 +1,792 @@
+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
+       * reload1.c (emit_input_reload_insns): Skip debug markers.
+
+2017-12-14  Alexandre Oliva <aoliva@redhat.com>
+
+       * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
+       for its nop_endbr.
+
+       PR bootstrap/83396
+       * config/arc/arc.c (hwloop_optimize): Skip debug insns.
+       * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
+       * config/sh/sh.c: Skip debug insns besides notes.
+       * config/sh/sh.md: Likewise.
+       * config/sh/sh_treg_combine.cc: Likewise.
+       * config/sh/sync.md: Likewise.
+
+2017-12-14  Tom de Vries  <tom@codesourcery.com>
+
+       * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
+       Add item for weak_undefined.
+
+2017-12-14  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/67842
+       * sese.h (bb_in_region): Remove #if 0'ed code.
+
+2017-12-14  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/83326
+       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
+       may_be_zero parameter and handle it by not marking the first
+       peeled copy as not exiting the loop.
+       (try_peel_loop): Likewise.
+       (canonicalize_loop_induction_variables): Use number_of_iterations_exit
+       to handle the case of constant or zero iterations and perform
+       loop header copying on-the-fly.
+
+2017-12-14  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/83418
+       * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
+       Instead of asserting we don't get unfolded comparisons deal with
+       them.
+
+2017-12-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/83396
+       * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
+       basic blocks.  Assert debug bind insns don't appear outside of bbs,
+       don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
+       bb.  Simplify.
+
+       PR tree-optimization/83198
+       * gimple-ssa-sprintf.c (format_floating): Set type solely based on
+       dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
+       value if arg is a REAL_CST with incompatible type.
+
+2017-12-14  Sudakshina Das  <sudi.das@arm.com>
+           Bin Cheng  <bin.cheng@arm.com>
+
+       PR target/81228
+       * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
+       to CCFPEmode.
+       * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
+       LTGT.
+
+2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
+       cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
+
+2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+
+       * poly-int.h: New file.
+       * poly-int-types.h: Likewise.
+       * coretypes.h: Include them.
+       (POLY_INT_CONVERSION): Define.
+       * target.def (estimated_poly_value): New hook.
+       * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
+       * doc/tm.texi: Regenerate.
+       * doc/poly-int.texi: New file.
+       * doc/gccint.texi: Include it.
+       * doc/rtl.texi: Describe restrictions on subreg modes.
+       * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
+       * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
+       (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
+       * targhooks.h (default_estimated_poly_value): Declare.
+       * targhooks.c (default_estimated_poly_value): New function.
+       * target.h (estimated_poly_value): Likewise.
+       * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
+       (wi::unary_traits): Delete.
+       (wi::binary_traits::signed_shift_result_type): Define for
+       offset_int << HOST_WIDE_INT, etc.
+       (generic_wide_int::operator <<=): Define for all types and use
+       wi::lshift instead of <<.
+       (wi::hwi_with_prec): Add a default constructor.
+       (wi::ints_for): New class.
+       (operator <<): Define for all wide-int types.
+       (operator /): New function.
+       (operator %): Likewise.
+       * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
+       (ASSERT_MAYBE_NE_AT): New macros.
+
+2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+            Dominik Vogt  <vogt@linux.vnet.ibm.com>
+
+       PR middle-end/78468
+       * emit-rtl.c (init_emit): Remove ??? comment.
+       * explow.c (get_dynamic_stack_size): Take known alignment of stack
+       pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
+       * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
+       alignment of 3 virtual registers to BITS_PER_WORD.
+
+       * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
+
+2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
+       * config/rs6000/rs6000.c (cpu_supports_info): Use it.
+
+2017-12-13  Alexandre Oliva <aoliva@redhat.com>
+
+       PR bootstrap/83396
+       * reload1.c (eliminate_regs_in_insn): Skip debug markers.
+
 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
 
        * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
        * 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