revert: cygwin.h (STARTFILE_SPEC): Explicitly search sysroot/usr/lib/32api for additi...
[gcc.git] / gcc / ChangeLog
index ab5d2e9266253397b8ab652d08766d6f10902a3a..274155fe4915ad35c14441f7978dd376351875bb 100644 (file)
+2016-06-09 Jonathan Yong  <10walls@gmail.com>
+
+       Revert:
+       2015-09-21  Jonathan Yong  <10walls@gmail.com>
+        * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
+        sysroot/usr/lib/32api for additional win32 libraries,
+        fixes failing Cygwin bootstrapping.
+
+2016-06-09  Marcin BaczyƄski <marbacz@gmail.com>
+
+       * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
+       delete.
+
+2016-06-09  David Malcolm  <dmalcolm@redhat.com>
+
+       PR bootstrap/71471
+       * pretty-print.c (pp_indent): Specify that %p is printed in a
+       host-dependent manner.
+       (test_pp_format): Remove the test for %p.
+
+2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * config/mips/mips.c (mips_output_jump): Fix formatting.
+
+2016-06-09  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71462
+       * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
+       removed blocks.
+
+2016-06-09  Martin Liska  <mliska@suse.cz>
+
+       * predict.c (dump_prediction): Add new argument.
+       (enum predictor_reason): New enum.
+       (struct predictor_hash): New struct.
+       (predictor_hash::hash): New function.
+       (predictor_hash::equal): Likewise.
+       (not_removed_prediction_p): New function.
+       (prune_predictions_for_bb): Likewise.
+       (combine_predictions_for_bb): Prune predictions.
+
+2016-06-09  Martin Liska  <mliska@suse.cz>
+
+       * predict.c (filter_predictions): New function.
+       (remove_predictions_associated_with_edge): Use the filter
+       function.
+       (equal_edge_p): New function.
+
+2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
+
+       * doc/invoke.texi (ARM Options): Use lexicographical ordering.
+       Correct usage of @samp vs @option, add @samp where appropriate.
+       Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
+       Add armv6s-m and document it, as it is no official ARM name.
+
+2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * ifcvt.c (struct noce_if_info): Add transform_name field.
+       (noce_try_move): Set if_info->transform_name to the function name.
+       (noce_try_ifelse_collapse): Likewise.
+       (noce_try_store_flag): Likewise.
+       (noce_try_inverse_constants): Likewise.
+       (noce_try_store_flag_constants): Likewise.
+       (noce_try_addcc): Likewise.
+       (noce_try_store_flag_mask): Likewise.
+       (noce_try_cmove): Likewise.
+       (noce_try_cmove_arith): Likewise.
+       (noce_try_minmax): Likewise.
+       (noce_try_abs): Likewise.
+       (noce_try_sign_mask): Likewise.
+       (noce_try_bitop): Likewise.
+       (noce_convert_multiple_sets): Likewise.
+       (noce_process_if_block): Print if_info->transform_name to
+       dump_file if transformation succeeded.
+
+2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/cortex-a57.md (cortex_a57_alu):
+       Handle csel type.
+
+2016-06-08  Martin Sebor  <msebor@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/70507
+       PR c/68120
+       * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
+       BUILT_IN_MUL_OVERFLOW_P): New builtins.
+       * builtins.c: Include gimple-fold.h.
+       (fold_builtin_arith_overflow): Handle
+       BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
+       (fold_builtin_3): Likewise.
+       * doc/extend.texi (Integer Overflow Builtins): Document
+       __builtin_{add,sub,mul}_overflow_p.
+
+2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
+       SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
+
+2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
+       Rewrite, looking one level down for records and arrays.
+
+2016-06-08  David Malcolm  <dmalcolm@redhat.com>
+
+       * pretty-print.c: Include "selftest.h".
+       (pp_format): Fix comment.
+       (identifier_to_locale): Likewise.
+       (selftest::test_basic_printing): New function.
+       (selftest::assert_pp_format): New function.
+       (selftest::test_pp_format): New function.
+       (selftest::pretty_print_c_tests): New function.
+       * selftest-run-tests.c (selftest::run_tests): Call
+       selftest::pretty_print_c_tests.
+       * selftest.h (pretty_print_c_tests): New declaration.
+
+2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * invoke.texi (max-loop-headers-insns): Document.
+       * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
+       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
+       (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
+
+2016-06-08  Richard Biener  <rguenther@suse.de>
+
+       * tree-vect-stmts.c (vectorizable_load): Remove restrictions
+       on strided SLP loads and fall back to scalar loads in case
+       we can't chunk them.
+
+2016-06-08  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71452
+       * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
+       type used for the SSA rewrite has enough precision to cover
+       the dynamic type of the location.
+
+2016-06-08  Jakub Jelinek  <jakub@redhat.com>
+           Richard Biener  <rguenther@suse.de>
+
+       PR c++/71448
+       * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
+       the same as DECL_P (base0) for indirect_base0.  Use equality_code
+       in one further place.
+
+2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * expmed.c (store_bit_field_1): Do not restrict a multiword op0
+       to one word if the field is known to overlap other words.
+       (extract_bit_field_1): Likewise.
+       (store_split_bit_field): Remove compensating code.
+       (extract_split_bit_field): Likewise.
+
+2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR debug/71432
+       PR ada/71413
+       * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
+
+2016-06-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
+       VDQF.
+       * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
+       (arch64_addpv4sf): Delete.
+       (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
+       "gen_aarch64_addpv4sf".
+       * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
+       builtin.
+       (vpadds_f32): Likewise.
+       (vpaddq_f32): Likewise.
+       (vpaddq_f64): Likewise.
+
+2016-06-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
+       VALLF.
+       * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
+       to VALLF.  Rename to "fabd<mode>3".
+       "*fabd_scalar<mode>3): Delete.
+       * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
+       Use builtin.
+       (vabdd_f64): Likewise.
+       (vabd_f32): Likewise.
+       (vabd_f64): Likewise.
+       (vabdq_f32): Likewise.
+       (vabdq_f64): Likewise.
+
+2016-06-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
+       VALLF.
+       * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
+       "aarch64_rsqrts<mode>".
+       * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
+       * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
+       builtin.
+       (vrsqrtsd_f64): Likewise.
+       (vrsqrts_f32): Likewise.
+       (vrsqrts_f64): Likewise.
+       (vrsqrtsq_f32): Likewise.
+       (vrsqrtsq_f64): Likewise.
+
+2016-06-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
+       VALLF.
+       * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
+       "aarch64_rsqrte<mode>".
+       * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
+       * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
+       builtin.
+       (vrsqrted_f64): Likewise.
+       (vrsqrte_f32): Likewise.
+       (vrsqrte_f64): Likewise.
+       (vrsqrteq_f32): Likewise.
+       (vrsqrteq_f64): Likewise.
+
+2016-06-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
+       (ucvtf): Likewise.
+       (fcvtzs): Likewise.
+       (fcvtzu): Likewise.
+       * config/aarch64/aarch64-simd.md
+       (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
+       (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
+       * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
+       Use builtin.
+       (vcvt_n_f32_u32): Likewise.
+       (vcvt_n_s32_f32): Likewise.
+       (vcvt_n_u32_f32): Likewise.
+       (vcvtq_n_f32_s32): Likewise.
+       (vcvtq_n_f32_u32): Likewise.
+       (vcvtq_n_f64_s64): Likewise.
+       (vcvtq_n_f64_u64): Likewise.
+       (vcvtq_n_s32_f32): Likewise.
+       (vcvtq_n_s64_f64): Likewise.
+       (vcvtq_n_u32_f32): Likewise.
+       (vcvtq_n_u64_f64): Likewise.
+       * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
+       (VSDQ_SDI): Likewise.
+       (fcvt_target): Support V4DI, V4SI and V2SI.
+       (FCVT_TARGET): Likewise.
+
+2016-06-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
+       (TYPES_BINOP_SUS): Likewise.
+       (aarch64_simd_builtin_data): Update include file name.
+       (aarch64_builtins): Likewise.
+       * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
+       for conversion between scalar float-point and fixed-point.
+       (ucvtf): Likewise.
+       (fcvtzs): Likewise.
+       (fcvtzu): Likewise.
+       * config/aarch64/aarch64.md
+       (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
+       pattern for conversion between scalar float to fixed-pointer.
+       (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
+       (UNSPEC_FCVTZS): New UNSPEC enumeration.
+       (UNSPEC_FCVTZU): Likewise.
+       (UNSPEC_SCVTF): Likewise.
+       (UNSPEC_UCVTF): Likewise.
+       * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
+       Use builtin.
+       (vcvtd_n_f64_u64): Likewise.
+       (vcvtd_n_s64_f64): Likewise.
+       (vcvtd_n_u64_f64): Likewise.
+       (vcvtd_n_f32_s32): Likewise.
+       (vcvts_n_f32_u32): Likewise.
+       (vcvtd_n_s32_f32): Likewise.
+       (vcvts_n_u32_f32): Likewise.
+       * config/aarch64/iterators.md (fcvt_target): Support integer to float
+       mapping.
+       (FCVT_TARGET): Likewise.
+       (FCVT_FIXED2F): New iterator.
+       (FCVT_F2FIXED): Likewise.
+       (fcvt_fixed_insn): New define_int_attr.
+
+2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
+       some statements was removed.
+
+2016-06-08  Alan Hayward  <alan.hayward@arm.com>
+
+       * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
+       * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
+       (vect_can_advance_ivs_p): likewise.
+       (vect_update_ivs_after_vectorizer): likewise.
+       * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
+       (vect_analyze_scalar_cycles_1): likewise.
+       (vect_analyze_loop_operations): likewise.
+       (report_vect_op): likewise.
+       (vect_is_slp_reduction): likewise.
+       (vect_is_simple_reduction): likewise.
+       (get_initial_def_for_induction): likewise.
+       (vect_transform_loop): likewise.
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
+       (vect_recog_sad_pattern): likewise.
+       (vect_recog_widen_sum_pattern): likewise.
+       (vect_recog_widening_pattern): likewise.
+       (vect_recog_divmod_pattern): likewise.
+       * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
+       (vect_analyze_slp_instance): likewise.
+       (vect_transform_slp_perm_load): likewise.
+       (vect_schedule_slp_instance): likewise.
+
+2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.c (predict_iv_comparison): Mention that heuristics is broken.
+       (return_prediction): PRED_CONST_RETURN predict return as not taken.
+       * predict.def (PRED_CONTINUE): Change hitrate 50->67
+       (PRED_LOOP_BRANCH): Document predictor as broken.
+       (PRED_LOOP_EXIT): Change hitrate 91->92.
+       (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
+       (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
+       (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
+       (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
+       (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
+       (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
+       (PRED_CALL): Chane hitrate 71->67.
+       (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
+       (PRED_GOTO): Document as unused right now.
+       (PRED_CONST_RETURN): Change hitrate 67->69
+       (PRED_NEGATIVE_RETURN): Change hitrate 96->98
+       (PRED_NULL_RETURN): Change hitrate 91->90.
+       (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
+       (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
+       (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
+
+2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
+
+       * config/rs6000/altivec.h: Add __builtin_vec_mul.
+       * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
+       special case Altivec builtin.
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
+       VSX_BUILTIN_VEC_MUL (replaced with special case code).
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
+       code for ALTIVEC_BUILTIN_VEC_MUL.
+       * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
+       for __builtin_vec_mul.
+
+2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
+       -mno-htm.
+
+2016-06-07  David Malcolm  <dmalcolm@redhat.com>
+
+       * spellcheck.c (selftest::test_find_closest_string): New function.
+       (spellcheck_c_tests): Call the above.
+
+2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local
+       variable.
+
+2016-06-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
+       Yv=Yv,C alternatives.
+
+2016-06-07  Richard Biener  <rguenther@suse.de>
+
+       PR c/61564
+       * common.opt (ffast-math): Make Optimization.
+
+2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
+           Prachi Godbole  <prachi.godbole@imgtec.com>
+
+       * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
+       `fabs' and `fneg' type attributes.
+       (p5600_fpu_fabs): Add `fmove' to the comment.
+
+2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * gimple.c: Include builtins.h
+       (gimple_inexpensive_call_p): New function.
+       * gimple.h (gimple_inexpensive_call_p): Declare.
+       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
+       * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
+       fix formatting.
+
+2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
+       (inform, inform_at_rich_loc, inform_n, warning, warning_at,
+       warning_at_rich_loc, warning_n, pedwarn, permerror,
+       permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
+       sorry, fatal_error, internal_error, internal_error_no_backtrace):
+       Use the above.
+
+2016-06-07  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71428
+       * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
+       BIT_FIELD_REF op vs. load.
+
+2016-06-07  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/71423
+       * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
+       for signed ops.
+
+2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
+
+       * config/pa/pa.md (call): Generate indirect long calls to non-local
+       functions on TARGET_64BIT.
+       (call_value): Likewise.
+
+2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
+
+       * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
+       pattern and subsequent splitters.
+       (call_val_reg_64bit_post_reload): Likewise.
+
+2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       PR middle-end/71408
+       * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
+       propagate_op_to_single_use.
+
+2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       PR middle-end/71281
+       * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
+
+2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
+       (enum x86_dirflag_state): New enum.
+       (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
+       (machine_function): Remove needs_cld.
+       (ix86_current_function_needs_cld): Remove.
+       * config/i386/i386.c (ix86_set_func_type): Set
+       ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
+       (ix86_expand_prologue): Do not emit CLD here.
+       (ix86_dirflag_mode_needed): New function.
+       (ix86_dirflag_mode_entry): Ditto.
+       (ix86_mode_needed): Handle X86_DIRFLAG entity.
+       (ix86_mode_after): Ditto.
+       (ix86_mode_entry): Ditto.
+       (ix86_mode_exit): Ditto.
+       (ix86_emit_mode_set): Ditto.
+       * config/i386/i386.md (strmov_singleop): Set
+       ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
+       Do not set ix86_current_function_needs_cld.
+       (rep_mov): Ditto.
+       (strset_singleop): Ditto.
+       (rep_stos): Ditto.
+       (cmpstrnqi_nz_1): Ditto.
+       (cmpstrnqi_1): Ditto.
+       (strlenqi_1): Ditto.
+
+2016-06-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/71259
+       * tree-vect-slp.c (vect_get_constant_vectors): For
+       VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
+       one for constant op, and use COND_EXPR for non-constant.
+
+2016-06-06  David Malcolm  <dmalcolm@redhat.com>
+
+       * Makefile.in (OBJS): Add function-tests.o,
+       hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
+       selftest-run-tests.o.
+       (OBJS-libcommon): Add selftest.o.
+       (OBJS-libcommon-target): Add selftest.o.
+       (all.internal): Add "selftest".
+       (all.cross): Likewise.
+       (selftest): New phony target.
+       (s-selftest): New target.
+       (selftest-gdb): New phony target.
+       (COLLECT2_OBJS): Add selftest.o.
+       * bitmap.c: Include "selftest.h".
+       (selftest::test_gc_alloc): New function.
+       (selftest::test_set_range): New function.
+       (selftest::test_clear_bit_in_middle): New function.
+       (selftest::test_copying): New function.
+       (selftest::test_bitmap_single_bit_set_p): New function.
+       (selftest::bitmap_c_tests): New function.
+       * common.opt (fself-test): New.
+       * diagnostic-show-locus.c: Include "selftest.h".
+       (make_range): New function.
+       (test_range_contains_point_for_single_point): New function.
+       (test_range_contains_point_for_single_line): New function.
+       (test_range_contains_point_for_multiple_lines): New function.
+       (assert_eq): New function.
+       (test_get_line_width_without_trailing_whitespace): New function.
+       (selftest::diagnostic_show_locus_c_tests): New function.
+       * et-forest.c: Include "selftest.h".
+       (selftest::test_single_node): New function.
+       (selftest::test_simple_tree): New function.
+       (selftest::test_disconnected_nodes): New function.
+       (selftest::et_forest_c_tests): New function.
+       * fold-const.c: Include "selftest.h".
+       (selftest::assert_binop_folds_to_const): New function.
+       (selftest::assert_binop_folds_to_nonlvalue): New function.
+       (selftest::test_arithmetic_folding): New function.
+       (selftest::fold_const_c_tests): New function.
+       * function-tests.c: New file.
+       * gimple.c: Include "selftest.h".
+       Include "gimple-pretty-print.h".
+       (selftest::verify_gimple_pp): New function.
+       (selftest::test_assign_single): New function.
+       (selftest::test_assign_binop): New function.
+       (selftest::test_nop_stmt): New function.
+       (selftest::test_return_stmt): New function.
+       (selftest::test_return_without_value): New function.
+       (selftest::gimple_c_tests): New function.
+       * hash-map-tests.c: New file.
+       * hash-set-tests.c: New file.
+       * input.c: Include "selftest.h".
+       (selftest::assert_loceq): New function.
+       (selftest::test_accessing_ordinary_linemaps): New function.
+       (selftest::test_unknown_location): New function.
+       (selftest::test_builtins): New function.
+       (selftest::test_reading_source_line): New function.
+       (selftest::input_c_tests): New function.
+       * rtl-tests.c: New file.
+       * selftest-run-tests.c: New file.
+       * selftest.c: New file.
+       * selftest.h: New file.
+       * spellcheck.c: Include "selftest.h".
+       (selftest::levenshtein_distance_unit_test_oneway): New function,
+       adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
+       (selftest::levenshtein_distance_unit_test): Likewise.
+       (selftest::spellcheck_c_tests): Likewise.
+       * toplev.c: Include selftest.h.
+       (toplev::run_self_tests): New.
+       (toplev::main): Handle -fself-test.
+       * toplev.h (toplev::run_self_tests): New.
+       * tree.c: Include "selftest.h".
+       (selftest::test_integer_constants): New function.
+       (selftest::test_identifiers): New function.
+       (selftest::test_labels): New function.
+       (selftest::tree_c_tests): New function.
+       * tree-cfg.c: Include "selftest.h".
+       (selftest::push_fndecl): New function.
+       (selftest::test_linear_chain): New function.
+       (selftest::test_diamond): New function.
+       (selftest::test_fully_connected): New function.
+       (selftest::tree_cfg_c_tests): New function.
+       * vec.c: Include "selftest.h".
+       (selftest::safe_push_range): New function.
+       (selftest::test_quick_push): New function.
+       (selftest::test_safe_push): New function.
+       (selftest::test_truncate): New function.
+       (selftest::test_safe_grow_cleared): New function.
+       (selftest::test_pop): New function.
+       (selftest::test_safe_insert): New function.
+       (selftest::test_ordered_remove): New function.
+       (selftest::test_unordered_remove): New function.
+       (selftest::test_block_remove): New function.
+       (selftest::reverse_cmp): New function.
+       (selftest::test_qsort): New function.
+       (selftest::vec_c_tests): New function.c.
+       * wide-int.cc: Include selftest.h and wide-int-print.h.
+       (selftest::from_int <wide_int>): New function.
+       (selftest::from_int <offset_int>): New function.
+       (selftest::from_int <widest_int>): New function.
+       (selftest::assert_deceq): New function.
+       (selftest::assert_hexeq): New function.
+       (selftest::test_printing <VALUE_TYPE>): New function template.
+       (selftest::test_ops <VALUE_TYPE>): New function template.
+       (selftest::test_comparisons <VALUE_TYPE>): New function template.
+       (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
+       template.
+       (selftest::wide_int_cc_tests): New function.
+
+2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR middle-end/37780
+       * ifcvt.c (noce_try_ifelse_collapse): New function.
+       Declare prototype.
+       (noce_process_if_block): Call noce_try_ifelse_collapse.
+       * simplify-rtx.c (simplify_cond_clz_ctz): New function.
+       (simplify_ternary_operation): Use the above to simplify
+       conditional CLZ/CTZ expressions.
+
+2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR middle-end/37780
+       * config/aarch64/aarch64.md (ctz<mode>2): Convert to
+       define_insn_and_split.
+
+2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR middle-end/37780
+       * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
+
+2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       PR c/24414
+       * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
+       Implicitly clobber memory for basic asm with non-empty assembler
+       string.  Use targetm.md_asm_adjust also here.
+       * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
+       * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
+       * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
+       non-empty assembler string.
+       * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
+       * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
+       (decode_asm_operands): Handle basic asm in PARALLEL block.
+       (extract_insn): Handle basic asm in PARALLEL block.
+       * doc/extend.texi: Mention new behavior of basic asm.
+       * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
+       * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
+       branch_needs_nop_p): Use asm_noperands.
+
+2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
+       Include the M7 SPARC DFA scheduler.
+       New attribute v3pipe.
+       Annotate insns with v3pipe where appropriate.
+       Define cpu_feature vis4.
+       Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
+       Add (V8QI "8") to vbits.
+       Add insns {add,sub}v8qi3
+       Add insns ss{add,sub}v8qi3
+       Add insns us{add,sub}{v8qi,v4hi}3
+       Add insns {min,max}{v8qi,v4hi,v2si}3
+       Add insns {minu,maxu}{v8qi,v4hi,v2si}3
+       Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
+       * config/sparc/niagara4.md: Add a comment explaining the
+       discrepancy between the documented latenty numbers and the
+       implemented ones.
+       * config/sparc/niagara7.md: New file.
+       * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
+       supports SPARC5 and VIS 4.0 instructions.
+       * configure: Regenerate.
+       * config.in: Likewise.
+       * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
+       * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
+       TARGET_CPU_niagara7.
+       (ASM_CPU64_DEFAULT_SPEC): Likewise.
+       (CPP_CPU_SPEC): Handle niagara7.
+       (ASM_CPU_SPEC): Likewise.
+       * config/sparc/sparc-opts.h (processor_type): Add
+       PROCESSOR_NIAGARA7.
+       (mvis4): New option.
+       * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
+       (AS_NIAGARA7_FLAG): Define.
+       (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
+       (CPP_CPU64_DEFAULT_SPEC): Likewise.
+       (CPP_CPU_SPEC): Handle niagara7.
+       (ASM_CPU_SPEC): Likewise.
+       * config/sparc/sparc.c (niagara7_costs): Define.
+       (sparc_option_override): Handle niagara7 and adjust cache-related
+       parameters with better values for niagara cpus.  Also support VIS4.
+       (sparc32_initialize_trampoline): Likewise.
+       (sparc_use_sched_lookahead): Likewise.
+       (sparc_issue_rate): Likewise.
+       (sparc_register_move_cost): Likewise.
+       (dump_target_flag_bits): Support VIS4.
+       (sparc_vis_init_builtins): Likewise.
+       (sparc_builtins): Likewise.
+       * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
+       VIS4 4.0.
+       * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
+       UltraSparc M7.
+       * config/sparc/sparc.opt (sparc_processor_type): New value
+       niagara7.
+       * config/sparc/visintrin.h (__attribute__): Prototypes for the
+       VIS4 builtins.
+       * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
+       -mvis4.
+       * doc/extend.texi (SPARC VIS Built-in Functions): Document the
+       VIS4 builtins.
+
+2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/sourcebuild.texi (Directives): Remove extra closing braces.
+
+2016-06-06  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71398
+       * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
+       remove edges.
+
+2016-06-05  James Bowman  <james.bowman@ftdichip.com>
+
+       * config/ft32/ft32.c (ft32_setup_incoming_varargs,
+       ft32_expand_prolog, ft32_expand_epilogue):
+       Handle pretend_args.
+       * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
+       * config/ft32/ft32.md: Add pretend_returner.
+
+2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/71389
+       * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
+       Copy op1 RTX to avoid invalid sharing.
+       (ix86_expand_vector_move_misalign): Ditto.
+
+2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
+
+       * expr.c (move_by_pieces_d::generate): Mark mode parameter with
+       ATTRIBUTE_UNUSED.
+
+2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.c (predicted_by_loop_heuristics_p): New function.
+       (predict_iv_comparison): Use it.
+       (predict_loops): Walk from innermost loops; do not predict edges
+       leaving multiple loops multiple times; implement
+       PRED_LOOP_ITERATIONS_MAX heuristics.
+       * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
+
+2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cfg.c (check_bb_profile): Do not report mismatched profiles when
+       only edges out of BB are EH edges.
+
+2016-06-04  Martin Sebor  <msebor@redhat.com>
+           Marcin BaczyƄski <marbacz@gmail.com>
+
+       PR c/48116
+       * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
+       a void expression in a void function.
+
+2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
+       aux; dump reasons of decisions.
+       (should_duplicate_loop_header_p): Likewise.
+       (do_while_loop_p): Likewise.
+       (ch_base::copy_headers): Dump asi num insns duplicated.
+
+2016-06-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/71405
+       * tree-ssa.c (execute_update_addresses_taken): For clobber with
+       incompatible type, build a new clobber with the right type instead
+       of building a VIEW_CONVERT_EXPR around it.
+
+2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR tree-optimization/52171
+       * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
+       by_pieces_ninsns instead of move_by_pieces_ninsns.
+
+2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
+       for reg+reg addressing mode.
+
+2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       * rs6000-c.c (c/c-tree.h): Add #include.
+       (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
+       in C++ when found in the base position of vec_ld or vec_st.
+
+2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
+       use of profile unless profile status is PROFILE_READ.
+       * profile.c (compute_branch_probabilities): Set profile status
+       only after reporting predictor hitrates.
+
+2016-06-03  Joseph Myers  <joseph@codesourcery.com>
+
+       PR target/71276
+       PR target/71277
+       * common.opt (ffp-int-builtin-inexact): New option.
+       * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
+       * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
+       (ceil@var{m}2): Document dependence on this option.
+       * ipa-inline-transform.c (inline_call): Handle
+       flag_fp_int_builtin_inexact.
+       * ipa-inline.c (can_inline_edge_p): Likewise.
+       * config/i386/i386.md (rintxf2): Do not test
+       flag_unsafe_math_optimizations.
+       (rint<mode>2_frndint): New define_insn.
+       (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
+       or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
+       for 387 instead of extending and truncating.
+       (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
+       !flag_trapping_math instead of flag_unsafe_math_optimizations.
+       Change to frndint<mode>2_<rounding>.
+       (frndintxf2_<rounding>_i387): Likewise.  Change to
+       frndint<mode>2_<rounding>_i387.
+       (<rounding_insn>xf2): Likewise.
+       (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
+       !flag_trapping_math instead of flag_unsafe_math_optimizations for
+       x87.  Test TARGET_ROUND || !flag_trapping_math ||
+       flag_fp_int_builtin_inexact instead of !flag_trapping_math for
+       SSE.  Use ROUND_NO_EXC in constant operand of
+       gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
+       for 387 instead of extending and truncating.
+
+2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
+           Julia Koval  <julia.koval@intel.com>
+
+       PR target/66960
+       PR target/67630
+       PR target/67634
+       PR target/67841
+       PR target/68037
+       PR target/68618
+       PR target/68661
+       PR target/69575
+       PR target/69596
+       PR target/69734
+       * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
+       * config/i386/i386.c (ix86_conditional_register_usage): Preserve
+       all registers, except for function return registers if there are
+       no caller-saved registers.
+       (ix86_set_func_type): New function.
+       (ix86_set_current_function): Call ix86_set_func_type to set
+       no_caller_saved_registers and func_type.  Call reinit_regs if
+       caller-saved registers are changed.  Don't allow MPX, SSE, MMX
+       nor x87 instructions in interrupt handler nor function with
+       no_caller_saved_registers attribute.
+       (ix86_function_ok_for_sibcall): Return false if there are no
+       caller-saved registers.
+       (type_natural_mode): Don't warn ABI change for MMX in interrupt
+       handler.
+       (ix86_function_arg_advance): Skip for callee in interrupt handler.
+       (ix86_function_arg): Return special arguments in interrupt handler.
+       (ix86_promote_function_mode): Promote pointer to word_mode only
+       for normal functions.
+       (ix86_can_use_return_insn_p): Don't use `ret' instruction in
+       interrupt handler.
+       (ix86_epilogue_uses): New function.
+       (ix86_hard_regno_scratch_ok): Likewise.
+       (ix86_save_reg): Preserve all registers in interrupt handler
+       after reload.  Preserve all registers, except for function return
+       registers, if there are no caller-saved registers after reload.
+       (find_drap_reg): Always use callee-saved register if there are
+       no caller-saved registers.
+       (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
+       for interrupt handler.
+       (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
+       Emit cld instruction if stringops are used in interrupt handler
+       or interrupt handler isn't a leaf function.
+       (ix86_expand_epilogue): Generate interrupt return for interrupt
+       handler and pop the 'ERROR_CODE' off the stack before interrupt
+       return in exception handler.
+       (ix86_expand_call): Disallow calling interrupt handler directly.
+       If there are no caller-saved registers, mark all registers that
+       are clobbered by the call which returns as clobbered.
+       (ix86_handle_no_caller_saved_registers_attribute): New function.
+       (ix86_handle_interrupt_attribute): Likewise.
+       (ix86_attribute_table): Add interrupt and no_caller_saved_registers
+       attributes.
+       (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
+       * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
+       accumulation in interrupt function if stack may be realigned to
+       avoid DRAP.
+       (EPILOGUE_USES): New.
+       (function_type): New enum.
+       (machine_function): Add func_type and no_caller_saved_registers.
+       * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
+       (interrupt_return): New pattern.
+       * doc/extend.texi: Document x86 interrupt and
+       no_caller_saved_registers attributes.
+
+2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR tree-optimization/52171
+       * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
+       (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
+       Look for constant strings.  Move some code to emit_block_cmp_hints
+       and use it.
+       * builtins.def (BUILT_IN_MEMCMP_EQ): New.
+       * defaults.h (COMPARE_MAX_PIECES): New macro.
+       * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
+       (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
+       (clear_by_pieces_1): Don't declare.  Move definition before use.
+       (can_do_by_pieces): New static function.
+       (can_move_by_pieces): Use it.  Return bool.
+       (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
+       OP.  All callers changed.  Handle COMPARE_BY_PIECES.
+       (class pieces_addr); New.
+       (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
+       pieces_addr::adjust, pieces_addr::increment_address,
+       pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
+       functions for it.
+       (class op_by_pieces_d): New.
+       (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
+       functions for it.
+       (class move_by_pieces_d, class compare_by_pieces_d,
+       class store_by_pieces_d): New subclasses of op_by_pieces_d.
+       (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
+       move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
+       store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
+       compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
+       compare_by_pieces_d::finish_mode): New member functions.
+       (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
+       functions.
+       (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
+       (emit_block_cmp_hints): New function.
+       (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
+       use the newly defined classes.
+       * expr.h (by_pieces_constfn): New typedef.
+       (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
+       (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
+       (move_by_pieces_ninsns): Don't declare.
+       (can_move_by_pieces): Change return value to bool.
+       * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
+       (compare_by_pieces_branch_ratio): New hook.
+       * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
+       (by_pieces_ninsns): Declare.
+       * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
+       COMPARE_BY_PIECES.
+       (default_compare_by_pieces_branch_ratio): New function.
+       * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
+       * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
+       * doc/tm.texi: Regenerate.
+       * tree-ssa-strlen.c: Include "builtins.h".
+       (handle_builtin_memcmp): New static function.
+       (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
+       * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
+
+2016-06-03  Alan Hayward  <alan.hayward@arm.com>
+
+       * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
+       relevant stmts which are simple and invariant.
+       * tree-vect-loop.c (vectorizable_live_operation): Check relevance
+       instead of simple and invariant
+
+2016-06-03  Alan Hayward  <alan.hayward@arm.com>
+
+       * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
+       (vectorizable_reduction): Check for new relevant state.
+       (vectorizable_live_operation): vectorize live stmts using
+       BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
+       * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
+       (vect_stmt_relevant_p): Check for stmts which are only used live.
+       (process_use): Use of a stmt does not inherit it's live value.
+       (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
+       (vect_analyze_stmt): Check for new relevant state.
+       * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
+       outside the loop, but not inside it.
+
+2016-06-03  Alan Hayward  <alan.hayward@arm.com>
+
+       * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
+       * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
+       (vect_get_vec_def_for_operand): Split out code.
+
+2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
+
+2016-06-03  Alan Hayward  <alan.hayward@arm.com>
+
+       * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
+
+2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
+
+2016-06-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/71387
+       * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
+       to noreturn e->callee->decl that has void return type and void
+       arguments, adjust gimple_call_fntype and remove lhs even if it had
+       previously addressable type.
+
+2016-06-02  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/71328
+       * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
+       error when checking for a jump back onto the copied path.
+
+2016-06-02  David Malcolm  <dmalcolm@redhat.com>
+
+       * config/microblaze/microblaze.c (get_branch_target): Add return
+       NULL_RTX for the non-CALL_P case.
+       (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
+       (insert_wic): Remove unused local "j".
+
+2016-06-02  Martin Liska  <mliska@suse.cz>
+
+       * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
+
+2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
+           Julia Koval  <julia.koval@intel.com>
+
+       * function.c (assign_parm_setup_stack): Force source into a
+       register if needed.
+       * target.def (function_incoming_arg): Update documentation to
+       allow arbitrary address computation based on hard register.
+       * doc/tm.texi: Regenerated.
+
+2016-06-02  Martin Liska  <mliska@suse.cz>
+
+       * predict.c (combine_predictions_for_bb): Fix first match in
+       cases where a first predictor contains more than one occurence
+       in list of predictors.  Take the best value in such case.
+
+2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR rtl-optimization/71295
+       * rtlanal.c (subreg_get_info): If taking a subreg at the requested
+       offset would go over the size of the inner mode reject it.
+
+2016-06-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
+       x=x,x and v=v,m instead of x=x,m.
+
+       * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
+       alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
+       alternative to v=rm,C.
+
+       * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
+       alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
+       to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
+       instead of vex for the last two above mentioned alternatives.
+
+2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/70830
+       * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
+
+2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
+
+2016-06-01  David Malcolm  <dmalcolm@redhat.com>
+
+       * config/rl78/rl78.c (rl78_expand_prologue): Convert local
+       from int to unsigned.
+
+2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
+       alternatives, eliminating preferred register class.  Add support
+       for the MTVSRDD instruction in ISA 3.0.
+       (vsx_splat_v4si_internal): Use splat_input_operand instead of
+       reg_or_indexed_operand.
+       (vsx_splat_v4sf_internal): Likewise.
+
+2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/71186
+       * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
+       for loading up all 0's or all 1's.
+
+2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
+
+2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
+
+       * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
+       extension.
+       * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
+       * gcc.c (set_source_date_epoch_envvar): New function, sets
+       the SOURCE_DATE_EPOCH environment variable to the current time.
+
+2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
+       the factor for live Phi nodes.
+
+2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
+       * tree-parloops.c (parallelize_loops): likewise.
+       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
+       tree_unswitch_outer_loop): likewise.
+
+2016-06-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/71371
+       * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
+       around creation of the temporary.
+
+2016-06-01  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71366
+       * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
+       (unloop_loops): Move removing edges here ...
+       (try_unroll_loop_completely): ... from here.
+       (try_peel_loop): ... and here.
+       (tree_unroll_loops_completely_1): Track parent loops via
+       bitmap of header BBs.
+       (tree_unroll_loops_completely): Adjust for that.
+
+2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/altivec.h (vec_slv): New macro.
+       (vec_srv): New macro.
+       * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
+       (UNSPEC_VSRV): New value.
+       (vslv): New insn.
+       (vsrv): New insn.
+       * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
+       (vsrv): New builtin definition.
+       * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
+       define argument types for new builtin.
+       (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
+       new builtin.
+       * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
+       functions.
+
+2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
+           Jocelyn Mayer  <l_indien@magic.fr>
+
+       PR target/67310
+       * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
+       detect processor family for signature_CENTAUR_ebx.
+       <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
+       signature_CENTAUR_ebx.
+       <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
+       <default>: Pass x86-64 for has_longmode.
+
+2016-06-01  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
+       undefined weak.
+
+2016-06-01  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71261
+       * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
+       of stmts successfully put in the bool pattern.  Remove
+       single-use restriction.
+       (adjust_bool_pattern_cast): Add cast at the use site via the
+       pattern def sequence.
+       (adjust_bool_pattern): Remove recursion, maintain a hash-map
+       of patterned defs.  Use the pattern def seqence instead of
+       multiple independent patterns.
+       (sort_after_uid): New qsort compare function.
+       (adjust_bool_stmts): New function to process stmts in the bool
+       pattern in IL order.
+       (vect_recog_bool_pattern): Adjust.
+       * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
+       (ifcvt_walk_pattern_tree): Likewise.
+       (stmt_is_root_of_bool_pattern): Likewise.
+       (ifcvt_repair_bool_pattern): Likewise.
+       (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
+
+2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * loop-unroll.c (decide_unroll_constant_iterations,
+       decide_unroll_runtime_iterations, decide_unroll_stupid): Use
+       likely upper bounds.
+       * loop-iv.c (find_simple_exit): Dump likely upper bounds.
+
+2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * tree-core.h (enum omp_clause_code): Remove
+       OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
+
+2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/sync.md (arm_store_exclusive<mode>):
+       Use 'H' output modifier on operands[2] rather than creating a new
+       entry in out-of-bounds memory of the operands array.
+       (arm_store_release_exclusivedi): Likewise.
+
+2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/arm.c (arm_fusion_enabled_p): New function.
+       * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
+       * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
+       Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
+
+2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
+       into account live statements for mask producers.
+
+2016-06-01  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71311
+       * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
+       restrict to non-INTEGER_CST @0.
+
+2016-06-01  Richard Biener  <rguenther@suse.de>
+
+       * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
+       (relational patterns): Use :c to avoid pattern duplications.
+
+2016-06-01  Richard Biener  <rguenther@suse.de>
+
+       * genmatch.c (comparison_code_p): New predicate.
+       (swap_tree_comparison): New function.
+       (commutate): Add for_vec parameter to append new for entries.
+       Support commutating relational operators by swapping it alongside
+       operands.
+       (lower_commutative): Adjust.
+       (dt_simplify::gen): Do not pass artificial operators to gen
+       functions.
+       (decision_tree::gen): Do not add artificial operators as parameters.
+       (parser::parse_expr): Verify operator commutativity when :c is
+       applied.  Allow :C to override this.
+       * match.pd: Adjust patterns to use :C instead of :c where required.
+
+2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
+
+       PR tree-optimization/71077
+       * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
+       the combining step, use boolean_false_node and boolean_true_node
+       as the designated false/true return values.
+
+2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
+       * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
+       (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
+       PRED_LOOP_EXIT.
+
+2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
+
+       * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
+       of flags impliying the register renaming.
+       * toplev.c (process_options): Do not imply flag_rename_registers with
+       loop peeling.
+
+2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
+       default implementation.
+
+2016-05-31  Nathan Sidwell  <nathan@acm.org>
+
+       * dwarf2out.c (cur_line_info_table): Add GTY marker.
+
+2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/constraints.md (b): Remove constraint.
+       * config/sh/predicates.md (arith_reg_operand): Remove
+       TARGET_REGISTER_P.
+       * config/sh/sh-modes.def (PDI): Remove.
+       * config/sh/sh.c (sh_target_reg_class,
+       sh_optimize_target_register_callee_saved): Remove functions.
+       (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
+       (sh_expand_epilogue): Update comment.
+       (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
+       sh_secondary_reload): Remove TARGET_REGS related code.
+       * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
+       TARGET_REGISTER_P): Remove macros.
+       (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
+       * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
+       TR1_REG, TR2_REG): Remove constants.
+       * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
+
+2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
+       define_expand patterns.
+       (adddi3_compact): Rename to adddi3.
+       (subdi3_compact): Rename to subdi3.
+       (*negdi2): Rename to negdi2.
+       (*abs<mode>2): Rename to abs<mode>2.
+
+2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
+       (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
+       (atomic_sub_fetchsi): ... this new pattern.
+       (mvtc): Add CC_REG clobber.
+
+2016-05-31  Marek Polacek  <polacek@redhat.com>
+
+       * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
+
+2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
+       aarch64_fusion_enabled_p to check for fusion capabilities.
+
+2016-05-31  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/71352
+       * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
+       minus one and a negate.
+
+2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
+       * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
+       Delete prototype.
+       * config/aarch64/iterators.md (insn_count): Add descriptive comment.
+       * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
+       Remove use of aarch64_simd_attr_length_move, set length attribute
+       directly.
+       (*aarch64_be_movoi): Likewise.
+       (*aarch64_be_movci): Likewise.
+       (*aarch64_be_movxi): Likewise.
+
+2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
+
+       * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
+       It no longer does that.
+       * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
+
+2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
+
+       * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
+       attribute __unused__.
+
+2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
+       * config/arm/arm.c (arm_arch_thumb1): Define.
+       (arm_option_override): Initialize arm_arch_thumb1.
+       * config/arm/arm.h (arm_arch_thumb1): Declare.
+       (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
+       support Thumb-1 ISA.
+
+2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
+
+       PR target/71346
+       * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
+       `Yv' for scalar operand.
+
+2016-05-31  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/69068
+       * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
+       phis with more than two args.
+
+2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
+
+       * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
+       armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
+       target.
+
+2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
+       tune_64.
+       * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
+       support on SPARC.
+       * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
+       cpu_32, cpu_64, tune_32 and tune_64.
+       * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
+
+2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
+
+2016-05-30  Andi Kleen  <ak@linux.intel.com>
+
+       * auto-profile.c (read_profile): Replace asserts with errors
+       when file does not exist.
+       * gcov-io.c (gcov_read_words): Dito.
+
+2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-cfg.c (print_loop): Print likely upper bounds.
+
+2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
+       * opts.c (default_options): Enable peel loops at -O3.
+       * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
+       (try_peel_loop): Do not re-peel already peeled loops;
+       use likely upper bounds; fix profile updating.
+       (pass_complete_unroll::execute): Initialize peeled_loops.
+
+2016-05-30  Martin Liska  <mliska@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
+       computed costs by frequency of BB they belong to.
+       (get_scaled_computation_cost_at): New function.
+
+2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
+           Marc Glisse  <marc.glisse@inria.fr>
+
+       PR tree-optimization/71289
+       * match.pd (-1 / B < A, A > -1 / B): New transformations.
+
+2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
+
+2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
+       for peeled copies; avoid underflow when updating estimates; correctly
+       scale loop profile.
+
+2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
+       r236875. Corrected oe3 to oe2 as obvious.
+
+2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       PR middle-end/71269
+       PR middle-end/71252
+       * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
+       that inserted stmt will not dominate stmts that defines its operand.
+       (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
+       (rewrite_expr_tree_parallel): Likewise.
+
+2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       PR middle-end/71252
+       * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
+       all fields including stmt_to_insert are swapped.
+
+2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.h (force_edge_cold): Declare.
+       * predict.c (force_edge_cold): New function.
+       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
+       updating.
+       (canonicalize_loop_induction_variables): Fix formating.
+
+2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/visium/visium.c (visium_split_double_add): Minor tweaks.
+       (visium_expand_copysign): Use gen_int_mode directly.
+       (visium_compute_frame_size): Minor tweaks.
+
+2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-vect-loop.c (vect_analyze_loop_2): Use
+       likely_max_stmt_executions_int.
+
+2016-05-30  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/69067
+       * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
+
+2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/71245
+       * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
+       New peepholes to remove unneeded fild/fistp pairs.
+       (define_peephole2 atomic_loaddi_fpu): Ditto.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.c (maybe_hot_frequency_p): Avoid division.
+
+2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi: Use https for shop.fsf.org.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
+       likely_max_stmt_executions_int.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
+       likely_max_stmt_executions_int.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * profile.c (compute_branch_probabilities): Do not report hitrates
+       here.
+       (branch_prob): Report hitrates here.
+       * predict.c (gimple_predict_edge): Do not assert profile status;
+       fix formatting issues.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.c (edge_predicted_by_p): New function.
+       (predict_paths_for_bb): Do not put multiple predictions of the same type
+       on one edge.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
+       commit.
+
+2016-05-28  Alan Modra  <amodra@gmail.com>
+
+       * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
+
+2016-05-28  Alan Modra  <amodra@gmail.com>
+
+       PR rtl-optimization/71275
+       * ira.c (ira): Free dominance info.
+
+2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/sourcebuild.texi: New address for upstream Go repository.
+
+2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * config/arm/arm.h (TARGET_ARM_V6M): Remove.
+       (TARGET_ARM_V7M): Likewise.
+
+2016-05-26  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
+       (thread_across_edge): Remove calls to find_jump_threads_backwards.
+       * passes.def: Add jump threading passes before DOM/VRP.
+       * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
+       argument to a basic block from an edge.  Remove tests which are
+       handled elsewhere.
+       (pass_data_thread_jumps, class pass_thread_jumps): New.
+       (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
+       (make_pass_thread_jumps): Likewise.
+       * tree-pass.h (make_pass_thread_jumps): Declare.
+
+2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/visium/visium-protos.h (split_double_move): Rename into...
+       (visium_split_double_move): ...this.
+       (visium_split_double_add): Declare.
+       * config/visium/visium.c (split_double_move): Rename into...
+       (visium_split_double_move): ...this.
+       (visium_split_double_add): New function.
+       (visium_expand_copysign): Renumber operands for consistency.
+       * config/visium/visium.md (DImode move splitter): Adjust to renaming.
+       (DFmode move splitter): Likewise.
+       (*addi3_insn): Split by means of visium_split_double_add.
+       (*adddi3_insn_flags): Delete.
+       (*plus_plus_sltu<subst_arith>): New insn.
+       (*subdi3_insn): Split by means of visium_split_double_add.
+       (subdi3_insn_flags): Delete.
+       (*minus_minus_sltu<subst_arith>): New insn.
+       (*negdi2_insn): Split by means of visium_split_double_add.
+       (*negdi2_insn_flags): Delete.
+
+2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * configure.ac: Treat a --with-headers option without argument
+       the same as the default (i.e. consult sys-include directory).
+       * configure: Regenerate.
+
+2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
+       * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
+       prototype.
+       * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
+       Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
+
+2016-05-27  Jiong Wang  <jiong.wang@arm.com>
+
+       PR target/63596
+       * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
+       tree-stdarg analysis results.
+       (aarch64_setup_incoming_varargs): Likewise.
+
+2016-05-27  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
+       va_list_gpr_counter_field and va_list_fpr_counter_field.
+
+2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       PR67609
+       * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
+       * config/aarch64/aarch64.c
+       (aarch64_cannot_change_mode_class): Remove function.
+       * config/aarch64/aarch64-protos.h
+       (aarch64_cannot_change_mode_class): Remove.
+
+2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cfgloop.c (record_niter_bound): Record likely upper bounds.
+       (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
+       get_likely_max_loop_iterations_int): New.
+       * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
+       any_likely_upper_bound.
+       (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
+       Declare.
+       * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
+       * loop-unroll.c (unroll_loop_constant_iterations): Update likely
+       upper bound.
+       (unroll_loop_constant_iterations): Likewise.
+       (unroll_loop_runtime_iterations): Likewise.
+       * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
+       * lto-streamer-out.c (output_cfg): Likewise.
+       * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
+       bounds.
+       (canonicalize_loop_induction_variables): Dump likely upper bounds.
+       * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
+       (likely_max_loop_iterations): New.
+       (likely_max_loop_iterations_int): New.
+       (likely_max_stmt_executions): New.
+       * tree-ssa-loop-niter.h (likely_max_loop_iterations,
+       likely_max_loop_iterations_int, likely_max_stmt_executions_int,
+       likely_max_stmt_executions): Declare.
+
+2016-05-27  Marek Polacek  <polacek@redhat.com>
+
+       PR middle-end/71308
+       * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
+
+2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md (2x risbg splitters): Use
+       reg_overlap_mentioned_p instead of rtx_equal_p.
+
+2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+
+       * combine.c (make_compound_operation): Take known zero bits into
+       account when checking for possible zero_extend.
+
+2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
+       Use const_int_operand for operand 2 predicate.  Simplify expand code
+       as a result.
+
+2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
+
+       PR middle-end/71279
+       * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
+       into comparison.
+
+2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
+       * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
+       that returns CC_SESWPmode and CC_ZESWPmode.
+       (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
+       and CC_SESWPmode.
+       (aarch64_rtx_costs): Likewise.
+
 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
        * config/rs6000/altivec.md (VNEG iterator): New iterator for
        VNEGW/VNEGD instructions.
        (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
-       (neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
+       (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
        support for ISA 3.0 VNEGW/VNEGD instructions.
 
 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
 2016-05-24  Martin Sebor  <msebor@redhat.com>
 
        PR c++/71147
-       * gcc/tree.h (complete_or_array_type_p): New inline function.
+       * tree.h (complete_or_array_type_p): New inline function.
 
 2016-05-24  Jakub Jelinek  <jakub@redhat.com>