2016-04-15  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 7.0.0.

2016-04-15  Alexander Monakov  <amonakov@ispras.ru>

	* config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.

2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
	architecture revisions.

2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>

	* config/i386/i386-protos.h (ix86_using_red_zone): Declare.
	* config/i386/i386.c (ix86_using_red_zone): No longer static.
	* config/i386/i386.md (stack decrement to push peepholes): Guard
	with !x86_using_red_zone ().

2016-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70675
	* tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
	to dump_generic_node.
	(NIY): Pass also flags to do_niy.

2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>

	* omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
	(simd_clone_vector_of_formal_parm_types)
	(simd_clone_clauses_extract, simd_clone_compute_base_data_type)
	(simd_clone_mangle, simd_clone_create)
	(simd_clone_adjust_return_type, create_tmp_simd_array)
	(simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
	(struct modify_stmt_info, ipa_simd_modify_stmt_ops)
	(ipa_simd_modify_function_body, simd_clone_linear_addend)
	(simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
	(pass_data_omp_simd_clone, class pass_omp_simd_clone)
	(pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move
	into...
	* omp-simd-clone.c: ... this new file.
	(simd_clone_vector_of_formal_parm_types): Make it static.
	* Makefile.in (OBJS): Add omp-simd-clone.o.

2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70662
	* config/i386/sse.md: Use proper memory operand
	modifiers.


2016-04-15  Richard Biener  <rguenther@suse.de>
	Alan Modra  <amodra@gmail.com>

	PR tree-optimization/70130
	* tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
	when alignment stays not the same and no not use the realign
	scheme then.

2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70669
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
	direct move handlers for KFmode. Change TFmode handlers test from
	FLOAT128_IEEE_P to FLOAT128_VECTOR_P.

2016-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70594
	* ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
	* ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
	(inlined_polymorphic_ctor_dtor_block_p): Use it.
	* tree-ssa-live.c (remove_unused_scope_block_p): When
	in_ctor_dtor_block, avoid discarding not just BLOCKs with
	BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
	block_ultimate_origin is FUNCTION_DECL.
	(remove_unused_locals): If current_function_decl is
	polymorphic_ctor_dtor_p, pass initial true to
	remove_unused_scope_block_p' is_ctor_dtor_block.

2016-04-14  Martin Sebor  <msebor@redhat.com>

	PR c++/69517
	PR c++/70019
	PR c++/70588
	* doc/extend.texi (Variable Length): Revert.

2016-04-14  Marek Polacek  <polacek@redhat.com>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR c++/70029
	* tree.c (verify_type): Disable the canonical type of main variant
	check.

2016-04-14  Jason Merrill  <jason@redhat.com>

	* cfgexpand.c, expr.c: Revert previous change.

2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>

	PR middle-end/70643
	* omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
	when building a mem ref for the incoming reduction variable.

2016-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70614
	* tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
	loop if the evolution dropped to chrec_dont_know.
	(interpret_condition_phi): Likewise.

2016-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70623
	* tree-ssa-pre.c (changed_blocks): Make global ...
	(compute_antic): ... local here.  Move and fix worklist
	handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
	(compute_antic_aux): Add dumping for MAX assumed succs.  Remove
	worklist handling, dump when ANTIC_IN changed.
	(compute_partial_antic_aux): Remove worklist handling.
	(init_pre): Do not compute post dominators.  Add a comment about
	the CFG order chosen.
	(fini_pre): Do not free post dominators.

2016-04-13  Martin Sebor  <msebor@redhat.com>

	PR c++/69517
	PR c++/70019
	PR c++/70588
	* doc/extend.texi (Variable Length): Document C++ specifics.

2016-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70641
	* ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
	on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
	eh edges have been purged.

	PR c++/70594
	* tree-sra.c (create_access_replacement,
	get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
	gets fancy name.
	* tree-pretty-print.c (dump_fancy_name): New function.
	(dump_decl_name, dump_generic_node): Use it.

2016-04-13  Jason Merrill  <jason@redhat.com>

	* cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
	* expr.c (expand_expr_real_1): Likewise.

2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/i386.md (kunpckhi): Swap operands.
	(kunpcksi): Likewise.
	(kunpckdi): Likewise.
	* config/i386/sse.md (vec_pack_trunc_qi): Likewise.
	(vec_pack_trunc_<mode>): Likewise.

2016-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/70628
	* explow.c (convert_memory_address_addr_space_1): Formatting fix.

	PR middle-end/70633
	* gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
	gimplification turns some element into non-constant.

	PR debug/70628
	* rtl.h (convert_memory_address_addr_space_1): New prototype.
	* explow.c (convert_memory_address_addr_space_1): No longer static,
	add NO_EMIT argument and don't call convert_modes if true, pass
	it down recursively, remove break after return.
	(convert_memory_address_addr_space): Adjust caller.
	* simplify-rtx.c (simplify_unary_operation_1): Call
	convert_memory_address_addr_space_1 instead of convert_memory_address,
	if it returns NULL, don't simplify.

2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/70630
	* config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.

2016-04-12  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
	Bump the upper SIMDLEN limits, so that if the return type or
	characteristic type if the return type is void can be passed in
	all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
	allowed.

2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70640
	* config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
	Do not use "=" constraint on an input constraint.
	(ieee_128bit_vsx_abs<mode>2_internal): Likewise.
	(ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
	(ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
	generates (neg (abs ...)) instead of (abs ...).

2016-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70596
	* lra-spills.c (spill_pseudos): Don't delete debug insns, instead
	just invalidate LRA data and reset them.  Adjust dump wording.

2016-04-12  Martin Liska  <mliska@suse.cz>

	Revert
	2016-03-30  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
	estimates here.
	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
	max_loop_iterations_int.
	(tree_unswitch_outer_loop): Likewise.
	* tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
	* tree-vect-loop.c (vect_analyze_loop_2): Likewise.

2016-04-12  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68756
	* graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
	instead of new_name.

2016-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70602
	* tree-sra.c (generate_subtree_copies): Don't write anything into
	constant pool decls.

	* omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
	regardless whether there are depend clauses or not.

2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70381
	* config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
	target attribute and pragma from changing the -mfloat128
	and -mfloat128-hardware options.

	* doc/extend.texi (Additional Floating Types): Document PowerPC
	__float128 restrictions.

2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>

	PR target/70133
	* config/aarch64/driver-aarch64.c
	(aarch64_get_extension_string_for_isa_flags): New.
	(arch_extension): Rename to...
	(aarch64_arch_extension): ...This.
	(ext_to_feat_string): Rename to...
	(aarch64_extensions): ...This.
	(aarch64_core_data): Keep track of architecture extension flags.
	(cpu_data): Rename to...
	(aarch64_cpu_data): ...This.
	(aarch64_arch_driver_info): Keep track of architecture extension
	flags.
	(get_arch_name_from_id): Rename to...
	(get_arch_from_id): ...This, change return type.
	(host_detect_local_cpu): Update and reformat for renames, handle
	extensions through common infrastructure.

2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>

	PR target/70133
	* config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
	track of a canonical flag name.
	(all_extensions): Likewise.
	(arch_to_arch_name): Also track extension flags enabled by the arch.
	(all_architectures): Likewise.
	(aarch64_parse_extension): Move to here.
	(aarch64_get_extension_string_for_isa_flags): Take a new argument,
	rework.
	(aarch64_rewrite_selected_cpu): Update for above change.
	* config/aarch64/aarch64-option-extensions.def: Rework the way flags
	are handled, such that the single explicit value enabled by an
	extension is kept seperate from the implicit values it also enables.
	* config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
	to here.
	(aarch64_parse_extension): New.
	* config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
	here to config/aarch64/aarch64-protos.h.
	(aarch64_parse_extension): Move from here to
	common/config/aarch64/aarch64-common.c.
	(aarch64_option_print): Update.
	(aarch64_declare_function_name): Likewise.
	(aarch64_start_file): Likewise.
	* config/aarch64/driver-aarch64.c (arch_extension): Keep track of
	the canonical flag for extensions.
	* config.gcc (aarch64*-*-*): Extend regex for capturing extension
	flags.

2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
	AARCH64_FL_CRC.

2016-04-09  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68953
	* graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
	first to last subscript.

2016-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70586
	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
	for any calls.

2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>

	PR lto/70289
	PR ipa/70348
	PR tree-optimization/70373
	PR middle-end/70533
	PR middle-end/70534
	PR middle-end/70535
	* gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
	clauses for acc parallel reductions as necessary.  Error on those
	that are private.
	* omp-low.c (scan_sharing_clauses): Don't install variables which
	are used in acc parallel reductions.
	(lower_rec_input_clauses): Remove dead code.
	(lower_oacc_reductions): Add support for reference reductions.
	(lower_reduction_clauses): Remove dead code.
	(lower_omp_target): Don't remap variables appearing in acc parallel
	reductions.
	* tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.

2016-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/70593
	* tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
	with multiple SSA_NAME defs, force the outputs other than first
	to be live before calling live_track_process_def on each output.

	PR rtl-optimization/70574
	* fwprop.c (forward_propagate_and_simplify): Don't add
	REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
	(try_fwprop_subst): Don't add REG_EQUAL note if there are any
	paradoxical subregs within *loc.

2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>

	* config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
	-ftree-parallelize-loops={0,1}.
	* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
	* config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
	* config/ia64/hpux.h (LIB_SPEC): Likewise.
	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
	* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.

2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>

	PR sanitizer/70541
	* asan.c (instrument_derefs): If we get unknown location, extract it
	with EXPR_LOCATION.
	(maybe_instrument_call): Instrument gimple_call's arguments if needed.

2016-04-08  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
	implicit firstprivate clause.

2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/70566
	* config/arm/thumb2.md (tst + branch-> lsls + branch
	peephole below *orsi_not_shiftsi_si): Require that condition
	register is dead after the peephole.
	(second peephole after the above): Likewise.

2016-04-08  Alan Modra  <amodra@gmail.com>

	PR target/70117
	* builtins.c (fold_builtin_classify): For IBM extended precision,
	look at just the high-order double to test for NaN.
	(fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
	test just the high double for Inf but both doubles for subnormal
	limit.

2016-04-07  Jakub Jelinek  <jakub@redhat.com>

	* cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
	* omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
	node->simdclone->mask_mode != VOIDmode masks.
	(simd_clone_adjust_argument_types): Likewise.  Move sc var definition
	earlier, use it instead of node->simdclone.
	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
	Set clonei->mask_mode.

2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c/70436
	* parser.c (cp_parser_iteration_statement): New parameter IF_P.
	Pass it through to cp_parser_already_scoped_statement.
	(cp_parser_already_scoped_statement): New parameter IF_P.  Pass
	it through to cp_parser_statement.
	(cp_parser_statement): Pass IF_P through to
	cp_parser_iteration_statement.
	(cp_parser_pragma): Adjust call to
	cp_parser_iteration_statement.

2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c/70436
	* gimplify.c (gimplify_omp_ordered): Add explicit braces to
	resolve a future -Wparentheses warning.
	* omp-low.c (scan_sharing_clauses): Likewise.
	* tree-parloops.c (eliminate_local_variables): Likewise.

2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/70398
	* lra-constraints.c (process_address_1): Check zero scale and code
	for reloading with zero scale.

2016-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
	(ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.

2016-04-06  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
	Add support for AVX512F clones, include them by default for
	exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
	and use it if charasteric type is 8-bit, for AVX512F allow simdlen
	up to 128.

	PR middle-end/70550
	* tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
	* gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
	firstprivate clauses.
	* omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
	OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
	(lower_omp_target): Set TREE_NO_WARNING for
	non-addressable possibly uninitialized vars which are copied into
	addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.

2016-04-05  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/predicates.md (integer_store_memory_operand): Accept
	REG+D operands with a large offset when reload_in_progress is true.
	(floating_point_store_memory_operand): Likewise.

2016-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70336
	* match.pd (nested int casts): Limit to GIMPLE.

2016-04-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66223
	* ipa-devirt.c (maybe_record_node): Fix comment; use
	SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.

2016-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70542
	* ree.c (add_removable_extension): For VECTOR_MODE_P punt
	if there are any uses other than insn or debug insns.

2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70509
	* simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
	Shift HOST_WIDE_INT_1U instead of 1.

2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>

	PR tree-optimization/70509
	* tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
	of the vector base type for index.

2016-04-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/70510
	* config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.

2016-04-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70526
	* tree-sra.c (build_ref_for_offset): Use prev_base to
	extract the alias pointer type.

2016-04-05  Richard Biener  <rguenther@suse.de>

	* dse.c (struct store_info): Remove alias_set member.
	(struct read_info_type): Likewise.
	(clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
	spill_deleted, clear_alias_set_lookup): Remove.
	(get_group_info): Remove dead base == NULL_RTX case.
	(dse_step0): Remove initialization of removed variables.
	(delete_dead_store_insn): Reomve alias set dumping.
	(free_read_records): Remove alias_set handling.
	(canon_address): Remove alias_set_out parameter.
	(record_store): Remove spill_alias_set, it's always zero.
	(check_mem_read_rtx): Likewise.
	(dse_step2): Rename from ...
	(dse_step2_nospill): ... this.  Adjust.
	(scan_stores): Rename from ...
	(scan_stores_nospill): ... this.
	(scan_reads): Rename from ...
	(scan_reads_nospill): ... this.
	(scan_stores_spill, scan_reads_spill): Remove.
	(dse_step3_scan): Remove for_spills argument which is always false.
	(dse_step3): Likewise.
	(dse_step5): Rename from ...
	(dse_step5_nospill): ... this.  Remove alias_set handling.
	(rest_of_handle_dse): Adjust.

2016-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/70525
	* config/i386/sse.md (*andnot<mode>3): Simplify assertions.
	Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
	V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
	(*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.

2016-04-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/70499
	* gimplify-me.c (gimple_regimplify_operands): Do not rewrite
	non-register type temporaries into SSA.

2016-04-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66223
	* ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
	calls when sanitizing.
	(possible_polymorphic_call_target_p): Fix formatting.

2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Jakub Jelinek <jakub@redhat.com>

	PR middle-end/70457
	* tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
	to ensure a call statement is compatible with a built-in's
	prototype.
	* tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
	Likewise.

2016-04-04  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/70484
	* rtl.h (canon_output_dependence): Declare.
	* alias.c (canon_output_dependence): New function.
	* dse.c (record_store): Use canon_output_dependence rather
	than canon_true_dependence.

2016-03-30  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/68881
	* cgraph.h (symtab_node::copy_visibility_from): New function.
	* symtab.c (symtab_node::copy_visibility_from): New function.
	* ipa-visibility.c (optimize_weakref): New function.
	(function_and_variable_visibility): Use it.

2016-04-04  Martin Liska  <mliska@suse.cz>

	PR hsa/70402
	* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
	value that is really in range handled by SBR instruction.
	* hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
	* hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
	* hsa.h (hsa_insn_sbr::m_default_bb): Remove field.

2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/70416
	PR target/67391
	* config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
	set, but not for SP_REG operands.

2016-04-02  Martin Sebor  <msebor@redhat.com>

	PR c++/67376
	* fold-const.c (maybe_nonzero_address): New function.
	(fold_comparison): Call it.  Fold equality and relational
	expressions involving null pointers.
	(tree_single_nonzero_warnv_p): Call maybe_nonzero_address.

2016-03-31  Evandro Menezes  <e.menezes@samsung.com>

	Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
	the "Y" constraint (scalar FP 0.0 immediate).

	* gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
	Add the "const_double" to the list of operand constraints.

2016-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70467
	* config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
	If low word of the last operand is 0, just emit addition/subtraction
	for the high word.

2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/70404
	* config/s390/s390.c (s390_expand_insv): Check for everything
	constant instead of just VOIDmode stuff.

2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/70496
	* config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.

2016-04-01  Nathan Sidwell  <nathan@acm.org>

	* tree.def (TRY_CATCH_EXPR): Correct documentation.

2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/70461
	* ira-color.c (allocno_copy_cost_saving): Use allocno class if it
	is necessary.

2016-03-31  Martin Liska  <mliska@suse.cz>

	PR hsa/70399
	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
	a tree value or an immediate integer value to a buffer
	that is eventually copied to a BRIG section.
	(emit_immediate_operand): Call the function here.
	* hsa-dump.c (dump_hsa_immed): Remove checking assert.
	* hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
	of class' fields that are removed.
	(hsa_op_immed::~hsa_op_immed): Remove deinitialization.
	* hsa.h (class hsa_op_immed): Remove m_brig_repr and
	m_brig_repr_size fields.

2016-03-31  Martin Liska  <mliska@suse.cz>

	PR hsa/70391
	* hsa-gen.c (hsa_function_representation::update_dominance): New
	function.
	(convert_addr_to_flat_segment): Likewise.
	(gen_hsa_memory_set): New alignment argument.
	(gen_hsa_ctor_assignment): Likewise.
	(gen_hsa_insns_for_single_assignment): Provide alignment
	to gen_hsa_ctor_assignment.
	(gen_hsa_insns_for_direct_call): Add new argument.
	(expand_lhs_of_string_op): New function.
	(expand_string_operation_builtin): Likewise.
	(expand_memory_copy): New function.
	(expand_memory_set): New function.
	(gen_hsa_insns_for_call): Use HOST_WIDE_INT.
	(convert_switch_statements): Change signature.
	(generate_hsa): Use a return value of the function.
	(pass_gen_hsail::execute): Do not call
	convert_switch_statements here.
	* hsa-regalloc.c (hsa_regalloc): Call update_dominance.
	* hsa.h (hsa_function_representation::m_modified_cfg): New flag.
	(hsa_function_representation::update_dominance): New function.

2016-03-31  Martin Liska  <mliska@suse.cz>

	PR hsa/70391
	* hsa-brig.c (emit_directive_variable): Emit alignment
	according to hsa_symbol::m_align.
	* hsa-dump.c (hsa_byte_alignment): Move the function to	another file.
	(dump_hsa_symbol): Dump alignment of HSA symbols.
	* hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
	(gen_hsa_addr_with_align): New function.
	(hsa_bitmemref_alignment): Use newly added function.
	(gen_hsa_insns_for_load): Likewise.
	(gen_hsa_insns_for_store): Likewise.
	(gen_hsa_memory_copy): New argument added.
	(gen_hsa_insns_for_single_assignment): Respect
	alignment for assignments processed via gen_hsa_memory_copy.
	(gen_hsa_insns_for_direct_call): Likewise.
	(gen_hsa_insns_for_return): Likewise.
	(gen_function_def_parameters): Set default alignment.
	* hsa.c (hsa_object_alignment): New function.
	(hsa_byte_alignment): Pasted function.
	* hsa.h (hsa_symbol::m_align): New field.

2016-03-31  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
	scratch field for goto case.

2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.

2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/70442
	* config/i386/i386.c (scalar_chain::convert_op): Fix description.
	(scalar_chain::convert_insn): Call convert_op for reg
	moves to handle undefined registers.

2016-03-31  Nathan Sidwell  <nathan@acm.org>

	PR c++/70393
	* varasm.c (output_constructor_regular_field): Flush bitfield earlier.
	Assert we don't want to move backwards.

2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70453
	* config/i386/sse.md (define_mode_attr shuffletype): Fix typo.

2016-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70460
	* ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
	with operand from REG_LABEL_OPERAND, instead substitute
	SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
	Don't do anything for REG_NON_LOCAL_GOTO jumps.

2016-03-31  Martin Liska  <mliska@suse.cz>

	* passes.c (execute_one_pass): Do not call
	todo_after for a discarded function.

2016-03-31  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
	(no_cost, infinite_cost): Initialize the new field.
	(get_computation_cost_at): Record setup cost.
	(determine_use_iv_cost_address): Skip cost computation for sub
	uses if we can estimate it without losing accuracy.

2016-03-30  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
	estimates here.
	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
	max_loop_iterations_int.
	(tree_unswitch_outer_loop): Likewise.
	* tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
	* tree-vect-loop.c (vect_analyze_loop_2): Likewise.

2016-03-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/70450
	* fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.

2016-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR target/70421
	* config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
	in gen_blendm expander.

2016-03-30  Nick Clifton  <nickc@redhat.com>

	PR target/62254
	* config/arm/arm.c (arm_reload_out_hi): Add code to handle the
	case where we are already provided with an SImode SUBREG.

2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/70439
	* config/i386/i386.c (ix86_expand_epilogue): Properly check
	conflict between DRAP register and __builtin_eh_return.

2016-03-30  Michael Matz  <matz@suse.de>
	    Richard Biener  <rguenther@suse.de>

	PR ipa/12392
	* ipa-polymorphic-call.c (struct type_change_info): Change
	speculative to an unsigned allowing to limit the work we do.
	(csftc_abort_walking_p): New inline function..
	(check_stmt_for_type_change): Limit the number of may-defs
	skipped for speculative devirtualization to
	max-speculative-devirt-maydefs.
	* params.def (max-speculative-devirt-maydefs): New param.
	* doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.

2016-03-30  Mike Stump  <mrs@gcc.gnu.org>

	PR target/63890
	* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
	and TARGET_MACHO.

2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>

	PR tree-optimization/59124
	* tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
	where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).

2016-03-29  Jeff Law  <law@redhat.com>

	* tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.

2016-03-10  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
	to HOST_WIDE_INT.

2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>

	* config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
	* config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
	gcrt0.o if linking dynamically.

2016-03-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/70283
	* ipa-devirt.c (methods_equal_p): New function.
	(compare_virtual_tables): Use it.
	* cgraph.h (symbol_table::symbol_suffix_separator): Declare.
	* cgraphclones.c (clone_function_name_1): Use
	symbol_table::symbol_suffix_separator.
	* coverage.c (build_var): Likewise.
	* symtab.c (symbol_table::symbol_suffix_separator): New.

2016-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70429
	* combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
	(cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
	mode != result_mode.

	PR c++/70353
	* tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.

	PR tree-optimization/70405
	* ssa-iterators.h (num_imm_uses): Add missing braces.

2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68695
	* ira-color.c (allocno_copy_cost_saving): New.
	(improve_allocation): Use it.

2016-03-29  Richard Henderson  <rth@redhat.com>

	PR middle-end/70355
	* lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.

2016-03-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/70424
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
	use alignment returned by get_pointer_alignment_1 if it is
	bigger than BITS_PER_UNIT.
	* builtins.c (get_pointer_alignment_1): Do not return true
	for alignment extracted from SSA info.

2016-03-28  James Bowman  <james.bowman@ftdichip.com>

	* config/ft32/ft32.opt (mnodiv): New.
	* config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
	* doc/invoke.texi (FT32 Options -mnodiv): New.

2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70406
	* config/i386/i386.md (define_split, andn): Fix modes.

2016-03-26  Richard Biener  <rguenther@suse.de>
	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR ipa/70366
	* ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
	instead of
	TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
	as 2nd argument to cl_optimization_restore().

2016-03-25  Richard Henderson  <rth@redhat.com>

	PR target/70120
	* config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
	* config/aarch64/aarch64-protos.h: Declare it.
	* config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.

2016-03-25  Alan Modra  <amodra@gmail.com>

	PR target/70052
	* config/rs6000/constraints.md (j): Simplify.
	* config/rs6000/predicates.md (easy_fp_constant): Exclude
	decimal float 0.D.
	* config/rs6000/rs6000.md (zero_fp): New mode_attr.
	(mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
	 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
	in all constraint alternatives.
	(movtd_64bit_nodm): Delete "j" constraint alternative.

2016-03-24  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-propagate.c: Enhance docs for
	SSA_PROP_NOT_INTERESTING.

2016-03-24  Aldy Hernandez  <aldyh@redhat.com>

	* doc/extend.texi: Fix typo in documentation to pure attribute.

2016-03-24  John David Anglin  <danglin@gcc.gnu.org>

	PR target/70319
	* config/pa/pa.md (bswapdi2): Use a scratch register.

2016-03-24  Richard Henderson  <rth@redhat.com>

	PR middle-end/69845
	* fold-const.c (extract_muldiv_1): Correct test for multiplication
	overflow.

2016-03-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*anddi3_doubleword): Generate AND insn
	using ix86_expand_binary_operator instead of gen_andsi3.

2016-03-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70396
	* tree-vect-stmts.c (vectorizable_comparison): Use
	get_vectype_for_scalar_type.

2016-03-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/70370
	* gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
	with register bases.

2016-03-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70372
	* tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
	build_all_ones_cst to also handle vector types correctly.

2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70381
	* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
	-mfloat128 here.

2016-03-23  Marek Polacek  <polacek@redhat.com>

	PR c++/69884
	* doc/invoke.texi: Document -Wignored-attributes.

2016-03-23  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/69042
	* params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
	parameter from 30 to 40.

2016-03-23  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/69042
	* tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
	for use with constant offset stripped in base.

2016-03-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/70251
	* match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
	mode compatibility check.
	(A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.

2016-03-23  Jeff Law  <law@redhat.com>

	PR tree-optimization/64058
	* tree-ssa-coalesce.c (struct coalesce_pair): Add new field
	CONFLICT_COUNT.
	(struct ssa_conflicts): Move up earlier in the file.
	(conflicts_, var_map_): New static variables.
	(initialize_conflict_count): New function to initialize the
	CONFLICT_COUNT field for each conflict pair.
	(compare_pairs): Lazily initialize the conflict count and use it
	as the first tie-breaker.
	(sort_coalesce_list): Add new arguments conflicts, map.  Initialize
	and wipe conflicts_ and map_ around the call to qsort.  Remove
	special case for 2 coalesce pairs.
	* bitmap.c (bitmap_count_unique_bits): New function.
	(bitmap_count_bits_in_word): New function, extracted from
	bitmap_count_bits.
	(bitmap_count_bits): Use bitmap_count_bits_in_word.
	* bitmap.h (bitmap_count_unique_bits): Declare it.

2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/69917
	* config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
	transparent alias chain for decl assembler name.
	* config/sol2.c (solaris_assemble_visibility): Likewise.

2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm1020e.md (1020call_op): Reduce reservation
	duration.
	(v10_fdivs): Likewise.
	(v10_fdivd): Likewise.

2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR driver/70132
	* config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
	to not call fclose twice on file.

2016-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70354
	* tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
	oprnd0 is wider than oprnd1 and there is a cast from the wider
	type to oprnd1, mask it with the mask of the narrower type.

	PR target/70321
	* config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
	Optimize TARGET_STV splitters, if high or low word of last argument
	is 0 or -1.

2016-03-22  Jeff Law  <law@redhat.com>

	PR target/70232
	tree-ssa-threadbackward.c
	(fsm_find_control_statement_thread_paths): Correctly distinguish
	between old style jump threads vs FSM jump threads.

2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/70302
	* config/i386/i386.c (scalar_chain::convert_op): Support
	uninitialized register usage case.

2016-03-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/70251
	* genmatch.c (gen_transform): Adjust last parameter to a three-state
	int...
	(capture::gen_transform): ... to change behavior when substituting
	a condition into cond or not-cond expr context.
	(dt_simplify::gen_1): Adjust.
	* gimple-match-head.c: Include gimplify.h for unshare_expr.
	* match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
	last change and instead change to
	A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
	(A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.

2016-03-22  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
	issue for moxiebox targets.
	(CC1PLUS_SPEC): Ditto.

2016-03-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/70333
	* fold-const.c (extract_muldiv_1): Properly perform multiplication
	in the wide type.

2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c (def_builtin): Remove duplicated functionality.

2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70325
	* config/i386/i386.c (def_builtin): Handle
	OPTION_MASK_ISA_AVX512VL to be and-ed with other
	bits.
	(const struct builtin_description bdesc_special_args[]):
	Remove duplicate ISA bits.

2016-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/70329
	* config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
	d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
	in a way that works also for AVX512BW.

	PR target/70300
	* config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
	instead of source if operands[1] is xmm16 and above and
	!TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
	vec_interleave_lowv4sf if we need to unpack xmm16 and above.

	PR c++/70295
	* gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
	on assign if (*from_p) is a comparison, set it to
	TREE_NO_WARNING (*from_p).

2016-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/70326
	* lra.c (restore_scratches): Ignore deleted insns.

2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70317
	* match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
	to HONOR_NANS.

2016-03-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/70327
	* config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
	of ix86_expand_move.
	(movoi): Ditto.
	(movti): Use general_operand for operand 1 predicate.

2016-03-21  Martin Liska  <mliska@suse.cz>

	* hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
	insns.
	(dump_hsa_symbol): Dump BRIG offset of hsa_symbols.

2016-03-21  Martin Liska  <mliska@suse.cz>

	PR ipa/70306
	* ipa-icf.c (sem_function::parse): Skip static
	constructors and destructors.

2016-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/70296
	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
	function-like macro, peek following token(s) if it is followed
	by CPP_OPEN_PAREN token with optional padding in between, and
	if not, don't treat it like a macro.

2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
	    Alexander Monakov  <amonakov@ispras.ru>

	* config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
	for the stabs debug format.

2016-03-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70310
	* tree-vect-generic.c (expand_vector_condition): Fold the built
	condition.

2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70293
	* config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
	Block third alternative for AVX-512VL target,

2016-03-21  Martin Liska  <mliska@suse.cz>

	PR hsa/70234
	* hsa-brig.c (emit_function_directives): Mark unemitted
	global variables for emission.
	* hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
	(get_symbol_for_decl): Likewise.
	* hsa.h (struct hsa_symbol): New flag.

2016-03-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70288
	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
	we do not estimate unsimplified all-constant conditionals or
	switches as optimized away.

2016-03-21  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/69102
	* sched-deps.c (sched_analyze_insn): Do not set last_args_size field
	when we have a readonly dependency context.

2016-03-18  Jeff Law  <law@redhat.com>

	PR rtl-optimization/70263
	* ira.c (memref_used_between_p): Assert we found END in the insn chain.
	(update_equiv_regs): When trying to move a store to after the insn
	that sets the source of the store, make sure the store occurs after
	the insn that sets the source of the store.  When successful note
	the REG_EQUIV note created in the dump file.

2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
	    Bernd Schmidt  <bschmidt@redhat.com>

	* doc/extend.texi: Document more potential problems with basic asms.

2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/70278
	* lra-constraints.c (split_reg): Handle the case where biggest_mode is
	VOIDmode.

2016-03-18  Jason Merrill  <jason@redhat.com>

	* calls.c (load_register_parameters): Fix zero size sibcall logic.

2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md: Use vpbroadcastq for broadcasting DF
	values to 128b regs.

2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR tree-optimization/70252
	* tree-vect-stmts.c (supportable_widening_operation): Check resulting
	boolean vector has a proper number of elements.
	(supportable_narrowing_operation): Likewise.

2016-03-18  Tom de Vries  <tom@codesourcery.com>

	PR ipa/70269
	* cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.

2016-03-18  Jakub Jelinek  <jakub@redhat.com>

	* reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
	instead of replace_rtx for DEBUG_INSNs.

2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/znver1.md : Fix latencies of FP/SSE/AVX
	load type reservations.

2016-03-17  John David Anglin  <danglin@gcc.gnu.org>

	PR target/70188
	* config/pa/constraints.md: Revert 2015-02-13 change.  Use
	define_constraint for "Q" and "T" constraints.

2016-03-17  Evandro Menezes  <e.menezes@samsung.com>

	Tweak the pipeline model for Exynos M1

	* config/aarch64/aarch64.c (exynosm1_tunings): 	Enable weak prefetching
	model.

2016-03-17  David Malcolm  <dmalcolm@redhat.com>

	PR c/70264
	* diagnostic-show-locus.c (compatible_locations_p): Handle the case
	where one or both locations aren't within a line_map.

2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/70192
	* opts.c (finish_options): Don't set flag_pie to the default if
	-fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
	if it is -1.

2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/i386/i386.md (*movv4qicc_insn+1..36): Pass
	true as ALL_REGS argument to replace_rtx.

2016-03-17  Richard Biener  <rguenther@suse.de>

	PR debug/70271
	* dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
	last.

2016-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/70245
	* rtl.h (replace_rtx): Add ALL_REGS argument.
	* rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
	equality and assert mode is the same, instead of just rtx pointer
	equality.
	* config/i386/i386.md (mov + arithmetics with load peephole): Pass
	true as ALL_REGS argument to replace_rtx.

2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
	for boolean vector with vector mode only.
	(A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.

2016-03-17  Nick Clifton  <nickc@redhat.com>

	PR target/70162
	* config/rx/rx.c (rx_print_integer): Print negative constants in
	decimal.

2016-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/70261
	* rtlanal.c (replace_rtx): Revert 2016-03-16 change.

2016-03-16  Richard Henderson  <rth@redhat.com>
	    Richard Biener  <rguenth@suse.de>

	PR middle-end/70240
	PR middle-end/68215
	PR tree-opt/68714
	* gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
	first operand as is_gimple_condexpr.

	PR middle-end/70240
	PR middle-end/68215
	Revert r231575
	2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
	* tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
	Do not gimplify the result.
	(do_unop): Adjust call to tree_vec_extract.
	(do_binop): Likewise.
	(do_compare): Likewise.
	(do_plus_minus): Likewise.
	(do_negate): Likewise.
	(expand_vector_condition): Likewise.
	(do_cond): Likewise.

2016-03-16  Richard Henderson  <rth@redhat.com>

	PR target/70048
	* config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
	(aarch64_classify_address): Use it.
	(aarch64_legitimize_address): Force all subexpressions of PLUS
	into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.

2016-03-16  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenth@suse.de>

	PR target/70245
	* rtlanal.c (replace_rtx): For REG, if from is a REG,
	return to even if only REGNO is equal, and assert
	mode is the same.

2016-03-11  Jeff Law  <law@redhat.com>

	PR rtl-optimization/70224
	* reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.

2016-03-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/70199
	* function.h (struct function): Add has_forced_label_in_static.
	* gimplify.c (force_labels_r): Set it.
	* lto-streamer-in.c (input_struct_function_base): Read it.
	* lto-streamer-out.c (output_struct_function_base): Write it.
	* tree-inline.c (has_label_address_in_static_1): Remove.
	(copy_forbidden): Remove fndecl parameter; test
	has_forced_label_in_static.
	(inline_forbidden_p): Update call to copy_forbidden.
	(tree_versionable_function_p): Likewise.
	* ipa-chkp.c (chkp_instrumentable_p): Likewise.
	(chkp_versioning): Likewise.
	* tree-inline.h (copy_forbidden): Update decl.

2016-03-16  Marek Polacek  <polacek@redhat.com>

	PR c/70093
	* cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
	function being thunked if the result type doesn't have fixed size.
	* gimplify.c (gimplify_modify_expr): Also set LHS if the result type
	doesn't have fixed size.

2016-03-16  Bin Cheng  <bin.cheng@arm.com>

	* tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
	reporting malformed loop nest.

2016-03-16  Tom de Vries  <tom@codesourcery.com>

	PR lto/70187
	* ipa-devirt.c (possible_polymorphic_call_targets): Move
	nodes.length () == 1 test to before first nodes[0] access.

2016-03-16  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68715
	* graphite-scop-detection.c (scop_detection::merge_sese): Add missing
	single_pred_p test.

2016-03-16  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68809
	* graphite-scop-detection.c (same_close_phi_node): Test if result types
	are the same.

2016-03-16  Carlos O'Donell  <carlos@redhat.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Common Function Attributes): Describe ifunc impact
	on leaf attribute. Mention ELF interposition problems.

2016-03-16  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/69195
	PR rtl-optimization/47992
	* ira.c (indirect_jump_optimize): Ignore artificial defs.
	Add comments.

2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/69513
	* dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.

2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* config/avr/avr.md (rotl<mode>3): Set mode for operand 2.

2016-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70222
	* combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
	optimization if mode is different from result_mode, queue up masking
	of the result in outer_op.  Formatting fix.

	PR middle-end/70239
	* tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
	of safe_grow.

2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/69032
	* sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
	looping backwards over basic block insns.

2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR target/66660
	* sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
	to non-speculative when propagating trap bits.

2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/63384
	* sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
	DEBUG_INSN_P insns.

2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR target/64411
	* sched-deps.c (get_implicit_reg_pending_clobbers): New function,
	factored out from ...
	(sched_analyze_insn): ... here.
	* sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
	* sel-sched-ir.c (setup_id_implicit_regs): New function, use
	get_implicit_reg_pending_clobbers in it.
	(setup_id_reg_sets): Use setup_id_implicit_regs.
	(deps_init_id): Ditto.

2016-03-15  Tom de Vries  <tom@codesourcery.com>

	PR ipa/70161
	* cgraph.c (cgraph_node::get_body): Save, reset and restore
	dump_file_name.
	* passes.c (execute_one_ipa_transform_pass): Add missing argument to
	execute_function_dump.
	(execute_one_pass): Don't dump function if it will be dumped after ipa
	transform.

2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* genrecog.c (match_pattern_2): If pred is NULL don't call
	safe_predicate_mode on it.

2016-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/70219
	* lra-constraints.c (delete_move_and_clobber): Change assertion
	to also allow dregno == 0.

2016-03-14  Richard Henderson  <rth@redhat.com>

	PR tree-opt/68714
	* tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
	(can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
	(reassociate_bb): Use optimize_vec_cond_expr; avoid
	optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
	on vectors.

2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>

	PR target/70083
	* lra-lives.c (process_bb_lives): Also update biggest mode for hard
	regs.
	(lra_create_live_ranges_1): initialize hard register biggest_mode to
	VOIDmode.
	* lra-constraints.c (split_reg): For hard regs, try to find the
	biggest single-register mode used in the function.

2016-03-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56365
	* tree-ssa-phiopt.c (minmax_replacement): Handle alternate
	constants to compare against.

2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/70098
	* config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
	*ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
	(define_split for the GPR case): Use int_reg_operand instead of
	gpc_reg_operand for the output.

2016-03-14  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/70045
	* graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
	create_empty_if_region_on_edge argument.

2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
	(STACK_CHECK_PROTECT): Likewise.
	* config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
	(STACK_CHECK_PROTECT): Likewise.
	* config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
	(STACK_CHECK_PROTECT): Likewise.
	* config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
	* config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	(STACK_CHECK_PROTECT): Likewise.

2016-03-12  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/69307
	* sel-sched.c (choose_best_pseudo_reg): Properly check for hard
	registers in modes that span more than one register.

2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69614
	* lra-constraints.c (delete_move_and_clobber): New.
	(remove_inheritance_pseudos): Use it.

2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/70017
	* calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
	the libcall is LCT_THROW.
	* explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
	for the checking routine.

2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70131
	* config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
	optimization if we have direct move.
	(roundu32<mode>2_fprs): Likewise.

2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>

	PR target/70123
	* lra-remat.c (operand_to_remat): Disallow hard regs in the value t
	be rematerialized.
	(reg_overlap_for_remat_p): Renamed from input_regno_present_p.
	Arguments swapped.  All callers changed.  Take reg_renumber into
	account, and Calculate and compare register ranges for hard regs.

2016-03-11  Jeff Law  <law@redhat.com>

	PR tree-optimization/70190
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Handle cases where we can not extract the taken edge, even though we
	found a constant value.

	PR tree-optimization/64058
	* tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
	(num_coalesce_pairs): Move up earlier in file.
	(find_coalesce_pair): Initialize the INDEX field for each pair
	discovered.
	(compare_pairs): No longer sort on the elements in each pair.
	Instead break ties with the index of the coalesce pair.

2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/70002
	* config/aarch64/aarch64-protos.h
	(aarch64_save_restore_target_globals): New prototype.
	* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
	Call the above when popping pragma.
	* config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
	New function.
	(aarch64_set_current_function): Rewrite using the above.

2016-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70177
	* gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
	(extract_ops_from_tree): ... this.  In the 2 argument
	overload remove _1 suffix.
	* gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
	(extract_ops_from_tree): ... this.
	* gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
	Adjust callers.
	* tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
	* tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
	extract_ops_from_tree instead of 2 operand one.

2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/70013
	* tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
	for constant-pool entries.

2016-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70174
	* expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
	followed by gen_lowpart on force_reg instead of just gen_lowpart.

	PR tree-optimization/70169
	* tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
	LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
	for unknown codes.

2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/70160
	* config/i386/i386.c (scalar_chain::convert_reg): Skip uses
	of uninitialized values.

2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("trunctddd2"): Turn former define_insn into
	define_expand.
	("*trunctddd2"): New pattern definition.
	("trunctdsd2"): Set prep_for_short_prec rounding mode for the
	TD->DD truncation.

2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
	definitions for BFP and DFP rounding modes.
	("fixuns_truncdddi2", "fixuns_trunctddi2")
	("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
	("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
	("fix_trunctf<mode>2"): Use the new constants instead of magic
	numbers.

2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md: Adjust comment.
	("Y"): Adjust comment.  Rename s390_decompose_shift_count to
	s390_decompose_addrstyle_without_index.
	* config/s390/predicates.md (shift_count_or_setmem_operand):
	Rename to setmem_operand.
	* config/s390/s390-protos.h
	(s390_decompose_shift_count): Rename to
	s390_decompose_addrstyle_without_index.
	* config/s390/s390.c (s390_decompose_shift_count)
	(s390_mem_constraint, print_shift_count_operand)
	(print_operand_address, print_operand): Rename
	s390_decompose_shift_count to
	s390_decompose_addrstyle_without_index and rename
	print_shift_count_operand to print_addrstyle_operand troughout the
	file.
	* config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
	("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
	Rename shift_count_or_setmem_operand to setmem_operand.
	* config/s390/vx-builtins.md ("vec_insert<mode>")
	("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
	nonmemory_operand.

2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/70168
	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
	Handle overlapping retval and newval.

2016-03-10  Nick Clifton  <nickc@redhat.com>

	PR target/7044
	* config/aarch64/aarch64.c
	(aarch64_override_options_after_change_1): When forcing
	flag_omit_frame_pointer to be true, use a special value that can
	be detected if this function is called again, thus preventing
	flag_omit_leaf_frame_pointer from being forced to be false.

2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
	Set x_flag_omit_leaf_frame_pointer when handling
	-momit-leaf-frame-pointer.

2016-03-10  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69589
	* cgraph.c (cgraph_node::dump): Dump split_part and
	indirect_call_target.
	* cgraph.h (cgraph_node): Add indirect_call_target flag.
	* ipa.c (has_addr_references_p): Cleanup.
	(is_indirect_call_target_p): New.
	(walk_polymorphic_call_targets): Do not mark virtuals that may be
	called indirectly as local.
	(symbol_table::remove_unreachable_nodes): Compute indirect_call_target.

2016-03-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/69630
	* ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
	on cxa_pure_virtual.

2016-03-10  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69589
	* tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.

2016-03-10  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69589
	* tree.c (need_assembler_name_p): Only record main variant type names.

2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/70113.
	* config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
	Always define to 0 or 1.
	(TARGET_FIX_ERR_A53_843419): New macro.
	* config/aarch64/aarch64-elf-raw.h
	(TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
	* config/aarch64/aarch64-linux.h: Likewise.
	* config/aarch64/aarch64.c
	(aarch64_override_options_after_change_1): Do not default
	aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
	843419 is on.
	(aarch64_attributes): Handle fix-cortex-a53-843419.
	(aarch64_can_inline_p): Likewise.
	* config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.

2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
	Jakub Jelinek <jakub@redhat.com>

	* common.opt (funconstrained-commons, flag_unconstrained_commons): New.
	* tree.c (array_at_struct_end_p): Do not limit to size of decl for
	DECL_COMMONS if flag_unconstrained_commons is set.
	* tree-dfa.c (get_ref_base_and_extent): Likewise.
	* doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
	(funconstrained-commons): Document.

2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
	aarch64-fusion-pairs.def and aarch64-tuning-flags.def

2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
	has a proper number of elements.

2016-03-10  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/69195
	PR rtl-optimization/47992
	* ira.c (recorded_label_ref): Delete.
	(update_equiv_regs): Return void.
	(indirect_jump_optimize): New function.
	(ira): Call indirect_jump_optimize and delete_trivially_dead_insns
	before regstat_compute_ri.  Don't rebuild_jump_labels here.
	Delete update_regstat.

2016-03-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70128
	* tree-ssa-structalias.c (set_uids_in_ptset): Set
	vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.

2016-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70152
	* tree-sra.c (replace_removed_params_ssa_names): Copy over
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.

	PR target/70086
	* config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
	instead of gen_sse2_loadlpd.
	* config/i386/sse.md (*vec_concatv2df): Rename to...
	(vec_concatv2df): ... this.

	PR tree-optimization/70127
	* fold-const.c (operand_equal_p): Revert the 2015-10-28 change.

2016-03-09  David Malcolm  <dmalcolm@redhat.com>

	PR c/68473
	PR c++/70105
	* diagnostic-show-locus.c (compatible_locations_p): New function.
	(layout::layout): Sanitize ranges using compatible_locations_p.

2016-03-09  David Malcolm  <dmalcolm@redhat.com>

	PR c/68473
	PR c++/70105
	* diagnostic-show-locus.c (layout_range::layout_range): Replace
	location_range param with three const expanded_locations * and a
	bool.
	(layout::layout): Replace call to
	rich_location::lazily_expand_location with get_expanded_location.
	Extract the range and perform location expansion here, passing
	the results to the layout_range ctor.
	* diagnostic.c (source_range::debug): Delete.
	* diagnostic.h (diagnostic_expand_location): Reimplement in terms
	of rich_location::get_expanded_location.
	* gcc-rich-location.c (get_range_for_expr): Delete.
	(gcc_rich_location::add_expr): Reimplement to avoid the
	rich_location::add_range overload that took a location_range,
	passing a location_t instead.

2016-03-09  Richard Biener  <rguenther@suse.de>
	Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70138
	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
	Also skip vect_double_reduction_def.

2016-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/70049
	* config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
	if the operand is "m".

2016-03-09  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.

2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/i386.c (processor_target_table): Fix cost table
	intialization order for znver1.

2016-03-08  Jakub Jelinek  <jakub@redhat.com>

	* ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
	- becuase -> because.
	* ipa-reference.c (ignore_module_statics): Likewise.
	* cgraph.c (cgraph_node::get_body): Likewise.
	* ipa-inline.c (early_inliner): Likewise.
	* ipa-devirt.c (types_same_for_odr): Likewise.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
	* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.

2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* tree-ssa-math-opts.c: Fix typo in comment.

2016-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/70110
	* config/i386/i386.c (scalar_chain::make_vector_copies,
	scalar_chain::convert_reg): Call end_sequence in between
	get_insns and emit_conversion_insns rather than after both
	calls.

2016-03-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/70064
	* config/i386/i386.h (machine_function): Add
	pc_thunk_call_expanded flag.
	(ix86_pc_thunk_call_expanded): New define.
	* config/i386/i386.md (set_got, set_got_labelled): New expanders.
	(*set_got): Rename insn pattern from set_got.
	(*set_got_labelled): Rename inst pattern from set_got_labelled.
	* config/i386/i386.c (ix86_compute_frame_layout): Use
	ix86_pc_thunk_call_expanded to prevent red-zone.

2016-03-07  Martin Jambor  <mjambor@suse.cz>

	* hsa.h (hsa_get_ctor_statements): Declare.
	(hsa_get_dtor_statements): Likewise.
	(hsa_get_kernel_dispatch_type): Likewise.
	* hsa.c (hsa_get_ctor_statements): New function.
	(hsa_get_dtor_statements): Likewise.
	(hsa_get_kernel_dispatch_type): Likewise.
	* hsa-brig.c (hsa_cdtor_statements): Removed.
	(hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
	hsa_get_dtor_statements.
	* hsa-gen.c (hsa_kernel_dispatch_type): Removed.
	(get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.

2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm-cores.def (cortex-r8): New.
	* config/arm/arm-tables.opt (cortex-r8): Regenerate.
	* config/arm/arm-tune.md: Likewise.
	* gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.

2016-03-07  Martin Sebor  <msebor@redhat.com>

	PR rtl-optimization/19705
	* doc/invoke.texi (Options That Control Optimization): Clarify
	-fno-branch-count-reg.

2016-02-26  Richard Biener  <rguenther@suse.de>
	    Jeff Law  <law@redhat.com>

	PR tree-optimization/69740
	* cfghooks.c (remove_edge): Request loop fixups if we delete
	an edge that might turn an irreducible loop into a natural
	loop.
	* cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
	Move after definition of loops_state_clear.

2016-03-07  Bin Cheng  <bin.cheng@arm.com>

	PR rtl-optimization/69052
	* rtlanal.c (commutative_operand_precedence): Set higher precedence
	to CONST_WIDE_INT.

2016-03-07  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/70116
	* tree-ssa-tail-merge.c	(merge_stmts_p): New function, handling
	is_tm_ending stmts and ubsan/asan internal functions.
	(find_duplicate): Use it.  Don't test is_tm_ending here.

2016-03-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70115
	* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
	(propagate_constants_for_unrolling): Use replace_uses_by.

2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>

	PR middle-end/69916
	* omp-low.c (struct oacc_loop): Add ifns.
	(new_oacc_loop_raw): Initialize it.
	(finish_oacc_loop): Clear mask & flags if no ifns.
	(oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
	(oacc_loop_xform_loop): Add ifns arg & adjust.
	(oacc_loop_process): Adjust oacc_loop_xform_loop call.

2016-03-07  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/70061
	* tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
	(insert_value_copy_on_edge): Likewise.

2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm_neon.h: Show error if using with soft-float ABI.

2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/62281
	* config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.

2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>

	* config/i386/i386.c (znver1_cost): Fix Multiply cost.

2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>

	Fix sseimul type attribute.
	* config/i386/znver1.md
	(znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
	znver1_sseimul_avx256_load) : Fix the type attribute.
	(znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
	pipe usage and latency.

2016-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70084
	* tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
	of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
	to the right type.

2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>

	PR c/69973
	* targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.

	PR rtl-optimization/69941
	* postreload.c (reload_combine_recognize_pattern): Ensure all uses of
	the reg share its mode.

2016-03-04  Jeff Law  <law@redhat.com>

	PR tree-optimization/69196
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	If the both SSA_NAMEs are anonymous, then consider them unassociated
	and include the PHI in the statement count.

2016-03-05  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
	construct in oacc routine.  Check for oacc region in oacc routine.

2016-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/70062
	* config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
	2016-02-22 changes, instead don't recurse if RECUR is already true.
	Don't change *dynamic_check if RECUR.  Adjust recursive caller
	to pass true to the new argument.
	(ix86_expand_set_or_movmem): Adjust decide_alg caller.

	PR target/70059
	* config/i386/sse.md (vec_set_lo_<mode><mask_name>,
	<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
	fixes.
	(vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.

2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/57676
	* lra-assigns.c (lra_assign): Guard test for maximum iterations
	with flag_checking.

2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-patterns.c (search_type_for_mask): Handle
	comparison of booleans.

2016-03-04  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
	Fix @xref usage.

	PR debug/69947
	* dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
	all other ops that have dw_val_class_die_ref operands,
	and DW_OP_GNU_entry_value.

2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/69904
	* config/arm/arm.c (arm_cannot_copy_insn_p):
	Return true for load-exclusive instructions.

2016-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/70021
	* tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
	argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
	the pattern no matter if it is used just by non-pattern, pattern
	or mix thereof.
	(process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
	* tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
	oprnd1 def_stmt is in pattern, don't look through it.

2016-03-03  Marek Polacek  <polacek@redhat.com>

	PR middle-end/70050
	* match.pd (X % -Y): Add INTEGRAL_TYPE_P check.

2016-03-03  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/70043
	* tree-vect-loop.c (optimize_mask_stores): Move iterator to
	previous statement if we see a debug statement.

2016-03-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55936
	* tree-vrp.c (compare_name_with_value): Add use_equiv_p
	parameter and guard unsafe equivalence use.
	(vrp_evaluate_conditional_warnv_with_ops): Always use
	safe equivalences but not via the quadratic compare_names
	helper.

2016-03-03  Michael Collison  <michael.collison@linaro.org>

	PR target/70014
	* config/arm/arm.md (*subsi3_carryin_const): Change predicate
	for operand 1 to s_register_operand. Change predicate for operand
	2 to arm_not_immediate_operand.

2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/tm.texi: Regenerated.

2016-03-02  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/67145
	* simplify-rtx.c (simplify_plus_minus): Allow reassoc without
	simplification when all args are positive non-fixed registers.

2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* target.def (lra_p): Specify that new ports should use LRA.

2016-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/69555
	* gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
	gimplify_type_sizes the type they refer to.
	(omp_notice_variable): Handle reference vars to VLAs.
	* omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
	reference to VLA decls in the second pass instead of first pass.

2016-03-02  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68659
	* graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
	new_expr == NULL_TREE.
	(get_new_name): Handle ADDR_EXPR.

2016-03-02  Bin Cheng  <bin.cheng@arm.com>

	PR rtl-optimization/69052
	* loop-invariant.c (canonicalize_address): New function.
	(inv_can_prop_to_addr_use): Check validity of address expression
	which is canonicalized by above function.

2016-03-02  Alan Modra  <amodra@gmail.com>

	PR ipa/69990
	* ipa-icf.c (sem_variable::merge): Do not merge an alias with
	larger alignment.

2016-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/70028
	* config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
	(*movhi_internal): Put mask moves from and to memory separately
	from moves from/to GPRs.

2016-03-02  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
	GENERIC expressions in GIMPLE.

2016-03-02  Richard Biener  <rguenther@suse.de>

	* config/i386/i386.c (type_natural_mode): Fix typo.

2016-03-02  Nick Clifton  <nickc@redhat.com>

	* config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.

2016-03-02  Richard Biener  <rguenther@suse.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/67278
	* config/i386/i386.c (type_natural_mode): Handle XFmode vectors.

2016-03-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/67278
	* tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.

2016-03-02  Marek Polacek  <polacek@redhat.com>

	PR c/67854
	* gimplify.c (gimplify_va_arg_expr): Use expanded location for the
	"is promoted to" warning.

2016-03-01  DJ Delorie  <dj@redhat.com>

	* config.gcc: Deprecate mep-*.

2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/70025
	* lra-constraints.c (regno_val_use_in): New.
	(match_reload): Use it instead of regno_use_in.

2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/70007
	* gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
	references present in REG_EQUAL notes attached to non-SET patterns.

2016-03-01  Jeff Law  <law@redhat.com>

	PR tree-optimization/69196
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Appropriately clamp the number of statements to copy when the
	thread path does not traverse a loop backedge.

	PR tree-optimization/69196
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Do count some PHIs in the thread path against the insn count.  Decrease
	final statement count by one as the control statement in the last
	block will get removed.  Remove special cased code for handling PHIs
	in the last block.

2016-03-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/70027
	* config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
	asm dialect alternatives to explicit GOTPCREL calls.

2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/70017
	* ira.c (do_reload): Issue warning for generic stack checking here...
	* reload1.c (reload): ...instead of here and streamline it.

2016-03-01  Nick Clifton  <nickc@redhat.com>

	* config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.

2016-03-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69983
	* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
	types and fall back to operand_equal_p.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Revert
	2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md ("jm8"): New constraint.
	* config/s390/predicates.md ("const_int_8bitset_operand"): New
	predicate.
	* config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
	into ...
	("*setmem_long<setmem_and>"): New pattern.
	("*setmem_long_31z", "*setmem_long_and_31z"): Merge
	into ...
	("*setmem_long_31z<setmem_and>"): New pattern.
	* config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
	New substitution rules with the required attributes.


2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Revert
	2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gensupport.c (process_substs_on_one_elem): Split loop to
	complete mark_operands_used_in_match_dup on all expressions in the
	vector first.
	(adjust_operands_numbers): Inline into process_substs_on_one_elem
	and remove function.

2016-03-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/70022
	* fold-const.c (fold_indirect_ref_1): Fix range checking for
	vector BIT_FIELD_REF extract.

2016-03-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69994
	* tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.

2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR tree-optimization/69956
	* tree-vect-stmts.c (supportable_widening_operation): Support
	multi-step conversion of boolean vectors.
	(supportable_narrowing_operation): Likewise.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Don't accept SImode
	anymore.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/subst.md (DSI_VI): New mode iterator.
	("addr_style_op_subst"): Use DSI_VI instead of DSI.
	* config/s390/vector.md ("vec_set<mode>"): Move expander before
	the insn definition.
	("*vec_set<mode>"): Change predicate and add alternative to
	support only either register or const_int operands as element
	selector.
	("*vec_set<mode>_plus"): New pattern to support reg + const_int
	operands.
	("vec_extract<mode>"): New expander.
	("*vec_extract<mode>"): New insn definition supporting reg and
	const_int element selectors.
	("*vec_extract<mode>_plus"): New insn definition supporting
	reg+const_int element selectors.
	("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
	following expander+insn definition.
	("<vec_shifts_name><mode>3"): New expander.
	("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("*tabort_1"): Change predicate to
	nonmemory_operand.  Add a second alternative to cover
	register as well as const int operands.
	("*tabort_1_plus"): New pattern definition.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("*ashrdi3_cc_31")
	("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
	("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
	Merge insn definitions into ...
	("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
	New pattern definition.
	("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
	("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
	("*ashr<mode>3_and"): Merge insn definitions into ...
	("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
	New pattern definition.
	* config/s390/subst.md ("addr_style_op_cc_subst")
	("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
	substitutions patterns plus attributes.
	Add ashiftrt to SUBST iterator.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("<shift><mode>3"): Change predicate of
	op2 to nonmemory_operand.
	("*<shift>di3_31", "*<shift>di3_31_and"):
	Merge into single pattern definition ...
	("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
	("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
	pattern definition ...
	("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
	* config/s390/subst.md: Add ashift and lshiftrt to SUBST
	iterator.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/predicates.md (const_int_6bitset_operand): New
	predicate.
	* config/s390/s390.md: Include subst.md.
	("rotl<mode>3"): New expander.
	("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
	...
	("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
	* config/s390/subst.md: New file.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("op_type", "atype", "length" attributes):
	Remove RRR type.  It doesn't really exist.
	("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
	attributes.
	("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
	("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
	("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
	("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
	("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
	("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
	`enabled' attribute.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gensupport.c (process_substs_on_one_elem): Split loop to
	complete mark_operands_used_in_match_dup on all expressions in the
	vector first.
	(adjust_operands_numbers): Inline into process_substs_on_one_elem
	and remove function.

2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/69706
	* config/sparc/sparc.c (NWORDS_UP): Rename to...
	(CEIL_NWORDS): ...this.  Use CEIL macro.
	(compute_fp_layout): Adjust to above renaming.
	(function_arg_union_value): Likewise.
	(sparc_arg_partial_bytes): Likewise.
	(sparc_function_arg_advance): Likewise.

2016-02-29  Jeff Law  <law@redhat.com>

	PR tree-optimization/70005
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
	where an object with a boolean range is compared against a value
	outside [0..1].

	PR tree-optimization/69999
	* gimple-ssa-split-paths.c (split_paths): When duplicating a block
	with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
	loop cleanups.

2016-02-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69994
	* tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
	(get_unary_op): Look through nop conversions.
	(ops_equal_values_p): New function, look for equality diregarding
	nop conversions.
	(eliminate_plus_minus_pair): Use ops_equal_values_p
	(repropagate_negates): Do not use get_unary_op here.

2016-02-29  Martin Liska  <mliska@suse.cz>

	* system.h: Poison ENABLE_CHECKING macro.

2016-02-29  Martin Liska  <mliska@suse.cz>

	* hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
	is presented in dump flags.
	* hsa-regalloc.c (linear_scan_regalloc): Likewise.
	(hsa_regalloc): Likewise.

2016-02-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69980
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
	permutation of those we need to keep.

2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/69706
	* config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
	(NWORDS_UP): ...this
	(init_cumulative_args): Minor tweaks.
	(sparc_promote_function_mode): Likewise.
	(scan_record_type): Delete.
	(traverse_record_type): New function template.
	(classify_data_t): New structure type.
	(classify_registers): New inline function.
	(function_arg_slotno): In 64-bit mode, bail out early if FP slots are
	exhausted.  Instantiate traverse_record_type on classify_registers and
	deal with the case of a structure passed in slot #15 with no FP field
	in the first word.
	(assign_data_t): New structure type.
	(compute_int_layout): New static function.
	(compute_fp_layout): Likewise.
	(count_registers): New inline function.
	(assign_int_registers): New static function.
	(assign_fp_registers): Likewise.
	(assign_registers): New inline function.
	(function_arg_record_value_1): Delete.
	(function_arg_record_value_2): Likewise.
	(function_arg_record_value_3): Likewise.
	(function_arg_record_value): Adjust to above changes.  Instantiate
	traverse_record_type on count_registers to first count the number of
	registers to be used and then on assign_registers to assign them.
	(function_arg_union_value): Adjust to above renaming.
	(sparc_function_arg_1); Minor tweaks.  Remove commented out code.
	(sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
	case of a structure passed in slot #15
	(sparc_function_arg_advance): Likewise.
	(function_arg_padding): Minor tweak.

2016-02-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69720
	* tree-vect-loop.c (get_initial_def_for_reduction): Avoid
	the adjustment_def path for possibly vectorized defs.
	(vect_create_epilog_for_reduction): Handle vectorized initial
	defs properly.

2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.

2016-02-27  Jeff Law  <law@redhat.com>

	Revert
	2016-02-26  Richard Biener  <rguenther@suse.de>
		    Jeff Law  <law@redhat.com>

	PR tree-optimization/69740
	* cfghooks.c (remove_edge): Request loop fixups if we delete
	an edge that might turn an irreducible loop into a natural
	loop.

2016-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69896
	* tree-vect-generic.c (get_compute_type): Avoid single element
	vector types.

2016-02-26  Evandro Menezes  <e.menezes@samsung.com>

	Rename the AArch64 tuning option and related functions to enable the
	Newton series for the reciprocal square root to reflect its
	approximative characteristic.

	* config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
	function to "aarch64_emit_approx_rsqrt".
	* config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
	AARCH64_EXTRA_TUNE_APPROX_RSQRT.
	* config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
	(xgene1_tunings): Likewise.
	(use_rsqrt_p): Likewise.
	(aarch64_emit_swrsqrt): Use new function name.
	* config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
	* config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
	text explaining this option.
	* doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.

2016-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/69969
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	complain about -mallow-movmisalign without -mvsx if
	TARGET_ALLOW_MOVMISALIGN was not set explicitly.

2016-02-26  Joel Sherrill  <joel@rtems.org>

	* config.gcc: Add x86_64-*-rtems*.
	* gcc/config/i386/rtems-64.h: New file.

2016-02-26  Joel Sherrill  <joel@rtems.org>

	* config.gcc: Add aarch64-*-rtems*.
	* gcc/config/aarch64/rtems.h: New file.

2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/69946
	* config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
	shift amount using %h.  Add comment.

2016-02-26  Richard Biener  <rguenther@suse.de>
	    Jeff Law  <law@redhat.com>

	PR tree-optimization/69740
	* cfghooks.c (remove_edge): Request loop fixups if we delete
	an edge that might turn an irreducible loop into a natural
	loop.

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/69920
	* tree-sra.c (sra_modify_assign): Do not remove loads of
	uninitialized aggregates to SSA_NAMEs.

2016-02-26  Richard Henderson  <rth@redhat.com>

	PR target/69709
	* config/s390/s390.md (risbg and risbgn splitters): Allocate new
	pseudo in case the target rtx matches the source of the left
	shift.

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	PR hsa/69568
	* hsa.h (hsa_type_packed_p): Declare.
	* hsa.c (hsa_type_packed_p): New function.
	* hsa-gen.c (mem_type_for_type): Use unsigned type for packed
	loads.
	(gen_hsa_insns_for_store): Use hsa_type_packed_p.
	* hsa-brig.c (emit_basic_insn): Likewise.

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	pr hsa/69674
	* hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
	pointers.
	(gen_hsa_addr): Allow integer constants in TMR_INDEX2.

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	* hsa.h (is_a_helper): New overload for hsa_op_immed for
	hsa_op_with_type operands.
	(hsa_unsigned_type_for_type): Declare.
	* hsa.c (hsa_unsigned_type_for_type): New function.
	* hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
	(gen_hsa_insns_for_operation_assignment): Satisfy constrains of
	the finalizer.  Do not emit extra move.

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	* hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
	atomic operations in private segment.

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	* omp-low.c (grid_find_ungridifiable_statement): Store problematic
	statements to wi->info.  Also disallow omp simd constructs.
	(grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
	for not gridifying.  Dump special string for omp_for.

2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69245
	* config/aarch64/aarch64.c (aarch64_set_current_function):
	Save/restore target globals when switching to
	target_option_default_node.

2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69613
	* config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
	Return 0 if !SHIFT_COUNT_TRUNCATED.

2016-02-26  Jakub Jelinek  <jakub@redhat.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/69891
	* dse.c (scan_insn): If we can't figure out memset arguments
	or they are non-constant, call clear_rhs_from_active_local_stores.

2016-02-26  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi: Mention clog10, clog10f an clog10l
	in Builtins section.

2016-02-26  Martin Liska  <mliska@suse.cz>

	* dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
	CHECKING_P.
	(resolve_args_picking_1): Likewise.
	* dwarf2out.h (struct GTY): Likewise.

2016-02-26  Martin Liska  <mliska@suse.cz>

	* hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
	with flag_checking.
	* hsa-regalloc.c (linear_scan_regalloc): Likewise.

2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
	    Martin Liska  <mliska@suse.cz>

	* doc/install.texi: Mention --enable-valgrind-annotations.

2016-02-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69551
	* tree-ssa-structalias.c (get_constraint_for_ssa_var): When
	looking through aliases adjust DECL_PT_UID to refer to the
	ultimate alias target.

2016-02-25  Martin Liska  <mliska@suse.cz>

	PR middle-end/69919
	* alloc-pool.c (after_memory_report): New variable.
	* alloc-pool.h (base_pool_allocator ::release): Do not use
	the infrastructure if after_memory_report.
	* toplev.c (toplev::main): Mark after memory report.

2016-02-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/48795
	* tree-vrp.c (check_array_ref): Use array_at_struct_end_p.

2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>

	PR driver/68463
	* config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
	offloading is enabled and -fopenacc or -fopenmp is specified.
	(CRTOFFLOADEND): Likewise.
	(GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
	(GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
	* lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
	(offload_objects_file_name): New static var.
	(tool_cleanup): Remove offload_objects_file_name file.
	(find_offloadbeginend): Replace with ...
	(find_crtoffloadtable): ... this.
	(run_gcc): Remove offload_argc and offload_argv.
	Get offload_objects_file_name from -foffload-objects=... option.
	Read names of object files with offload from this file, pass them to
	compile_images_for_offload_targets.  Don't call find_offloadbeginend and
	don't pass offloadbegin and offloadend to the linker.  Don't pass
	offload non-LTO files to the linker, because now they're not claimed.

2016-02-25  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/69630
	* ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
	on builtin_unreachable.

2016-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69896
	* regcprop.c: Include cfgrtl.h.
	(copyprop_hardreg_forward_1): If noop_p insn uses narrower
	than remembered mode, either delete it (if noop_move_p), or
	treat like copy_p but not noop_p instruction.

2016-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/69705
	* dwarf2out.c (gen_variable_die): Work around buggy LTO
	- allow NULL decl for Fortran DW_TAG_common_block variables.

2016-02-24  Jason Merrill  <jason@redhat.com>

	* common.opt (flifetime-dse): Add -flifetime-dse=1.

2016-02-24  Richard Biener  <rguenther@suse.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69760
	* tree-scalar-evolution.c (interpret_rhs_expr): Re-write
	conditionally executed ops to well-defined overflow behavior.

2016-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69915
	* tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
	elements.

2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/69886
	* gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
	argument.  Use it when checking validity of set instructions.
	(want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
	(compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
	callsite.
	* rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
	* store-motion.c (find_moveable_store): Update
	can_assign_to_reg_without_clobbers_p callsite.

2016-02-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/68963
	* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
	bogus check.
	(record_nonwrapping_iv): Do not fall back to the low/high bound
	for non-constant IV bases if the stmt is not always executed.

2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-cores.def (cortex-a32): New entry.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
	* config/arm/t-aprofile: Handle mcpu=cortex-a32.
	* doc/invoke.texi (ARM Options): Document cortex-a32 as value
	for -mcpu and -mtune.

2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69875
	* config/arm/arm.h (TARGET_HAVE_LPAE): Define.
	* config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
	* config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
	(atomic_loaddi_1): Delete.
	(atomic_loaddi): Rewrite expander using the above changes.

2016-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/69918
	* params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
	2 to 3.

2016-02-24  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenth@suse.de>

	PR middle-end/69909
	* expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
	set_mem_attributes if tem is SSA_NAME which got expanded
	as a MEM.

2016-02-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69907
	* tree-vect-stmts.c (vectorizable_load): Check for gaps at the
	end of permutations for BB vectorization.

2016-02-24  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm-c.c (arm_option_override): Initialize
	target_option_current_node.
	* config/arm/arm.c (arm_pragma_target_parse): Replace
	build_target_option_node call by target_option_current_node.
	Set target_option_current_node.
	Fix comments.

2016-02-23  David Edelsohn  <dje.gcc@gmail.com>

	PR target/69810
	* config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
	define_insn_and_split to define_insn.
	(zero_extendqi<mode>2_dot2): Same.
	(extendqi<mode>2_dot): Same.
	(extendqi<mode>2_dot2): Same.

2016-02-23  Evandro Menezes  <e.menezes@samsung.com>

	* config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
	and add bypass for AES{D,E} and AESMC pairs.
	* config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
	and AESMC pairs.

2016-02-23  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
	series for reciprocal square root in Exynos M1.

2016-02-23  Martin Sebor  <msebor@redhat.com>

	PR c/69759
	* doc/extend.texi (Other Builtins): Document __builtin_alloca and
	__builtin_alloca_with_align.

2016-02-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
	(ix86_register_pragmas): Remove __seg_tls.
	* config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
	* config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
	(ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
	(ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
	(ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
	* doc/extend.texi (__seg_tls): Remove item.

2016-02-23  Richard Biener  <rguenther@suse.de>

	* alloc-pool.h (struct allocation_object): Make id member
	conditional on CHECKING_P again.
	(get_instance): Adjust.
	(base_pool_allocator): Likewise.

2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>

	* tree-parloops.c (create_parallel_loop, gen_parallel_loop)
	(parallelize_loops): In OpenACC kernels mode, set n_threads to
	zero.
	(pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
	flag_openacc.
	* tree-ssa-loop.c (gate_oacc_kernels): Likewise.

2016-02-23  Richard Biener  <rguenther@suse.de>

	* mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
	* bitmap.h (struct bitmap_usage): Likewise.
	(bitmap_move): Declare.
	* bitmap.c (register_overhead): Take size_t argument.
	(bitmap_move): New function.
	* df-problems.c (df_rd_transfer_function): Use bitmap_move
	to properly account overhead.
	* tree.c (free_node): Use tree_size.

2016-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/69902
	* fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
	when inverting comparison.

	PR c/69900
	* common.opt (Wunreachable-code): Add Warning flag.

2016-02-23  Mark Wielaard  <mjw@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c/69911
	* cgraphunit.c (check_global_declaration): Check main_input_filename
	and DECL_SOURCE_FILE are not NULL.

2016-02-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/69666
	* tree-sra.c (sra_modify_assign): Do not attempt to create
	default_def replacements for unscalarizable regions.

2016-02-20  Mark Wielaard  <mjw@redhat.com>

	PR c/28901
	* cgraphunit.c (check_global_declaration): Check level of
	warn_unused_const_variable and main_input_filename.
	* doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
	(-Wunused-variable): For C implies -Wunused-const-variable=1.
	(-Wunused-const-variable): Explain levels 1 and 2.

2016-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/69888
	* config/i386/i386.c (decide_alg): Ensure we don't recurse with
	identical arguments.  Formatting and spelling fixes.

	PR target/69885
	* doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
	be specified.

	PR target/69894
	PR target/69895
	* config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
	and m68k-devices.def.
	* config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
	* config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.

2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
	and HImode registers.

2016-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69882
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
	preserve permutations present because of gaps.
	(vect_supported_load_permutation_p): Always continue checking
	permutations after vect_attempt_slp_rearrange_stmts.

2016-02-22  Bin Cheng  <bin.cheng@arm.com>

	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
	min_profitable_estimate, rather than min_profitable_iters.

2016-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/69885
	* config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
	SImode for last match_operand.

2016-02-22  Martin Liska  <mliska@suse.cz>

	* hsa-gen.c (gen_hsa_clrsb): In case of zero value,
	return bitsize - 1 as the return value.

2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/69806
	PR target/54089
	* config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
	Handle negative shift counts.
	* config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
	force_reg on the shift constant.
	(lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
	(lshrsi3_d): Handle negative shift counts.

2016-02-22  Richard Biener  <rguenther@suse.de>
	    Tom de Vries  <tom@codesourcery.com>

	* graph.c: Include dumpfile.h.
	(print_graph_cfg): Split into three overloads.
	* gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.

2016-02-22  Tom de Vries  <tom@codesourcery.com>

	* gdbhooks.py (class DumpFn): Add and instantiate, adding command
	dump-fn.

2016-02-22  Richard Biener  <rguenther@suse.de>

	PR ipa/37448
	* ipa-inline-transform.c (inline_call): When not updating
	overall summaries adjust self size by the growth estimate.
	* ipa-inline.c (inline_to_all_callers_1): Add to the callers
	hash-set, do not update overall summaries here.  Renamed from ...
	(inline_to_all_callers): ... this which is now wrapping the
	above and performing delayed overall summary update.
	(early_inline_small_functions): Delay updating of the overall
	summary.

2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
	variable.

2016-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR driver/69805
	* gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
	:%* in %:gt() argument.
	(greater_than_spec_func): Adjust for expecting only numbers,
	if there are more than two numbers, compare the last two.

2016-02-19  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (C++ Dialect Options): Clarify interaction of
	-Wnarrowing with -std.

2016-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/69851
	* expr.c (store_field): Don't use bit-field path if exp is
	COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
	different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
	and the assignment can be performed by bitwise copy.  Formatting
	fix.

	PR middle-end/69838
	* lra.c (lra_process_new_insns): If non-call exceptions are enabled,
	call copy_reg_eh_region_note_forward on before and/or after sequences
	and remove note from insn if it no longer can throw.

	PR target/69820
	* config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
	if TARGET_AVX512BW.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md: Add missing commutative operand markers
	to the patterns which qualify for one.
	* config/s390/vx-builtins.md: Likewise.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md (VI, VI_QHS): Add single element vector
	types to mode iterators.
	(vec_double): ... and mode attribute.
	* config/s390/vx-builtins.md (non_vec_int): Likewise.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
	Change the predicate of op2 from nonimmediate to general and let
	reload fix it if necessary.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vecintrin.h (vec_sub_u128): Define missing macro.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_vcond): Use the compare operand
	mode.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
	* config/s390/s390.c (s390_expand_vec_movstr): New function.
	* config/s390/s390.md ("movstr<P:mode>"): Call
	s390_expand_vec_movstr.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md: Add missing output modifier for operand 1
	to print it as address properly.

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
	* config/s390/2964.md: New file.
	* config/s390/s390.c (s390_get_sched_attrmask): Use the right set
	of insn grouping attributes depending on the CPU level.
	(s390_get_unit_mask): New function.
	(s390_sched_score): Remove the OOO from the scheduling macros.
	Add loop to calculate a score for the instruction mix.
	(s390_sched_reorder): Likewise plus improve debug output.
	(s390_sched_variable_issue): Rename macros as above.  Calculate
	the unit distances after actually scheduling an insn.  Improve
	debug output.
	(s390_sched_init): Clear last_scheduled_unit_distance array.
	* config/s390/s390.md: Include 2964.md.

2016-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/69671
	* config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
	*avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
	*avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
	*avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
	*avx512f_<code>v8div16qi2_mask_1): New insns.

2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68404
	* config/rs6000/predicates.md (fusion_gpr_addis): Revert
	2016-02-09 change.

	* config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
	earlyclobber from target.  Use wF constraint for fused memory
	address.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.

2016-02-18  Jakub Jelinek  <jakub@redhat.com>
	    Martin Liska  <mliska@suse.cz>

	PR sanitizer/69863
	* cfgexpand.c (asan_sanitize_stack_p): New function.
	(partition_stack_vars): Use the function.
	(expand_stack_vars): Likewise.
	(defer_stack_allocation): Likewise.
	(expand_used_vars): Likewise.

2016-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69553
	* fold-const.c (operand_equal_p): Properly compare offsets for
	IMAGPART_EXPR and ARRAY_REF.

2016-02-18  Nick Clifton  <nickc@redhat.com>

	PR target/62254
	PR target/69610
	* config/arm/arm.c (arm_option_override_internal): Disable
	interworking if the target does not support thumb instructions.
	(arm_reload_in_hi): Handle the case where a register to register
	move needs reloading because there is no simple pattern to handle
	it.
	(arm_reload_out_hi): Likewise.

2016-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69854
	* match.pd: Don't use fold_binary or fold_unary for folding
	constants.

2016-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/69850
	* gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
	on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
	warn on gimple_no_warning_p statements.

2016-02-17  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (C++ Attributes): Correct description of
	warn_unused type attribute.

2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
	correct instruction.

2016-02-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69609
	* bb-reorder.c (struct bbro_basic_block_data): Add priority member.
	(find_traces_1_round): When ending a trace update cached priority
	of successors.
	(bb_to_key): Use cached priority when available.
	(copy_bb): Initialize cached priority.
	(reorder_basic_blocks_software_trace_cache): Likewise.

2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69161
	* config/aarch64/predicates.md (aarch64_comparison_operator_mode):
	New predicate.
	(aarch64_comparison_operator): Break overly long line into two.
	(aarch64_comparison_operation): Likewise.
	* config/aarch64/aarch64.md (cstorecc4): Use
	aarch64_comparison_operator_mode instead of
	aarch64_comparison_operator.
	(cstore<mode>4): Likewise.
	(aarch64_cstore<mode>): Likewise.
	(*cstoresi_insn_uxtw): Likewise.
	(cstore<mode>_neg): Likewise.
	(*cstoresi_neg_uxtw): Likewise.

2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69161
	* config/arm/predicates.md (arm_comparison_operator_mode):
	New predicate.
	* config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
	instead of arm_comparison_operator.
	(*mov_negscc): Likewise.
	(*mov_notscc): Likewise.
	* config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
	(*thumb2_mov_negscc): Likewise.
	(*thumb2_mov_negscc_strict_it): Likewise.
	(*thumb2_mov_notscc): Likewise.
	(*thumb2_mov_notscc_strict_it): Likewise.

2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
	Add missing return.

2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium.c (machine_libfunc_index): New enum.
	(machine_libfuncs): New structure.
	(visium_libfuncs): New static variable.
	(TARGET_INIT_LIBFUNCS): Define to...
	(visium_init_libfuncs): ...this.  New function.
	(expand_block_move_4): Use the appropriate libfunc.
	(expand_block_move_2): Likewise.
	(expand_block_move_1): Likewise.
	(expand_block_set_4): Likewise.
	(expand_block_set_2): Likewise.
	(expand_block_set_1): Likewise.
	(visium_trampoline_init): Likewise.

2016-02-17  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.c (msp430_mcu_data): Sync with data from
	TI's devices.csv file as of March 2016.

2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR Target/48344
	* opts-global.c (handle_common_deferred_options): Introduce and
	initialize two global variables to remember command-line options
	specifying a stack-limiting register.
	* opts.h: Add extern declarations of the two new global variables.
	* emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
	variable based on the values of the two new global variables.

2016-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/69835
	* common.opt (Wnonnull-compare): New warning.
	* doc/invoke.texi (-Wnonnull): Remove text about comparison
	of arguments against NULL.
	(-Wnonnull-compare): Document.
	* Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
	* tree-pass.h (make_pass_warn_nonnull_compare): Declare.
	* passes.def (pass_warn_nonnull_compare): Add.
	* gimple-ssa-nonnull-compare.c: New file.

2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (cortexa57_tunings): Remove
	AARCH64_EXTRA_TUNE_RECIP_SQRT.

2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (use_rsqrt_p): Always use software
	reciprocal sqrt for -mlow-precision-recip-sqrt.

2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
	always use lane loads to construct non-constant vectors.

2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md
	(arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
	constraints for	operand 3.
	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.

2016-02-16  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69820
	* tree-vect-patterns.c (type_conversion_p): Return false if
	*orig_type is unsigned single precision or boolean.
	(vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
	Formatting fix.

2016-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69764
	PR rtl-optimization/69771
	* optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
	op1 is valid for GET_MODE_INNER (mode) and force it into a reg.

2016-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69776
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
	sets from caller.
	(indirect_refs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Pass alias sets as from ao_ref.
	* tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
	according to tbaa_p.
	* tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
	(optimize_stmt): For redundant store discovery do not allow tbaa.

2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>

	PR tree-optimization/69714
	* tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
	Return NULL if we have irrelevant high bytes on BIG_ENDIAN.

2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
	* config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
	(FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
	* config/arc/arc.c (arc_init): Check FPU options.
	(get_arc_condition_code): Handle new CC_FPU* modes.
	(arc_select_cc_mode): Likewise.
	(arc_conditional_register_usage): Allow 64 bit datum into even-odd
	register pair only. Allow access for ARCv2 accumulator.
	(gen_compare_reg): Whenever we have FPU support use FPU compare
	instructions.
	(arc_reorg): Don't generate brcc insns when FPU compare
	instructions are involved.
	* config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
	(TARGET_OPTFPE): Add condition when ARC EM can use optimized
	floating point emulation.
	(ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
	(REVERSE_CONDITION): Add new CC_FPU* modes.
	(TARGET_FP_SP_BASE): Define.
	(TARGET_FP_DP_BASE): Likewise.
	(TARGET_FP_SP_FUSED): Likewise.
	(TARGET_FP_DP_FUSED): Likewise.
	(TARGET_FP_SP_CONV): Likewise.
	(TARGET_FP_DP_CONV): Likewise.
	(TARGET_FP_SP_SQRT): Likewise.
	(TARGET_FP_DP_SQRT): Likewise.
	(TARGET_FP_DP_AX): Likewise.
	* config/arc/arc.md (ARCV2_ACC): New constant.
	(type): New fpu type attribute.
	(SDF): Conditional iterator.
	(cstore<mode>, cbranch<mode>): Change expand condition.
	(addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
	handles FPU/FPX cases as well.
	* config/arc/arc.opt (mfpu): New option.
	* config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
	Renamed.
	(adddf3, muldf3, subdf3): Removed.
	* config/arc/predicates.md (proper_comparison_operator): Recognize
	CC_FPU* modes.
	* config/arc/fpu.md: New file.
	* doc/invoke.texi (ARC Options): Document mfpu option.

2016-02-16  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69291
	* ifcvt.c (noce_try_store_flag_constants): Re-instantiate
	noce_operand_ok check.

2016-02-16  Tom de Vries  <tom@codesourcery.com>

	PR lto/67709
	* omp-low.c (simd_clone_create): Remove call to
	symtab->call_cgraph_insertion_hooks.

2016-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69802
	* tree-ssa-reassoc.c (update_range_test): If op is
	SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
	op == 1 test of precision 1 integral op, otherwise handle
	that case as op itself.  Fix up formatting.
	(optimize_range_tests_to_bit_test, optimize_range_tests): Fix
	up formatting.

2016-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69586
	* tree-vrp.c (register_edge_assert_for_2): Handle all integral
	types for conversion sources.

2016-02-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/69801
	* fold-const.c (operand_equal_p): For COND_EXPR zero operand
	mask OEP_ADDRESS_OF.

2016-02-16  Alan Modra  <amodra@gmail.com>

	PR target/68973
	* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
	(p8_mtvsrd_df, p8_mtvsrd_sf): New.
	(p8_mtvsrd_1, p8_mtvsrd_2): Delete.
	(p8_mtvsrwz): New.
	(p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
	(p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
	(p8_fmrgow_<mode>): Likewise.
	(reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
	changes.
	(reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
	(reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
	to use movdi_internal64.  Remove op0_di.
	* config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.

2016-02-15  Evandro Menezes  <e.menezes@samsung.com>

	Add support for the FCCMP insn types

	* config/aarch64/aarch64.md (fccmp): Change insn type.
	(fccmpe): Likewise.
	* config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
	* config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
	* config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
	* config/arm/xgene1.md (xgene1_fcmp): Likewise.
	* config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
	* config/arm/types.md (fccmps): Add new insn type.
	(fccmpd): Likewise.

2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* alias.c (get_alias_set): Fix a typo in comment.

2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69595
	* match.pd: Complete range test simplification to true.

2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/69648
	* lra-constraints.c (update_ebb_live_info): Don't remove sets of
	pic_offset_table_rtx.

	PR rtl-optimization/69752
	* ira.c (update_equiv_regs): When looking for more than a single SET,
	also take other side effects into account.

2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>

	* config/s390/s390.c (s390_function_profiler): Add a new sequence
	for z900+ CPUs in 31-bit mode.

2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>

	* common/config/s390/s390-common.c (s390_supports_split_stack):
	New function.
	(TARGET_SUPPORTS_SPLIT_STACK): New macro.
	* config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
	* config/s390/s390.c (struct machine_function): New field
	split_stack_varargs_pointer.
	(s390_register_info): Mark r12 as clobbered if it'll be used as temp
	in s390_emit_prologue.
	(s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
	vararg pointer.
	(morestack_ref): New global.
	(SPLIT_STACK_AVAILABLE): New macro.
	(s390_expand_split_stack_prologue): New function.
	(s390_live_on_entry): New function.
	(s390_va_start): Use split-stack vararg pointer if appropriate.
	(s390_asm_file_end): Emit the split-stack note sections.
	(TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
	* config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
	(UNSPECV_SPLIT_STACK_CALL): New unspec.
	(UNSPECV_SPLIT_STACK_DATA): New unspec.
	(split_stack_prologue): New expand.
	(split_stack_space_check): New expand.
	(split_stack_data): New insn.
	(split_stack_call): New expand.
	(split_stack_call_*): New insn.
	(split_stack_cond_call): New expand.
	(split_stack_cond_call_*): New insn.

2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69783
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Add trivially correct cases.

2016-02-15  Tom de Vries  <tom@codesourcery.com>

	PR lto/69655
	* lto-cgraph.c (input_offload_tables): Add and handle bool parameter
	do_force_output.
	* lto-streamer.h (input_offload_tables): Add and handle bool parameter.

2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69776
	* tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
	* tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
	indicate whether we can use TBAA to disambiguate against stores.
	Use alias-set zero if not.
	(visit_reference_op_store): Do not use TBAA when looking up
	redundant stores.
	* tree-ssa-pre.c (compute_avail): Use TBAA here.
	(eliminate_dom_walker::before_dom_children): But not when looking
	up redundant stores.

2016-02-14  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.

2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	*  config/i386/znver1.md
	(znver1_pop, znver1_pop_mem,
	znver1_load_imov_double_store,
	znver1_load_imov_direct_store,
	znver1_load_imov_direct_load,
	znver1_load_imov_double_load): Add new.
	(znver1_insn, znver1_insn_load): Add icmov type.
	(znver1_sseavx_fma,
	znver1_sseavx_fma_load,
	znver1_avx256_fma,
	znver1_avx256_fma_load): Fix pipe usage.

2016-02-14  Alan Modra  <amodra@gmail.com>

	PR target/68973
	* reloads.c (find_reloads_address_1): For pre/post-inc/dec
	with an invalid hard reg, reload just the reg not the entire
	pre/post-inc/dec address expression.

2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67260
	* config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
	fixed R1_REG scratch reg.
	(sibcall_value_pcrel_fdpic): Likewise.

2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67636
	PR target/64345
	* config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.

2016-02-12  Walter Lee  <walt@tilera.com>

	* config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
	* config/tilegx/t-tilegx: Likewise.

2016-02-12  David Malcolm  <dmalcolm@redhat.com>

	PR other/69554
	* diagnostic-show-locus.c (struct line_span): New struct.
	(layout::get_first_line): Delete.
	(layout::get_last_line): Delete.
	(layout::get_num_line_spans): New member function.
	(layout::get_line_span): Likewise.
	(layout::print_heading_for_line_span_index_p): Likewise.
	(layout::get_expanded_location): Likewise.
	(layout::calculate_line_spans): Likewise.
	(layout::m_first_line): Delete.
	(layout::m_last_line): Delete.
	(layout::m_line_spans): New field.
	(layout::layout): Update comment.  Replace m_first_line and
	m_last_line with m_line_spans, replacing their initialization
	with a call to calculate_line_spans.
	(diagnostic_show_locus): When printing source lines and
	annotations, rather than looping over a single span
	of lines, instead loop over each line_span within
	the layout, with an inner loop over the lines within them.
	Call the context's start_span callback when changing line spans.
	* diagnostic.c (diagnostic_initialize): Initialize start_span.
	(diagnostic_build_prefix): Break out the building of the location
	part of the string into...
	(diagnostic_get_location_text): ...this new function, rewriting
	it from nested ternary expressions to a sequence of "if"
	statements.
	(default_diagnostic_start_span_fn): New function.
	* diagnostic.h (diagnostic_start_span_fn): New typedef.
	(diagnostic_context::start_span): New field.
	(default_diagnostic_start_span_fn): New prototype.

2016-02-12  David Malcolm  <dmalcolm@redhat.com>

	PR driver/69779
	* gcc.c (driver::finalize): Fix cleanup of "specs".

2016-02-12  David Malcolm  <dmalcolm@redhat.com>

	PR driver/69265
	PR driver/69453
	* gcc.c (driver::driver): Initialize m_option_suggestions.
	(driver::~driver): Clean up m_option_suggestions.
	(suggest_option): Convert to...
	(driver::suggest_option): ...this, and split out into
	driver::build_option_suggestions and find_closest_string.
	(driver::build_option_suggestions): New function, from
	first half of suggest_option.  Special-case
	OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
	the sanitizer_opts array.  For options of enum types, add the
	various enum values to the candidate strings.
	(driver::handle_unrecognized_options): Remove "const".
	* gcc.h (driver::handle_unrecognized_options): Likewise.
	(driver::build_option_suggestions): New decl.
	(driver::suggest_option): New decl.
	(driver::m_option_suggestions): New field.
	* opts-common.c (add_misspelling_candidates): New function.
	* opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
	and make non-static.
	* opts.h (sanitizer_opts): New array decl.
	(add_misspelling_candidates): New function decl.
	* spellcheck.c (find_closest_string): New function.
	* spellcheck.h (find_closest_string): New function decl.

2016-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69764
	PR rtl-optimization/69771
	* optabs.c (expand_binop_directly): For shift_optab_p, force
	convert_modes with VOIDmode if xop1 has VOIDmode.

2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/69729
	* lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
	to correctly determine instrumentation thunks.

2016-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/69241
	* ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
	type by reference, force lhs on the call.

	PR ipa/68672
	* ipa-split.c (split_function): Don't compute/use main_part_return_p.
	Compute retval and retbnd early in all cases if split_part_return_p
	and return_bb is not EXIT.  Remove all clobber stmts and reset
	all debug stmts that refer to SSA_NAMEs defined in split part,
	except if it is retval, in that case replace the old retval with the
	lhs of the call to the split part.

2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	revert:
	2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/66726
	* tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
	whose result is used in PHI.
	(maybe_optimize_range_tests): Likewise.
	(final_range_test_p): Likweise.

2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/66726
	* tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
	whose result is used in PHI.
	(maybe_optimize_range_tests): Likewise.
	(final_range_test_p): Likweise.

2016-02-12  Jakub Jelinek  <jakub@redhat.com>

	* cgraph.c: Spelling fixes - behaviour -> behavior and
	neighbour -> neighbor.
	* target.def: Likewise.
	* sel-sched.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/arc/arc.md: Likewise.
	* config/arm/cortex-a57.md: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/neon.md: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/vms/vms-c.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/i386/znver1.md: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/hpux-unix2003.h: Likewise.
	* config/msp430/msp430.md: Likewise.
	* config/rx/rx.c: Likewise.
	* config/rx/rx.md: Likewise.
	* config/aarch64/aarch64-simd.md: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/nvptx/nvptx.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/cris/cris.opt: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* target.h: Likewise.
	* spellcheck.c: Likewise.
	* ira-build.c: Likewise.
	* tree-inline.c: Likewise.
	* builtins.c: Likewise.
	* lra-constraints.c: Likewise.
	* explow.c: Likewise.
	* hwint.h: Likewise.
	* targhooks.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* expr.c: Likewise.
	* doc/tm.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/md.texi: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* sched-int.h: Likewise.
	* match.pd: Likewise.
	* sched-ebb.c: Likewise.
	* target.def (omit_struct_return_reg): Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	(find_implicit_erroneous_behaviour): Renamed to...
	(find_implicit_erroneous_behavior): ... this.
	(find_explicit_erroneous_behaviour): Renamed to...
	(find_explicit_erroneous_behavior): ... this.
	(gimple_ssa_isolate_erroneous_paths): Adjust caller.

2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/64682
	PR rtl-optimization/69567
	PR rtl-optimization/69737
	* combine.c (distribute_notes) <REG_DEAD>: If the register is set
	in I2 as well, just lose it.

2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
	New variable.
	(aarch64_last_printed_tune_string): Likewise.
	(aarch64_declare_function_name): Only output .arch assembler
	directive if it will be different from the previously output
	directive.  Same for .tune comment but only if -dA is set.
	(aarch64_start_file): New function.
	(TARGET_ASM_FILE_START): Define.

2016-02-11  David Malcolm  <dmalcolm@redhat.com>

	PR plugins/69758
	* Makefile.in (PLUGIN_HEADERS): Add params.list.

2016-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/65313
	* tree-vect-slp.c (vect_schedule_slp_instance): Avoid
	-Wmaybe-uninitialized warning.

2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/69713
	* config/sh/sh.md (casesi_worker_0): Add T_REG use.

2016-02-11  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69291
	* ifcvt.c (noce_try_store_flag_constants): Do not allow
	subexpressions affected by changing the result.

2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69148
	* lra-constraints.c (curr_insn_transform): Find in/out operands
	for secondary memory moves.  Update dups.

2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/69652
	* tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
	to nested loop, did source re-formatting, skip debug statements,
	add check on statement with volatile operand, remove dead scalar
	statements.

2016-02-10  Jakub Jelinek  <jakub@redhat.com>
	    Patrick Palka  <ppalka@gcc.gnu.org>

	PR ipa/69241
	PR c++/69649
	* gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
	calls if the return type is TREE_ADDRESSABLE.
	* cgraphunit.c (cgraph_node::expand_thunk): Likewise.
	* ipa-split.c (split_function): Fix doubled "we" in comment.
	Use void return type for the split part even if
	!split_point->split_part_set_retval.

2016-02-10  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/68021
	* tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
	when computing the value of biv cand by itself.

2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
	(cortexa57_tunings): Likewise.
	(cortexa72_tunings): Likewise.
	(arch_macro_fusion_pair_p): Add support for AES fusion.
	* config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
	* config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
	Allow virtual registers before reload so early scheduling works.
	* config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
	correct latency and pipeline.
	(cortex_a57_crypto_complex): Likewise.
	(cortex_a57_crypto_xor): Likewise.
	(define_bypass): Add AES bypass.

2016-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69726
	* passes.def: Add DCE pass before late uninit.
	* match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
	really fixup if-conversions job.

2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
	(arm_cortex_a57_tune): Likewise.
	(aarch_macro_fusion_pair_p): Add support for AES fusion.
	* config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.

2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>

	* timevar.def (TV_PHASE_DBGINFO): Delete.
	(TV_PHASE_CHECK_DBGINFO): Likewise.
	* varpool.c (varpool_node::assemble_decl): Do not change timevar.

2016-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69719
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Adjust previous fix by ensuring that dr_a1 is left of dr_a2.

2016-02-09  Andrew Pinski  <apinski@cavium.com>

	PR tree-opt/69282
	* optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
	get_vcond_mask_icode returns false.

2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68404
	* config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
	an ADDIS that adds a pointer to a large constant that sets the
	upper16 bits with a load operation.

2016-02-09  Charles Baylis  <charles.baylis@linaro.org>

	PR target/68532
	* config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
	order.
	* config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
	endian.
	(vzipq_s16): Likewise.
	(vzipq_s32): Likewise.
	(vzipq_f32): Likewise.
	(vzipq_u8): Likewise.
	(vzipq_u16): Likewise.
	(vzipq_u32): Likewise.
	(vzipq_p8): Likewise.
	(vzipq_p16): Likewise.

2016-02-09  Charles Baylis  <charles.baylis@linaro.org>

	PR target/68532
	* config/arm/arm.c (neon_endian_lane_map): New function.
	(neon_vector_pair_endian_lane_map): New function.
	(arm_evpc_neon_vuzp): Allow for big endian lane order.
	* config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
	endian.
	(vuzpq_s16): Likewise.
	(vuzpq_s32): Likewise.
	(vuzpq_f32): Likewise.
	(vuzpq_u8): Likewise.
	(vuzpq_u16): Likewise.
	(vuzpq_u32): Likewise.
	(vuzpq_p8): Likewise.
	(vuzpq_p16): Likewise.

2016-02-11  Alexandre Oliva  <aoliva@redhat.com>

	PR target/69634
	* regstat.c (regstat_bb_compute_calls_crossed): Disregard
	debug insns.

2016-02-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
	truncate const_int operand 1 to QImode.

2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
	corresponding to an abnormal edge.

2016-02-09  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69599
	* tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
	function.
	(find_func_aliases_for_builtin_call, find_func_clobbers)
	(ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
	partition.

2016-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69715
	* tree-ssa.c (execute_update_addresses_taken): Mark non-decl
	LHS on calls as non-rewritable.

2016-02-09  Tom de Vries  <tom@codesourcery.com>

	PR lto/69707
	* lto-wrapper.c (append_diag_options): New function.
	(compile_offload_image): Call append_diag_options.

2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/69722
	* doc/extend.texi (Flag Output Operands): Correct sectioning.
	Minor copy-edit to fix verb tenses.

2016-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69209
	* ipa-split.c (split_function): If split part is not
	returning retval, retval has gimple type but is not
	gimple value, force it into a SSA_NAME first.

2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>

	* doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
	outdated section.

2016-02-08  Jason Merrill  <jason@redhat.com>

	PR c++/69631
	* convert.c (convert_to_integer_1): Check dofold on truncation
	distribution.
	(convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
	(convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
	Rename from *_nofold.
	* convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
	(convert_to_real_nofold, convert_to_complex_nofold): New inlines.

2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>

	PR target/60410
	* tree.c (build_common_tree_nodes): Remove short_double argument.
	All callers changed.
	* tree.h (build_common_tree_nodes): Adjust declaration.
	* doc/invoke.texi (-fshort-double): Remove documentation.
	* config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
	* lto-wrapper.c (merge_and_complain, append_compiler_options)
	(append_linker_options): Don't handle OPT_fshort_double.

	PR rtl-optimization/68730
	* lra-remat.c (insn_to_cand_activation): New static variable.
	(lra_remat): Allocate and free it.
	(create_cand): New arg activation. Initialize a field in
	insn_to_cand_activation if it is nonnull.
	(create_cands): Pass the activation insn to create_cand when making
	a candidate involving an output reload.  Reorganize code a little.
	(do_remat): Keep track of active status of candidates in a separate
	bitmap.

2016-02-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69719
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Properly use absolute of the difference of the two offsets to
	compare or adjust the segment length.

2016-02-08  Richard Biener  <rguenther@suse.de>
	    Jeff Law  <law@redhat.com>

	PR target/68273
	* tree-ssanames.c (make_ssa_name_fn): Always use unqualified
	types for anonymous SSA names.

2016-02-08   Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69274
	* ira.c (ira_setup_alts): Do not change recog_data.operand order.

2016-02-08  Jeff Law  <law@redhat.com>

	PR tree-optimization/65917
	* tree-ssa-dom.c (record_temporary_equivalences): Record both
	equivalences from if (x == y) style conditionals.
	(loop_depth_of_name): Remove.
	(record_equality): Remove loop depth check.
	* tree-ssa-scopedtables.h (const_and_copies): Refine comments.
	(const_and_copies::record_const_or_copy_raw): New member function.
	* tree-ssa-scopedtables.c
	(const_and_copies::record_const_or_copy_raw): New, factored out of
	(const_and_copies::record_const_or_copy): Call new member function.

2016-02-05  Jeff Law  <law@redhat.com>

	PR tree-optimization/68541
	* gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
	(count_stmts_in_block): New function.
	(poor_ifcvt_candidate_code): Likewise.
	(is_feasible_trace): Add some heuristics to determine when path
	splitting is profitable.
	(find_block_to_duplicate_for_splitting_paths): Make sure the graph
	is a diamond with a single exit.

2016-02-05  Martin Sebor  <msebor@redhat.com>

	PR c++/69662
	* doc/invoke.texi: Update -Wplacement-new to take an optional
	argument.

2016-02-06  Richard Henderson  <rth@redhat.com>

	PR c/69643
	* tree.c (tree_nop_conversion_p): Do not strip casts into or
	out of non-standard address spaces.

2016-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69691
	* lra-eliminations.c (move_plus_up): Don't add the addend twice.

2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
	* config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
	(*ieee128_mfvsrd_64bit): Likewise.
	(*ieee128_mfvsrd_32bit): Likewise.

2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/69369
	Revert r232560:
	2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (cgraph_node::reset): Clear thunk info and
	instrumented_version.

2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>

	* doc/invoke.texi (Optimize Options): In table of --param options
	rename second occurrence of tracer-min-branch-ratio to
	tracer-min-branch-probability, rename
	tracer-min-branch-ratio-feedback to
	tracer-min-branch-probability-feedback and clarify description,
	rename sched-spec-state-edge-prob-cutoff to
	sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
	to selsched-insns-to-rename, rename lto-minpartition to
	lto-min-partition, delete reorder-blocks-duplicate and
	reorder-blocks-duplicate-feedback.

2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_register_info_set_ranges): Remove
	superfluous loops.

2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* doc/extend.texi: S/390: Correct some typos.

2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_emit_call): Add missing 64 bit check.

2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/69625
	* config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
	(s390_register_info_gprtofpr): Use new macros above.
	(s390_register_info_stdarg_fpr): Adjust max_fpr to better match
	its name.
	(s390_register_info_stdarg_gpr): Adjust max_gpr to better match
	its name.  Adjust restore and save gpr ranges.
	(s390_register_info_set_ranges): New function.
	(s390_register_info): Use new macros above.  Call
	s390_register_info_set_ranges.
	(s390_optimize_register_info): Likewise.
	(s390_hard_regno_rename_ok): Use new macros.
	(s390_hard_regno_scratch_ok): Likewise.
	(s390_emit_epilogue): Likewise.
	(s390_can_use_return_insn): Likewise.
	(s390_optimize_prologue): Likewise.
	* config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.

2016-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/69677
	* config/i386/i386.c (convert_scalars_to_vector): Readd stack
	alignment fixes.
	(ix86_option_override_internal): Disable TARGET_STV even for
	-m{incoming,preferred}-stack-boundary=3.

2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: Mark deprecated rtems targets as obsolete.

2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/64682
	PR rtl-optimization/69567
	* combine.c (distribute_notes) <REG_DEAD>: Place the death note
	before I2 only if the register is both used and set in I2.

2016-02-04  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.c (msp430_start_function): Add function type.

2016-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/69368
	* tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.

2016-02-04  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/69577
	Revert:
	2015-10-29  Richard Henderson  <rth@redhat.com>

	PR target/68124
	PR rtl-opt/67609
	* config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
	sse check to the exact conditions of PR 67609.

2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/69667
	* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
	instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
	not allowed into the traditional Altivec registers.
	(movtd_64bit_nodm): Likewise.
	(mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.

2016-02-04  David Malcolm  <dmalcolm@redhat.com>

	* config/aarch64/cortex-a57-fma-steering.c
	(aarch64_register_fma_steering): Remove "static" from arguments
	to register_pass.

2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/69619
	* ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
	twice when complex.

2016-02-04  Mike Frysinger  <vapier@gentoo.org>

	* doc/invoke.texi: Delete -mno-fma4.

2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/69577
	* reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
	(find_subregs_of_mode): Update accordingly.  Iterate over partial
	definitions.

2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm-protos.h (neon_reinterpret): Remove.
	* config/arm/arm.c (neon_reinterpret): Remove.
	* config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
	vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
	vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
	vreinterpretti): Remove.
	* config/arm/neon.md (neon_vreinterpretv8qi<mode>,
	neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
	neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
	neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
	neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
	neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
	* config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
	vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
	vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
	vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
	vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
	vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
	vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
	vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
	vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
	vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
	vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
	vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
	vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
	vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
	vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
	vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
	vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
	vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
	vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
	vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
	vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
	vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
	vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
	vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
	vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
	vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
	vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
	vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
	vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
	vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
	vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
	vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
	vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
	vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
	vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
	vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
	vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
	vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
	vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
	vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
	vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
	vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
	vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
	vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
	vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
	vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
	vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
	vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
	vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
	vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
	vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
	vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
	vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
	vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
	vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
	vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
	vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
	vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
	vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
	vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
	vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
	vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
	vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
	vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
	vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
	vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
	vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
	vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
	vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
	vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
	vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
	vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
	vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
	vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
	vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
	vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
	vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
	vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
	vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
	vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
	vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
	vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
	vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
	vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
	vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
	vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
	vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
	vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
	vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
	vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
	vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
	vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
	vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
	vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
	vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
	vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
	vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.

2016-02-04  Martin Liska  <mliska@suse.cz>

	PR sanitizer/69276
	* asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
	that are gimple_store_p.
	(maybe_instrument_call): Likewise.

2016-02-04  Bin Cheng  <bin.cheng@arm.com>

	* config/aarch64/aarch64.c (aarch64_legitimize_address): Force
	register scaling out of memory reference and comment why.

2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65932
	PR target/67714
	* cse.c (cse_insn): Pass NULL to fold_rtx when initially
	folding the source of a SET.

2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65932
	PR target/67714
	* config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
	the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.

2016-02-04  Jim Wilson  <jim.wilson@linaro.org>

	PR target/65932
	PR target/67714
	* config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
	HImode.

2016-02-04  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
	* config/arm/arm.c (arm_set_current_function): Likewise.

2016-02-04  Jakub Jelinek  <jakub@redhat.com>
	    Ilya Enkovich  <enkovich.gnu@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/69454
	* config/i386/i386.c (convert_scalars_to_vector): Remove
	stack alignment fixes.
	(ix86_option_override_internal): Disable TARGET_STV if stack
	might not be aligned enough.
	(ix86_minimum_alignment): Assert that TARGET_STV is false.

2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>

	* gcc/config/i386/x86-tune.def: Disable default prefetching
	for -march=znver1.

2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69461
	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
	in validating fused toc addresses.

2016-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR c/69627
	* diagnostic-show-locus.c (layout::get_state_at_point): Don't read
	range->m_caret fields if range->m_show_caret_p is false.

	PR target/69644
	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
	Force oldval into register if it does not satisfy reg_or_short_operand
	predicate.  Fix up formatting.

2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR target/69461
	* lra-constraints.c (simplify_operand_subreg): Check additionally
	address validity after potential reloading.
	(process_address_1): Check insns validity.  In case of failure do
	nothing.

2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/69118
	* config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
	Fix target.

2016-02-02  Jakub Jelinek  <jakub@redhat.com>

	* wide-int.cc (canonize_uhwi): New function.
	(wi::divmod_internal): Use it.

2016-02-02  James Norris  <jnorris@codesourcery.com

	* gimplify.c (omp_notice_variable): Add usage check.

2016-02-02  Alexander Monakov  <amonakov@ispras.ru>

	* config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
	like LE, GE, LT, GT when emitting relational operator.

2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>

	* ira-costs.c (find_costs_and_classes): Add extra argument.
	* target.def (ira_change_pseudo_allocno_class): Add parameter.
	* targhooks.h (ira_change_pseudo_allocno_class): Likewise.
	* targhooks.c (ira_change_pseudo_allocno_class): Likewise.
	* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
	Add best_class parameter, and return it if not ALL_REGS.
	* config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
	Add parameter.
	* doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
	Update target hook.

2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c
	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
	(aarch64_ira_change_pseudo_allocno_class): New function.

2016-02-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67032
	* config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.

2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* config/avr/avr.c (avr_option_override): Set
	PARAM_ALLOW_STORE_DATA_RACES to 1.

2016-02-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69595
	* match.pd: Add range test simplifications to true/false.

2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>

	* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
	* omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
	instead.

2016-02-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69606
	* tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
	info on the result before moving a stmt.

2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR middle-end/68542
	* config/i386/i386.c (ix86_expand_branch): Add support for conditional
	branch with vector comparison.
	* config/i386/sse.md (VI48_AVX): New mode iterator.
	(define_expand "cbranch<mode>4): Add support for conditional branch
	with vector comparison.
	* tree-vect-loop.c (optimize_mask_stores): New function.
	* tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
	has_mask_store field of vect_info.
	* tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
	vectorized loops having masked stores after vec_info destroy.
	* tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
	correspondent macros.
	(optimize_mask_stores): Add prototype.

2016-02-02  Alan Modra  <amodra@gmail.com>

	PR target/69548
	* config/rs6000/predicates.md (quad_int_reg_operand): Don't
	allow subregs.

2016-02-02  Alan Modra  <amodra@gmail.com>

	PR target/68662
	* config/rs6000/rs6000.c (need_toc_init): New var, set it
	whenever toc_label_name used.
	(rs6000_file_start): Don't set up toc section here,
	(rs6000_output_function_epilogue): do so here instead,
	(rs6000_xcoff_file_start): and here.
	* config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
	(load_toc_aix_di): Likewise.

2016-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69592
	* rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
	(cached_nonzero_bits): Use it instead of ARITHMETIC_P.
	(num_sign_bit_copies_binary_arith_p): New inline function.
	(cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.

2016-02-01  Jeff Law  <law@redhat.com>

	PR tree-optimization/69580
	* params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
	* tree-ssa-threadbackward.c
	(fsm_find_control_statement_thread_paths): Do not try to walk
	through large PHI nodes.

2016-02-01  Jakub Jelinek  <jakub@redhat.com>

	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
	when count is incremented above limit, don't analyze further
	insns afterwards.

	* omp-low.c (oacc_parse_default_dims): Avoid
	-Wsign-compare warning, make sure value fits into int
	rather than just unsigned int.

2016-02-01  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/67921
	* fold-const.c (split_tree): New parameters.  Convert pointer
	type variable part to proper type before negating.
	(fold_binary_loc): Pass new arguments to split_tree.

2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
	(nvptx_goacc_validate_dims): Extend to handle global defaults.
	* target.def (OACC_VALIDATE_DIMS): Extend documentation.
	* doc/tm.texti: Rebuilt.
	* doc/invoke.texi (fopenacc-dim): Document.
	* lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
	(append_compiler_options): Likewise.
	* omp-low.c (oacc_default_dims, oacc_min_dims): New.
	(oacc_parse_default_dims): New.
	(oacc_validate_dims): Add USED arg.  Select non-unity default when
	possible.
	(oacc_loop_fixed_partitions): Return mask of used partitions.
	(oacc_loop_auto_partitions): Emit dump info.
	(oacc_loop_partition): Return mask of used partitions.
	(execute_oacc_device_lower): Parse default dimension arg.  Adjust
	loop partitioning and validation calls.

2016-02-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/69556
	* match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.

2016-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69574
	* tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
	of asserting return chrec_dont_know.

2016-02-01  Martin Liska  <mliska@suse.cz>

	* mem-stats-traits.h: Add copyright header.
	* mem-stats.h: Likewise.

2016-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69579
	* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
	Do not propagate through abnormal PHI results.

2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>

	* postreload.c (reload_cse_simplify): Remove dead code.

2016-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69570
	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
	if there is more than one set, not if there is a single set.

2016-02-01  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/69535
	* combine.c (make_compound_operation): When looking through a
	subreg, make sure to re-extend to the width of the outer mode.

2016-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69546
	* wide-int.cc (wi::divmod_internal): For unsigned division
	where both operands fit into uhwi, if o1 is 1 and o0 has
	msb set, if divident_prec is larger than bits per hwi,
	clear another quotient word and return 2 instead of 1.
	Similarly for remainder with msb in HWI set, if dividend_prec
	is larger than bits per hwi.

2016-01-29  Martin Jambor  <mjambor@suse.cz>

	* hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
	Use short lowercase names.
	(get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
	MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
	acq_rel one.  Protect warning agains segfaults if
	get_memory_order_name returns NULL.
	(gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
	with release semantics.  Do not warn if get_memory_order already did.
	(gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
	semantics.  Fix check for relaxed or acquire semantics.  Do not warn
	if get_memory_order already did.

2016-01-29  Sebastian Pop  <s.pop@samsung.com>

	* doc/install.texi: Document that isl-0.16 is supported.

2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69299
	* config/i386/constraints.md (Bm): Describe as special memory
	constraint.
	* doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
	* genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
	* genpreds.c (struct constraint_data): Add is_special_memory.
	(have_special_memory_constraints, special_memory_start): New
	static vars.
	(special_memory_end): Ditto.
	(add_constraint): Add new arg is_special_memory.  Add code to
	process its true value.  Update have_special_memory_constraints.
	(process_define_constraint): Pass the new arg.
	(process_define_register_constraint): Ditto.
	(choose_enum_order): Process special memory.
	(write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
	function insn_extra_special_memory_constraint.
	(main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
	* gensupport.c (process_rtx): Process
	DEFINE_SPECIAL_MEMORY_CONSTRAINT.
	* ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
	* ira-lives.c (single_reg_class): Use
	insn_extra_special_memory_constraint.
	* ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
	* lra-constraints.c (process_alt_operands): Ditto.
	(curr_insn_transform): Use insn_extra_special_memory_constraint.
	* recog.c (asm_operand_ok, preprocess_constraints): Process
	CT_SPECIAL_MEMORY.
	* reload.c (find_reloads): Ditto.
	* rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
	* stmt.c (parse_input_constraint): Use
	insn_extra_special_memory_constraint.

2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/69530
	* lra-splill.c (lra_final_code_change): Revert r229087 by
	removing all sub-registers.

2016-01-29  Steve Ellcey  <sellcey@imgtec.com>

	PR target/65604
	* config/mips/mips.c (mips_output_division): Check flag_delayed_branch.

2016-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/69551
	* config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
	SSE1, copy target into the temporary reg first before recursing
	on it.

2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
	with vm.

2016-01-29  Jonathan Wakely  <jwakely@redhat.com>

	* ginclude/stdarg.h: Test __cplusplus instead of
	__GXX_EXPERIMENTAL_CXX0X__.

2016-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69547
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
	Do not mark clobbers necessary.
	(mark_all_reaching_defs_necessary_1): Likewise.

2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
	declaration name with %qs and print it in both error messages.
	Also fix indentation.

2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR other/69006
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
	trailing blank line from error message.

2016-01-29  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/69462
	* ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
	for C++-11.

2016-01-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/69537
	* match.pd: Allow all integral types when simplifying a
	widening or sign-changing conversion.

2016-01-28  Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
	back to setting codegen_error to fail codegen.

2016-01-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69459
	* config/i386/constraints.md (C): Only accept constant zero operand.
	(BC): New constraint.
	* config/i386/sse.md (*mov<mode>_internal): Use BC constraint
	instead of C constraint.
	* doc/md.texi (Machine Constraints): Update description
	of C constraint.

2016-01-28  Steve Ellcey  <sellcey@imgtec.com>

	PR target/68400
	* config/mips/mips.c (and_operands_ok): Add MIPS16 check.

2016-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69542
	* lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
	non-debug insns.

2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (output_cbranch): Don't statically predict
	branches if using guessed profile.

2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	* graphite-optimize-isl.c (optimize_isl): Fix dump.

2016-01-28  Richard Henderson  <rth@redhat.com>

	PR target/69305
	* config/aarch64/aarch64-modes.def (CC_Cmode): New
	* config/aarch64/aarch64-protos.h: Update.
	* config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
	(aarch64_select_cc_mode): Add check for use of CC_Cmode.
	(aarch64_get_condition_code_1): Handle CC_Cmode.
	* config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
	(*add<mode>3_compareC_cconly_imm): New.
	(*add<mode>3_compareC_cconly): New.
	(*add<mode>3_compareC_imm): New.
	(add<mode>3_compareC): New.
	(add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
	to be first.  Use aarch64_carry_operation.
	(*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
	(*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
	(*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
	(subti3): Use subdi3_compare1.
	(*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
	(sub<mode>3_compare1): New.
	(*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
	(*sub<mode>3_carryin): Use aarch64_borrow_operation.
	(*subsi3_carryin_uxtw): Likewise.
	(*ngc<mode>, *ngcsi_uxtw): Likewise.
	(*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
	* config/aarch64/iterators.md (DWI): New.
	* config/aarch64/predicates.md (aarch64_carry_operation): New.
	(aarch64_borrow_operation): New.

2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>

	* graphite-optimize-isl.c (optimize_isl): Print a different debug
	message when isl does not return a valid schedule.

2016-01-28  Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
	Remove comments from class declarations: they are already in the code
	close by the defs.

2016-01-28  Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
	codegen_error_p.
	(ternary_op_to_tree): Same.
	(unary_op_to_tree): Same.
	(nary_op_to_tree): Same.
	(gcc_expression_from_isl_expr_op): Same.
	(gcc_expression_from_isl_expression): Same.
	(graphite_create_new_loop): Same.
	(graphite_create_new_loop_guard): Same.
	(build_iv_mapping): Same.
	(graphite_create_new_guard): Same.
	(translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
	(translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.

2016-01-28  Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
	instead of setting codegen_error to fail codegen.

2016-01-28  Jason Merrill  <jason@redhat.com>

	* tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_if_then_else_costs):
	Remove CONST_INT_P check in CCMP cost calculation.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (generic_vector_cost):
	Set vec_permute_cost.
	(cortexa57_vector_cost): Likewise.
	(exynosm1_vector_cost): Likewise.
	(xgene1_vector_cost): Likewise.
	(aarch64_builtin_vectorization_cost): Use vec_permute_cost.
	* config/aarch64/aarch64-protos.h (cpu_vector_cost):
	Add vec_permute_cost entry.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (ccmp<mode>): Disassemble
	immediate as %1.
	(add<mode>3_compare0): Likewise.
	(addsi3_compare0_uxtw): Likewise.
	(add<mode>3nr_compare0): Likewise.
	(compare_neg<mode>): Likewise.
	(<optab><mode>3): Likewise.

2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-stmts.c (vectorizable_comparison): Add
	NULL check for vectype.

2016-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69466
	* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
	Account for PHIs we couldn't duplicate.

2016-01-28  Martin Liska  <mliska@suse.cz>

	PR pch/68758
	* ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
	instead of ENABLE_VALGRIND_CHECKING.

2016-01-27  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/69447
	* lra-remat.c (subreg_regs): New.
	(dump_candidates_and_remat_bb_data): Dump it.
	(operand_to_remat): Reject if operand in subreg_regs.
	(set_bb_regs): Collect subreg_regs.
	(lra_remat): Init and free subreg_regs.  Compute
	calculate_local_reg_remat_bb_data before create_cands.

2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/68986
	* config/i386/i386.c (ix86_update_stack_boundary): Don't
	change stack_alignment_needed for __tls_get_addr call.

2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (print_operand): Rollback 's' removal.

2016-01-27  Jeff Law  <law@redhat.com>

	PR tree-optimization/68398
	PR tree-optimization/69196
	* params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
	(PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Only count PHIs in the last block in the path.  The others will
	const/copy propagate away.  Add heuristic to allow more irreducible
	subloops to be created when it is likely profitable to do so.

	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
	check from within the loop.  Use gsi_next_nondebug rather than gsi_next.

2016-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR lto/69254
	* sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
	END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
	* asan.c (DEF_BUILTIN_STUB): Temporarily define.
	* tree-streamer-in.c: Include asan.h.
	(streamer_get_builtin_tree): For builtins in sanitizer
	range call initialize_sanitizer_builtins and retry.

2016-01-27  Ian Lance Taylor  <iant@google.com>

	* common.opt (fkeep-gc-roots-live): New undocumented option.
	* tree-ssa-loop-ivopts.c (add_candidate_1): If
	-fkeep-gc-roots-live, skip pointers.
	(add_iv_candidate_for_biv): Handle add_candidate_1 returning
	NULL.

2016-01-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69512
	* config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
	(*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.

2016-01-27  Thomas Klausner  <wiz@NetBSD.org>

	PR target/68380
	* configure.ac: NetBSD provides SSP in its C library.
	* configure: Updated.

2016-01-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69166
	* tree-vect-loop.c (vect_is_simple_reduction): Always check
	reduction code for commutativity / associativity.

2016-01-27  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/69355
	* tree-sra.c (analyze_access_subtree): Correct hole detection when
	total_scalarization fails.

2016-01-27  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/driver-rs6000.c (detect_processor_aix): Add
	power9.

2016-01-27  Christian Bruel  <christian.bruel@st.com>

	PR target/69245
	* config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
	Move arm_reset_previous_fndecl and set_target_option_current_node in
	the conditional part.  Call save_restore_target_globals.
	* config/arm/arm.c (arm_set_current_function):
	Refactor to better support #pragma target and attribute mix.
	Call save_restore_target_globals.
	* config/arm/arm-protos.h (save_restore_target_globals): New function.

2016-01-27  Martin Liska  <mliska@suse.cz>

	* hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
	reference for an HSA kernel and its host function.

2016-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69399
	* wide-int.h (wi::lrshift): For larger precisions, only
	use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.

2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/predicates.md (proper_comparison_operator): Reject
	constant-constant comparison.

2016-01-26  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69110
	* tree-data-ref.c (initialize_data_dependence_relation): Handle
	DR_NUM_DIMENSIONS == 0.

2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
	isl_ast_op_cond and isl_ast_op_select.
	(gcc_expression_from_isl_expr_op): Same.

2016-01-26  Jason Merrill  <jason@redhat.com>

	PR c++/68782
	* tree.c (recompute_constructor_flags): Split out from
	build_constructor.
	(verify_constructor_flags): New.
	* tree.h: Declare them.

2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR rtl-optimization/69217
	* var-tracking.c (tracked_record_parameter_p): Don't segfault if there
	are no TYPE_FIELDS set for the record type.

2016-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/68662
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
	toc_label_name unconditionally.
	(rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
	SYMBOL_REF string.  Use toc_label_name instead of constructing
	LCTOC1.
	(rs6000_elf_declare_function_name): Use toc_label_name instead of
	constructing LCTOC1.

2016-01-26  Martin Sebor  <msebor@redhat.com>

	PR other/69477
	* doc/extend.texi (Common Type Attributes): Move text that talks about
	attribute packed from attribute aligned to the section discussing
	the former attribute for clarity.

2016-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/60908
	* trans-mem.c (tm_region_init): Mark entry block as visited.

2016-01-26  David Malcolm  <dmalcolm@redhat.com>

	PR other/69006
	* diagnostic-show-locus.c (layout::print_source_line): Replace
	call to pp_newline with call to layout::print_newline.
	(layout::print_annotation_line): Likewise.
	(layout::move_to_column): Likewise.
	(layout::print_any_fixits): After printing any fixits, print a
	trailing newline, if necessary.
	(layout::print_newline): New method, resetting any colorization
	before a newline.
	(diagnostic_show_locus): Move the pp_newline to before the
	early bailout.  Remove dummy block enclosing the layout instance.
	* diagnostic.c (default_diagnostic_finalizer): Replace invocation
	of pp_newline_and_flush with pp_flush.
	(diagnostic_append_note): Delete use of pp_newline.
	(diagnostic_append_note_at_rich_loc): Delete.
	* diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
	* pretty-print.h (output_buffer_append_r): Reset buff->line_length
	when newline characters are added to the buffer.

2016-01-26  Michael Matz  <matz@suse.de>

	* configure.ac (ac_cv_std_swap_in_utility): New test.
	* system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
	* configure: Regenerate.
	* config.in: Regenerate.

2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (cstoresi4): Force operand into register.
	(arcset<code>): Fix predicate.
	(arcsetltu): Likewise.
	(arcsetgeu): Likewise.
	(arcsethi): Likewise.
	(arcsetls): Likewise.

2016-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69483
	* gimple-fold.c (canonicalize_constructor_val): Return NULL
	if base has error_mark_node type.

2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/68620
	* config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
	* config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
	New helper macros.
	(vget_lane_f16): Handle big-endian.
	(vgetq_lane_f16): Likewise.
	(vset_lane_f16): Likewise.
	(vsetq_lane_f16): Likewise.
	* config/arm/iterators.md (VQXMOV): Add V8HF.
	(VDQ): Add V4HF and V8HF.
	(V_reg): Handle V4HF and V8HF.
	(Is_float_mode): Likewise.
	* config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
	neon_vdup_nv8hf): New patterns.
	(vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
	Use VD_LANE iterator.
	(neon_vld1_dup<mode>): Use VQ2 iterator.

2016-01-26  Nathan Sidwell  <nathan@acm.org>

	* omp-low.h (oacc_fn_attrib_kernels_p): Declare.
	(set_oacc_fn_attrib): Add IS_KERNEL arg.
	* omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
	(oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
	(expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
	(oacc_validate_dims): Add LEVEL arg, don't return level.
	(new_oacc_loop_routine): Use oacc_fn_attrib_level, not
	oacc_validate_dims.
	(execute_oacc_device_lower): Adjust, add more dump output.
	* tree-ssa-loop.c (gate_oacc_kernels): Use
	oacc_fn_attrib_kernels_p.
	* tree-parloops.c (create_parallel_loop): Adjust
	set_oacc_fn_attrib call.

2016-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR lto/69254
	* lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
	(append_compiler_options): Handle -fcilkplus.
	(append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.

2016-01-26  Nick Clifton  <nickc@redhat.com>

	PR target/66655
	* config/i386/winnt.c (i386_pe_binds_local_p): If a function has
	been marked as DECL_ONE_ONLY but we do not the means to make it
	so, then do not allow it to bind locally.

2016-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR lto/69254
	* opts.h (parse_sanitizer_options): New prototype.
	* opts.c (sanitizer_opts): New array.
	(parse_sanitizer_options): New function.
	(common_handle_option): Use parse_sanitizer_options.

2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/68986
	* config/i386/i386.c (ix86_compute_frame_layout): Move stack
	alignment adjustment to ...
	(ix86_update_stack_boundary): Here.  Don't over-align stack for
	__tls_get_addr.
	(ix86_finalize_stack_realign_flags): Use stack_alignment_needed
	if __tls_get_addr is called.

2016-01-26  Christian Bruel  <christian.bruel@st.com>

	* doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.

2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.

2016-01-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/69467
	* match.pd: Guard X * CST CMP 0 pattern with single_use.

2016-01-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69452
	* tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
	(move_computations_dom_walker::before_dom_children): Rename
	to ...
	(move_computations_worker): This.
	(move_computations): Perform an RPO rather than a DOM walk.

2016-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/69442
	* combine.c (combine_instructions): For REG_EQUAL note with
	SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
	to the underlying register.
	* doc/rtl.texi (REG_EQUAL): Document the behavior of
	REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.

2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>

	PR target/67896
	* config/aarch64/aarch64-builtins.c
	(aarch64_init_simd_builtin_types): Do not set structural
	equality to __Poly{8,16,64,128}_t types.

2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/69400
	* wide-int.cc (wi_pack): Take the precision as argument and
	perform canonicalization here rather than in the callers.
	Use the main loop to handle all full-width HWIs.  Add a
	zero HWI if in_len isn't a full result.
	(wi::divmod_internal): Update accordingly.
	(wi::mul_internal): Likewise.  Simplify.

2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (apply_poly_transforms): Simplify.
	(print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
	(print_isl_map): Same.
	(print_isl_union_map): Same.
	(print_isl_schedule): New.
	(debug_isl_schedule): New.
	* graphite-dependences.c (scop_get_reads): Do not call
	isl_union_map_add_map that is undocumented isl functionality.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	(scop_get_original_schedule): Remove.
	(scop_get_dependences): Do not call isl_union_map_compute_flow that
	is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
	(compute_deps): Remove.
	* graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
	(debug_schedule_ast): New.
	(translate_isl_ast_to_gimple::scop_to_isl_ast): Call
	set_separate_option.
	(graphite_regenerate_ast_isl): Add dump.
	(translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
	from scop->transformed_schedule.
	(graphite_regenerate_ast_isl): Add more dump.
	* graphite-optimize-isl.c (optimize_isl): Set
	scop->transformed_schedule.  Check whether schedules are equal.
	(apply_poly_transforms): Move here.
	* graphite-poly.c (apply_poly_transforms): ... from here.
	(free_poly_bb): Static.
	(free_scop): Static.
	(pbb_number_of_iterations_at_time): Remove.
	(print_isl_ast): New.
	(debug_isl_ast): New.
	(debug_scop_pbb): New.
	* graphite-scop-detection.c (print_edge): Move.
	(print_sese): Move.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
	(build_scop_scattering): Remove.
	(create_pw_aff_from_tree): Assert instead of bailing out.
	(add_condition_to_pbb): Remove unused code, do not fail.
	(add_conditions_to_domain): Same.
	(add_conditions_to_constraints): Remove.
	(build_scop_context): New.
	(add_iter_domain_dimension): New.
	(build_iteration_domains): Initialize pbb->iterators.
	Call add_conditions_to_domain.
	(nested_in): New.
	(loop_at): New.
	(index_outermost_in_loop): New.
	(index_pbb_in_loop): New.
	(outermost_pbb_in): New.
	(add_in_sequence): New.
	(add_outer_projection): New.
	(outer_projection_mupa): New.
	(add_loop_schedule): New.
	(build_schedule_pbb): New.
	(build_schedule_loop): New.
	(embed_in_surrounding_loops): New.
	(build_schedule_loop_nest): New.
	(build_original_schedule): New.
	(build_poly_scop): Call build_original_schedule.
	* graphite.h: Declare print_isl_schedule and debug_isl_schedule.
	(free_poly_dr): Remove.
	(struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
	(free_poly_bb): Remove.
	(debug_loop_vec): Remove.
	(print_isl_ast): Declare.
	(debug_isl_ast): Declare.
	(scop_do_interchange): Remove.
	(scop_do_strip_mine): Remove.
	(scop_do_block): Remove.
	(flatten_all_loops): Remove.
	(optimize_isl): Remove.
	(pbb_number_of_iterations_at_time): Remove.
	(debug_scop_pbb): Declare.
	(print_schedule_ast): Declare.
	(debug_schedule_ast): Declare.
	(struct scop): Remove schedule.  Add original_schedule,
	transformed_schedule.
	(free_gimple_poly_bb): Remove.
	(print_generated_program): Remove.
	(debug_generated_program): Remove.
	(unify_scattering_dimensions): Remove.
	* sese.c (print_edge): ... here.
	(print_sese): ... here.
	(debug_edge): ... here.
	(debug_sese): ... here.
	* sese.h (print_edge): Declare.
	(print_sese): Declare.
	(dump_edge): Declare.
	(dump_sese): Declare.

2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* Makefile.in: Set ISLVER in site.exp.

2016-01-25  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
	DECL_VALUE_EXPR of new_var even for the non-array case.  Look
	through DECL_VALUE_EXPR for expansion.

2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* config/mips/mips.c (mips_compute_frame_info): Skip re-computing
	the frame info after reload completed.

2016-01-25  Jeff Law  <law@redhat.com>

	PR tree-optimization/69196
	PR tree-optimization/68398
	* tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
	tree-ssa-threadupdate.c.
	(determine_bb_domination_status): Prototype
	* tree-ssa-threadupdate.c (enum bb_dom_status): Remove
	(determine_bb_domination_status): No longer static.
	(valid_jump_thread_path): Remove code to detect characteristics
	of the jump thread path not associated with correctness.
	* tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
	Correct test for thread path length.  Count PHIs for real operands as
	statements that need to be copied.  Do not count ASSERT_EXPRs.
	Look at all the blocks in the thread path.  Compute and selectively
	filter thread paths based on threading through the latch, threading
	a multiway branch or crossing a multiway branch.

2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
	decl with __attribute__ ((unused)) annotation.

2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/69421
	* tree-vect-stmts.c (vectorizable_condition): Check vectype
	of operands is compatible with a statement vectype.

2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/extend.texi (scalar_storage_order type attribute): Fix typo and
	improve wording for mixed storage order support.

2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>

	* config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
	(vcvt_u64_f64): Likewise.
	(vcvta_s64_f64): Likewise.
	(vcvta_u64_f64): Likewise.
	(vcvtm_s64_f64): Likewise.
	(vcvtm_u64_f64): Likewise.
	(vcvtn_s64_f64): Likewise.
	(vcvtn_u64_f64): Likewise.
	(vcvtp_s64_f64): Likewise.
	(vcvtp_u64_f64): Likewise.

2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
	(arc_init): Check validity mll64 option.
	(arc_save_restore): Use double load/store instruction.
	(arc_expand_movmem): Likewise.
	(arc_split_move): Don't split if we have double load/store
	instructions. Returns a boolean.
	(arc_process_double_reg_moves): Change function to return boolean
	instead of a sequence of instructions.
	(arc_dwarf_register_span): New function.
	* config/arc/arc-protos.h (arc_split_move): Change prototype.
	* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
	* config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
	(*movdf_insn): Likewise.
	* config/arc/arc.opt (mll64): New option.
	* config/arc/predicates.md (even_register_operand): New predicate.
	* doc/invoke.texi (ARC Options): Add mll64 documentation.

2016-01-25  Richard Biener  <rguenther@suse.de>

	PR lto/69393
	* dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
	* tree-streamer-out.c (pack_ts_base_value_fields): Stream
	DECL_NAMELESS.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.

2016-01-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69376
	* tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
	flag.
	(VN_INFO_ANTI_RANGE_P): New inline.
	(VN_INFO_RANGE_TYPE): Likewise.
	* tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
	SSA_NAME_ANTI_RANGE_P.
	(free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Properly query VN_INFO_RANGE_TYPE.

2016-01-25  Nick Clifton  <nickc@redhat.com>

	PR target/66655
	* config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.

2016-01-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69426
	* tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
	removed clobber.

2016-01-23  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssanames.c (release_free_names_and_compact_live_names): Replace
	"the the" with "the" in the comments.
	* ipa-devirt.c (build_type_inheritance_graph,
	update_type_inheritance_graph): Likewise.
	* tree.c (build_function_type_list_1): Likewise.
	* cfgloopmanip.c (scale_loop_profile): Likewise.
	* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
	* gimple-ssa-split-paths.c
	(find_block_to_duplicate_for_splitting_paths): Likewise.
	* tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
	* expr.c (convert_move): Likewise.
	* var-tracking.c (vt_stack_adjustments): Likewise.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
	* tree-vrp.c (test_for_singularity): Likewise.

	* tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
	directly instead of building a temporary tree.

	PR bootstrap/69434
	* genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
	remove <algorithm> include.

2016-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/69432
	* config/i386/i386.c: Include dojump.h.
	(expand_small_movmem_or_setmem,
	expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
	fixes.
	(ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
	if dynamic_check != -1.

2016-01-21  Jeff Law  <law@redhat.com>

	PR middle-end/69347
	* tree-ssa-dom.c (back_propagate_equivalences): Factored out of
	record_temporary_equivalences.  Rewritten to avoid unnecessary calls
	into dominated_by_p.
	(cprop_into_successor_phis): Avoid unnecessary tests.

2016-01-22  Richard Henderson  <rth@redhat.com>

	PR target/69416
	* config/aarch64/aarch64.md (UNSPEC_NZCV): New.
	(ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.

2016-01-22  Michael Matz  <matz@suse.de>

	* system.h (string, algorithm): Include only conditionally.
	(new): Include always under C++.
	* bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
	* final.c (toplevel): Ditto.
	* ipa-chkp.c (toplevel): Define INCLUDE_STRING.
	* genconditions.c (write_header): Make gencondmd.c define
	INCLUDE_STRING.
	* mem-stats.h (mem_usage::print_dash_line): Don't use std::string.

	* config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
	* common/config/aarch64/aarch64-common.c (toplevel): Ditto.

2016-01-22  Christian Bruel  <christian.bruel@st.com>

	PR target/68674
	* expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.

2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69403
	* config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
	define_insn_and_split.  Ensure operands[1] and operands[0] do not
	get assigned the same register.

2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.

2016-01-22  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm-c.c (arm_pragma_target_parse):
	Remove warn_builtin_macro_redefined overwrite.

2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-inline.c (can_inline_edge_p): Back out overzealous check on
	flag_non_call_exceptions compatibility.

2016-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/66668
	* dwarf2out.c (add_child_die_after): New function.
	(dwarf_qual_info_t): New type.
	(dwarf_qual_info): New variable.
	(qualified_die_p): New function.
	(modified_type_die): For -fdebug-types-section, ensure
	canonical order of qualifiers.  Put qualified DIEs adjacent
	to the corresponding non-qualified type DIE and search there
	for existing qualified DIEs.

2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/extend.texi (scalar_storage_order type attribute): Document
	restriction on type punning and aliasing, and remove future tense.

2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>

	PR target/69252
	* modulo-sched.c (optimize_sc):	Allow branch-scheduling to add a new
	first stage.

2016-01-21  Jeff Law  <law@redhat.com>

	PR middle-end/69347
	* tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
	useless call to record_temporary_equivalences.
	* tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
	allocate 10 slots in the bb_path vector and let it grow as needed.
	(fsm_find_control_statement_thread_paths): Similarly for the next_path
	vector.

2016-01-21  David Edelsohn  <dje.gcc@gmail.com>

	* configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
	Detangle.
	* configure: Regenerate.

2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
	* config/rs6000/driver-rs6000.c (struct asm_names): Likewise.

2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>

	PR middle-end/66178
	* expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
	drop EXPAND_INITIALIZER.
	* rtl.h (contains_symbolic_reference_p): Declare.
	* rtlanal.c (contains_symbolic_reference_p): New function.
	* simplify-rtx.c (simplify_binary_operation_1): Don't turn
	a subtraction into a NOT if symbolic constants are involved.

2016-01-21  Anton Blanchard  <anton@samba.org>
	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/63354
	* config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
	#define.
	* config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
	function.

2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>

	* config/microblaze/microblaze.c
	(get_branch_target): New.
	(insert_wic_for_ilb_runout): New.
	(insert_wic): New.
	(microblaze_machine_dependent_reorg): New.
	(TARGET_MACHINE_DEPENDENT_REORG): Define macro.
	* config/microblaze/microblaze.md
	(UNSPEC_IPREFETCH): Define.
	(iprefetch): New pattern
	* config/microblaze/microblaze.opt
	(mxl-prefetch): New flag.

2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>

	* config/microblaze/microblaze.h
	(FIXED_REGISTERS): Update in macro.
	(CALL_USED_REGISTERS): Update in macro.

2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR rtl-optimization/68920
	* ifcvt.c (cond_move_process_if_block): Limit number of conditional
	moves.

2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68990
	* lra-coalesce.c (lra_coalesce): Invalidate value for the result
	pseudo instead of inheritance ones.

2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
	    Nick Clifton  <nickc@redhat.com>

	PR target/69129
	PR target/69012
	* config/mips/mips.c (mips_compute_frame_info): Initialise
	args_size and hard_frame_pointer_offset fields of the frame
	structure before calling mips_global_pointer.

2016-01-21  David Edelsohn  <dje.gcc@gmail.com>

	* configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
	label reference.
	* configure: Regenerate.

2016-01-21  Richard Biener  <rguenther@suse.de>

	* graphite-optimize-isl.c (get_schedule_map): Fix typo.

2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>

	* config/s390/s390.c (s390_asm_declare_function_size): Add code
	to actually emit the .size directive.

2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
	     Jakub Jelinek  <jakub@redhat.com>

	PR target/69187
	PR target/65624
	* config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
	args array size by one to avoid buffer overflow.

2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>

	* config/s390/s390.md (pool_section_start): Use switch_to_section
	to select proper read-only data section instead of hardcoding
	.rodata.
	(pool_section_end): Use switch_to_section to match the above.

2016-01-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69378
	* tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
	(set_ssa_val_to): Use it for dominance checks taking into
	account not executable edges.

2016-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/69355
	* tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
	for bitsize instead of GET_MODE_PRECISION (mode).

2016-01-20  Martin Sebor  <msebor@redhat.com>

	PR c/52291
	* extend.texi (__sync Builtins): Clarify the semantics of
	__sync_fetch_and_OP built-ins on pointers.
	(__atomic Builtins): Same.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
	(class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
	(is_valid_rename): Same.
	(translate_isl_ast_to_gimple::get_rename): Same.
	(translate_isl_ast_to_gimple::rename_all_uses): Same.
	(translate_isl_ast_to_gimple::rename_uses): Same.
	(get_new_name): Check for close_phi nodes.
	(copy_loop_phi_args): Use phi_node_kind.
	(translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
	(translate_isl_ast_to_gimple::copy_cond_phi_args): Same.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	Revert commit r229783.
	* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
	Remove use of parameter_rename_map.
	(copy_def): Remove.
	(copy_internal_parameters): Remove.
	(graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
	* sese.c (new_sese_info): Do not initialize parameter_rename_map.
	(free_sese_info): Do not free parameter_rename_map.
	(set_rename): Do not use parameter_rename_map.
	(rename_uses): Update call to set_rename.
	(graphite_copy_stmts_from_block): Do not use parameter_rename_map.
	* sese.h (parameter_rename_map_t): Remove.
	(struct sese_info_t): Remove field parameter_rename_map.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c: Fix comment.
	* graphite-scop-detection.c (defined_in_loop_p): New.
	(canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
	names defined in loop.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
	Discard unstructured if-then-else regions.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
	(cleanup_loop_iter_dom): Remove.
	(build_loop_iteration_domains): Remove.
	(build_scop_context): Remove.
	(build_scop_iteration_domain): Remove.
	(add_loop_constraints): New.
	(build_iteration_domains): New.
	(build_poly_scop): Call build_iteration_domains.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c
	(scop_detection::harmful_loop_in_region): Free dom and loops.
	(scop_detection::loop_body_is_valid_scop): Free bbs.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (record_loop_in_sese): New.
	(gather_bbs::before_dom_children): Call record_loop_in_sese.
	(build_scops): Remove call to build_sese_loop_nests.
	* sese.c (sese_record_loop): Remove.
	(build_sese_loop_nests): Remove.
	(new_sese_info): Remove region->loops.
	(free_sese_info): Same.
	* sese.h (sese_contains_loop): Same.
	(build_sese_loop_nests): Remove.
	(sese_contains_loop): Remove.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (loop_is_valid_scop): Renamed
	loop_is_valid_in_scop.
	(scop_detection::harmful_stmt_in_region): Renamed
	harmful_loop_in_region.
	Call loop_is_valid_in_scop.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
	isl_ast_node_mark.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
	* graphite.h (struct poly_bb): Remove field is_reduction.
	(PBB_IS_REDUCTION): Remove.

2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
	(add_pdr_constraints): Same.
	(scop_get_reads): Same.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	(scop_get_original_schedule): Same.
	(extend_schedule): Same.
	(apply_schedule_on_deps): Same.
	(carries_deps): Same.
	(compute_deps): Same.
	(scop_get_dependences): Same.
	* graphite-isl-ast-to-gimple.c
	(translate_isl_ast_to_gimple::generate_isl_schedule): Same.
	* graphite-optimize-isl.c (get_schedule_for_band): Same.
	(get_schedule_for_band_list): Same.
	(get_schedule_map): Same.
	(apply_schedule_map_to_scop): Same.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
	(build_loop_iteration_domains): Same.
	(add_condition_to_pbb): Same.
	(add_param_constraints): Same.
	(pdr_add_memory_accesses): Same.
	(pdr_add_data_dimensions): Same.

2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
	requirements.

2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>

	* common.opt (feliminate-dwarf2-dups): Replace references to
	"DWARF 2" with just "DWARF".
	* config/ia64/ia64.opt (mdwarf2-asm): Likewise.
	* doc/extend.texi: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/invoke.texi: Likewise.
	(Option Summary): Add -gdwarf to list of Debugging Options.
	(Debugging Options): Document -gdwarf.
	* doc/contrib.texi: Spell "DWARF" like that.

2016-01-21  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
	warning.  Fix up formatting.

	PR middle-end/67653
	* gimplify.c (gimplify_asm_expr): Warn if it is too late to
	attempt to mark memory input operand addressable and
	call prepare_gimple_addressable in that case.  Don't adjust
	input_location for diagnostics, use error_at instead.

2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/ppc-auxv.h: New file.
	* config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
	(cpu_is): Likewise.
	(cpu_supports): Likewise.
	* config/rs6000/rs6000.c: include "ppc-auxv.h".
	(cpu_is_info): New variable.
	(cpu_supports_info): Likewise.
	(tcb_verification_symbol): Likewise.
	(cpu_builtin_p): Likewise.
	(cpu_expand_builtin): New function.
	(rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
	(rs6000_init_builtins): Likewise.
	(rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
	* config/rs6000/rs6000.h (TLS_REGNUM): New define.
	* configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
	* configure: Regenerate.
	* config.in: Likewise.
	* doc/extend.texi (PowerPC Built-in Functions): Document
	__builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.

2016-01-20  David Edelsohn  <dje.gcc@gmail.com>

	PR target/68609
	* config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
	domain check.
	* config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
	for V4SFmode.

2016-01-20  Richard Henderson  <rth@redhat.com>

	PR bootstrap/69343
	PR bootstrap/69339
	PR tree-opt/68964
	Revert:
	* tree.c (tm_define_builtin): New.
	(find_tm_vector_type): New.
	(build_tm_vector_builtins): New.
	(build_common_builtin_nodes): Call it.

2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>

	* doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
	(arm_fp_ok): Likewise.
	(arm_fp): Likewise.
	(arm_crypto): Likewise.

2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69328
	* tree-vect-stmts.c (vect_is_simple_cond): Check compared
	vectors have same number of elements.
	(vectorizable_condition): Fix masked version recognition.

2016-01-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69345
	* tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
	(VN_INFO_PTR_INFO): Likewise.
	* tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
	info when it is equal between non-dominating SSA names.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Make sure to look at original SSA infos.

2016-01-20  Jeff Law  <law@redhat.com>

	PR target/25114
	* config/m68k/predicates.md (pow2_m1_operand): New predicate
	extracted from ...
	(reg_or_pow2_m1_operand): Call pow2_m1_operand.
	(pc_or_label_operand): New predicate.
	* config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
	tests for small integers that are 2^n - 1.

2016-01-20  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Options Summary): Add '.' after @xref.

2016-01-19  Jeff Law  <law@redhat.com>

	PR middle-end/69347
	* tree-ssa-threadbackwards.c
	(fsm_find_control_statement_thread_paths): Do not try to lookup
	FSM paths for SSA_NAMEs appearing in abnormal PHIs.

2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* doc/lto.texi: Remove text that says only Gold has linker plugin
	support.

2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (need_endianity_attribute_p): New inline predicate.
	(base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
	the DIE accordingly.
	(modified_type_die): Add REVERSE parameter and pass it recursively,
	as well as to base_type_die.  Adjust presence check accordingly.
	(base_type_for_mode): Adjust call to modified_type_die.
	(add_type_attribute): Add REVERSE parameter and pass it to
	modified_type_die.
	(generic_parameter_die): Adjust call to add_type_attribute.
	(add_scalar_info): Likewise.
	(add_subscript_info): Likewise.
	(gen_array_type_die): Likewise.
	(gen_descr_array_type_die): Likewise.
	(gen_entry_point_die): Likewise.
	(gen_enumeration_type_die): Likewise.
	(gen_formal_parameter_die): Likewise.
	(gen_subprogram_die): Likewise.
	(gen_variable_die ): Likewise.
	(gen_const_die): Likewise.
	(gen_field_die): Likewise.
	(gen_pointer_type_die): Likewise.
	(gen_reference_type_die): Likewise.
	(gen_ptr_to_mbr_type_die): Likewise.
	(gen_inheritance_die): Likewise.
	(gen_subroutine_type_die): Likewise.
	(gen_typedef_die): Likewise.
	(force_type_die): Adjust call to modified_type_die.

2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/standards.texi: Copy-editing for grammar, markup, and sentence
	flow throughout the file.  Fix broken link to Objective-C 2.0
	documentation.
	* doc/invoke.texi: More copy-editing; fix numerous typos and spelling
	errors.

2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

	* ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.

2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66223
	* ipa-devirt.c (is_cxa_pure_virtual_p): New function.
	(maybe_record_node): Record cxa_pure_virtual as the only possible
	target if there are not ohter candidates.
	(possible_polymorphic_call_target_p): Accept cxa_pure_virtual.

2016-01-19  Richard Biener  <rguenther@suse.de>

	* hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
	(get_memory_order): Likewise.

2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>

	* tree-vect-stmts.c (vectorizable_store): Check
	rhs vectype.

2016-01-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/68446
	* gcc.c (driver::decode_argv): Add call to
	init_opts_obstack before init_options_struct.
	* opts.c (init_opts_obstack): Remove idempotency.
	(init_options_struct): Replace call to init_opts_obstack
	with a gcc_assert to verify that it has already been called.
	* toplev.c (toplev::main): Add call to init_opts_obstack before
	calls to init_options_struct.
	(toplev::finalize): Move cleanup of opts_obstack next to
	cleanup of save_decoded_options, clearing the latter, and
	save_decoded_options_count.

2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69135
	* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
	attribute to unconditional.  Remove %? from output template.

2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
	generated from different expand order.

2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

	* /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
	Add support for CCMP costing.

2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

	* ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
	* config/aarch64/aarch64.md (fccmp<mode>): New pattern.
	(fccmpe<mode>): Likewise.
	(fcmp): Rename to fcmp and globalize pattern.
	(fcmpe): Likewise.
	* config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
	(aarch64_gen_ccmp_next): Add FP support.

2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

	* target.def (gen_ccmp_first): Update documentation.
	(gen_ccmp_next): Likewise.
	* doc/tm.texi (gen_ccmp_first): Update documentation.
	(gen_ccmp_next): Likewise.
	* ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
	expand_ccmp_expr_1.  Improve comments.
	* config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
	(ccmp_ior<mode>): Remove pattern.
	(cmp<mode>): Remove expand.
	(cmp): Globalize pattern.
	(cstorecc4): Use cc_register.
	(mov<mode>cc): Remove ccmp_cc_register check.
	* config/aarch64/aarch64.c (aarch64_get_condition_code_1):
	Simplify after removal of CC_DNE/* modes.
	(aarch64_ccmp_mode_to_code): Remove.
	(aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
	In 'k' case use integer as condition.
	(aarch64_nzcv_codes): Remove inverted cases.
	(aarch64_code_to_ccmode): Remove.
	(aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
	comparison with CC register to be used in folowing CCMP/branch/CSEL.
	(aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
	pattern.  Return the comparison with CC register.  Invert conditions
	when bitcode is OR.
	* config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
	* config/aarch64/predicates.md (ccmp_cc_register): Remove.

2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (cgraph_node::reset): Clear thunk info and
	instrumented_version.

2016-01-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69336
	* tree-ssa-scopedtables.c (avail_expr_hash): Handle all
	handled components with get_ref_base_and_extent.
	(equal_mem_array_ref_p): Adjust.

2016-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65779
	* shrink-wrap.c: Include valtrack.h.
	(move_insn_for_shrink_wrap): Add DEBUG argument.  If
	MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
	in between insn and where it will be moved to.  Call
	dead_debug_insert_temp.
	(prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
	first and dead_debug_local_finish at the end.
	For uses and defs bitmap, handle all regs in between REGNO and
	END_REGNO, not just the first one.

2016-01-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69352
	* tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
	(equal_mem_array_ref_p): Constrain size and max size properly.
	Compare the reverse flag.

2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>

	* ira.c (ira): Update regstat data if we deleted insns.

2016-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/68955
	PR rtl-optimization/64557
	* dse.c (record_store, check_mem_read_rtx): Don't call get_addr
	here.  Fix up formatting.
	* alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.

2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69133
	* cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
	assume that the node has body.
	* cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
	check.

2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (lto_output): Do not stream instrumentation
	thunks.

2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_node::asm_name): Do not call printable name directly.
	(symtab_node::name): Report name as unnamed if DECL_NAME is not set.

2016-01-19  Martin Jambor  <mjambor@suse.cz>
	    Martin Liska  <mliska@suse.cz>
	    Michael Matz  <matz@suse.de>

	* Makefile.in (OBJS): Add new source files.
	(GTFILES): Add hsa.c.
	* common.opt (disable_hsa): New variable.
	(-Whsa): New warning.
	* config.in (ENABLE_HSA): New.
	* configure.ac: Treat hsa differently from other accelerators.
	(OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
	$enable_offloading.
	(ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
	* doc/install.texi (Configuration): Document --with-hsa-runtime,
	--with-hsa-runtime-include, --with-hsa-runtime-lib and
	--with-hsa-kmt-lib.
	* doc/invoke.texi (-Whsa): Document.
	(hsa-gen-debug-stores): Likewise.
	* lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
	to invoke offload compiler for hsa acclerator.
	* opts.c (common_handle_option): Determine whether HSA offloading
	should be performed.
	* params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
	* builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
	* gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
	* gimple-pretty-print.c (dump_gimple_omp_for): Also handle
	GF_OMP_FOR_KIND_GRID_LOOP.
	(dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
	(pp_gimple_stmt_1): Likewise.
	* gimple-walk.c (walk_gimple_stmt): Likewise.
	* gimple.c (gimple_build_omp_grid_body): New function.
	(gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
	* gimple.def (GIMPLE_OMP_GRID_BODY): New.
	* gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
	GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
	GF_OMP_TEAMS_GRID_PHONY.
	(gimple_statement_omp_single_layout): Updated comments.
	(gimple_build_omp_grid_body): New function.
	(gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
	(gimple_omp_for_grid_phony): New function.
	(gimple_omp_for_set_grid_phony): Likewise.
	(gimple_omp_parallel_grid_phony): Likewise.
	(gimple_omp_parallel_set_grid_phony): Likewise.
	(gimple_omp_teams_grid_phony): Likewise.
	(gimple_omp_teams_set_grid_phony): Likewise.
	(gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
	* omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
	(BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
	(BUILT_IN_GOMP_TARGET): Updated type.
	* omp-low.c: Include symbol-summary.h, hsa.h and params.h.
	(adjust_for_condition): New function.
	(get_omp_for_step_from_incr): Likewise.
	(extract_omp_for_data): Moved parts to adjust_for_condition and
	get_omp_for_step_from_incr.
	(build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
	(fixup_child_record_type): Bail out if receiver_decl is NULL.
	(scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
	(scan_omp_parallel): Do not create child functions for phony
	constructs.
	(check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
	(scan_omp_1_op): Checking assert we are not remapping to
	ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
	(parallel_needs_hsa_kernel_p): New function.
	(expand_parallel_call): Register apprpriate parallel child
	functions as HSA kernels.
	(grid_launch_attributes_trees): New type.
	(grid_attr_trees): New variable.
	(grid_create_kernel_launch_attr_types): New function.
	(grid_insert_store_range_dim): Likewise.
	(grid_get_kernel_launch_attributes): Likewise.
	(get_target_argument_identifier_1): Likewise.
	(get_target_argument_identifier): Likewise.
	(get_target_argument_value): Likewise.
	(push_target_argument_according_to_value): Likewise.
	(get_target_arguments): Likewise.
	(expand_omp_target): Call get_target_arguments instead of looking
	up for teams and thread limit.
	(grid_expand_omp_for_loop): New function.
	(grid_arg_decl_map): New type.
	(grid_remap_kernel_arg_accesses): New function.
	(grid_expand_target_kernel_body): New function.
	(expand_omp): Call it.
	(lower_omp_for): Do not emit phony constructs.
	(lower_omp_taskreg): Do not emit phony constructs but create for them
	a temporary variable receiver_decl.
	(lower_omp_taskreg): Do not emit phony constructs.
	(lower_omp_teams): Likewise.
	(lower_omp_grid_body): New function.
	(lower_omp_1): Call it.
	(grid_reg_assignment_to_local_var_p): New function.
	(grid_seq_only_contains_local_assignments): Likewise.
	(grid_find_single_omp_among_assignments_1): Likewise.
	(grid_find_single_omp_among_assignments): Likewise.
	(grid_find_ungridifiable_statement): Likewise.
	(grid_target_follows_gridifiable_pattern): Likewise.
	(grid_remap_prebody_decls): Likewise.
	(grid_copy_leading_local_assignments): Likewise.
	(grid_process_kernel_body_copy): Likewise.
	(grid_attempt_target_gridification): Likewise.
	(grid_gridify_all_targets_stmt): Likewise.
	(grid_gridify_all_targets): Likewise.
	(execute_lower_omp): Call grid_gridify_all_targets.
	(make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
	(tree_omp_clause): Added union field dimension.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
	* tree.c (omp_clause_num_ops): Added number of arguments of
	OMP_CLAUSE__GRIDDIM_.
	(omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
	(walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
	* tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
	(OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
	(OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
	(OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
	* passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
	* tree-pass.h (make_pass_gen_hsail): Declare.
	(make_pass_ipa_hsa): Likewise.
	* ipa-hsa.c: New file.
	* lto-section-in.c (lto_section_name): Add hsa section name.
	* lto-streamer.h (lto_section_type): Add hsa section.
	* timevar.def (TV_IPA_HSA): New.
	* hsa-brig-format.h: New file.
	* hsa-brig.c: New file.
	* hsa-dump.c: Likewise.
	* hsa-gen.c: Likewise.
	* hsa.c: Likewise.
	* hsa.h: Likewise.
	* toplev.c (compile_file): Call hsa_output_brig.
	* hsa-regalloc.c: New file.

2016-01-18  Jeff Law  <law@redhat.com>

	PR tree-optimization/69320
	* tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
	ranged object, do nothing if the RHS constant is not [0..1].
	(optimize_stmt): Comparing a boolean ranged object against a
	constant outside [0..1] results in a compile-time constant.

	* tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
	test.

2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Invoking GCC): Add new section to menu.
	(Option Summary): Update to reflect new section and moved options.
	(C++ Dialect Options): Move -fstats to new section.
	(Debugging Options): Move all dump, statistics, and other GCC
	developer options to new section.  Rewrite section introduction
	and re-order remaining options to put the more basic ones first.
	(Optimization Options): Move -fira-verbose and -flto-report* to
	new section.
	(Developer Options): New section incorporating moved options.
	* doc/cppopts.texi (-dM): Update cross-reference.

2016-01-18  Richard Henderson  <rth@redhat.com>

	PR target/69176
	* config/aarch64/aarch64.md (add<GPI>3): Move long immediate
	operands to pseudo only if CSE is expected.  Split long immediate
	operands only after reload, and for the stack pointer.
	(*add<GPI>3_pluslong): Remove.
	(*addsi3_aarch64, *adddi3_aarch64): Merge into...
	(*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
	(*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
	(*add<GPI>3 peepholes): New.
	(*add<GPI>3 splitters): New.
	* config/aarch64/constraints.md (Upl): New.
	* config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.

2016-01-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69297
	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
	stmt at most once.
	(vect_bb_vectorization_profitable_p): Clear visited flag again.

2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR middle-end/68542
	* fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
	of mixind vector and scalar types.
	(fold_relational_const): Add handling of vector
	comparison with boolean result.
	* tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
	comparison of vector operands with boolean result for EQ/NE only.
	(verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
	(verify_gimple_cond): Likewise.
	* tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
	valid type of VAL.

2016-01-18  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
	!TARGET_OCTEON.

2016-01-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69308
	* gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.

2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add pass_parallelize_loops to pass_oacc_kernels.

2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (set_oacc_fn_attrib): Make extern.
	* omp-low.h (set_oacc_fn_attrib): Declare.
	* tree-parloops.c (struct reduction_info): Add reduc_addr field.
	(create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
	(create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
	Add and handle function parameter oacc_kernels_p.
	(find_reduc_addr, get_omp_data_i_param): New function.
	(ref_conflicts_with_region, oacc_entry_exit_ok_1)
	(oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
	(parallelize_loops): Add and handle function parameter oacc_kernels_p.
	Calculate dominance info.  Skip loops that are not in a kernels region
	in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
	(pass_parallelize_loops::execute): Call parallelize_loops with
	oacc_kernels_p argument.
	(pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
	New member function.
	(pass_parallelize_loops::bool oacc_kernels_p): New member var.
	* passes.def: Add argument to pass_parallelize_loops instantation.

2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (pass_parallelize_loops::execute): Allow
	pass_parallelize_loops to be run outside the loop pipeline.

2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-scalar-evolution.c (follow_copies_to_constant): New.
	(analyze_initial_condition, analyze_scalar_evolution_1): Call previous.

2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/63679
	* tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
	using get_ref_base_and_extent.
	(equal_mem_array_ref_p): New.
	(hashable_expr_equal_p): Add call to previous.

2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/63679
	* tree-sra.c (disqualified_constants, constant_decl_p): New.
	(sra_initialize): Allocate disqualified_constants.
	(sra_deinitialize): Free disqualified_constants.
	(disqualify_candidate): Update disqualified_constants when appropriate.
	(create_access): Scan for constant-pool entries as we go along.
	(scalarizable_type_p): Add check against type_contains_placeholder_p.
	(maybe_add_sra_candidate): Allow constant-pool entries.
	(load_assign_lhs_subreplacements): Bind debug for constant pool vars.
	(initialize_constant_pool_replacements): New.
	(sra_modify_assign): Avoid mangling assignments created by previous,
	and don't generate writes into constant pool.
	(sra_modify_function_body): Call initialize_constant_pool_replacements.

2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/i386.c (scalar_to_vector_candidate_p): Support
	andnot instruction.
	(scalar_chain::convert_op): Likewise.
	* config/i386/i386.md (*andndi3_doubleword): New.

2016-01-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69170
	* tree-vect-slp.c (vect_build_slp_tree): Verify we are not
	building a vector from scalar results of a pattern stmt.

2016-01-18  Jakub Jelinek  <jakub@redhat.com>

	* haifa-sched.c (autopref_multipass_init): Work around
	-Wmaybe-uninitialized warning.

2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (thumb1_reorg): Check that the comparison is
	against the constant 0.

2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/68799
	* gimple-ssa-strength-reduction.c (create_phi_basis): Directly
	look up phi candidates in the statement-candidate map.
	(phi_add_costs): Likewise.
	(record_phi_increments): Likewise.
	(phi_incr_cost): Likewise.
	(ncd_with_phi): Likewise.
	(all_phi_incrs_profitable): Likewise.

2016-01-17  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (mark_loops_in_oacc_kernels_region): Work around
	-Wmaybe-uninitialized warning.

2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Invoking GCC): Add new section to menu.
	(Option Summary): Update to reflect new section and moved options.
	(C++ Dialect Options): Move -fvtable-verify and related options.
	(Debugging Options): Move Sanitizer, Pointer Bounds Checker,
	and profiling-related options.
	(Optimization Options): Move profile generation options and
	-fstack-protector and related options.
	(Instrumentation Options): New section incorporating moved options.
	(Code Generation Options): Move -finstrument-functions and
	related options, -fstack-check, -fstack-limit*, and -fbounds-check.

2016-01-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.

2016-01-16  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.

2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-table.h (hash_table::empty): Turn into an inline wrapper
	that checks whether the table is already empty.  Rename the
	original implementation to...
	(hash_table::empty_slot): ...this new private function.

2016-01-15  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostic/68899
	* diagnostic-show-locus.c (layout::print_source_line): Move x
	offset of line until after call to
	get_line_width_without_trailing_whitespace.

2016-01-15  Jeff Law  <law@redhat.com>

	PR tree-optimization/69270
	* tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
	tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
	* tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
	* tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
	ssa_name_has_boolean_range and constant_boolean_node.

2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/69030
	* lra-spills.c (remove_pseudos): Check nrefs and make the function
	returning bool.
	(spill_pseudos): Delete debug insn for dead pseudo.
	(lra_spill): Initiate spill_hard_reg and slots memory separately.

2016-01-15  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
	New.
	(TYPES_UNOPUS): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
	builtin type, from UNOP to UNOPUS.
	(lbtruncuv4sf): Likewise.
	(lbtruncuv2df): Likewise.
	(lrounduv2sf): Likewise.
	(lrounduv4sf): Likewise.
	(lrounduv2df): Likewise.
	(lroundusf): Likewise.
	(lroundusf): Likewise.
	(lceiluv2sf): Likewise.
	(lceiluv4sf): Likewise.
	(lceiluv2df): Likewise.
	(lceilusf): Likewise.
	(lceiludf): Likewise.
	(lflooruv2sf): Likewise.
	(lflooruv4sf): Likewise.
	(lflooruv2df): Likewise.
	(lfloorusf): Likewise.
	(lfloorudf): Likewise.
	(lfrintnuv2sf): Likewise.
	(lfrintnuv4sf): Likewise.
	(lfrintnuv2df): Likewise.
	(lfrintnusf): Likewise.
	(lfrintnudf): Likewise.
	* config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
	conversion.
	(vcvtq_u32_f32): Likewise.
	(vcvtq_u64_f64): Likewise.
	(vcvta_u32_f32): Likewise.
	(vcvtaq_u32_f32): Likewise.
	(vcvtaq_u64_f64): Likewise.
	(vcvtm_u32_f32): Likewise.
	(vcvtmq_u32_f32): Likewise.
	(vcvtmq_u64_f64): Likewise.
	(vcvtn_u32_f32): Likwise.
	(vcvtnq_u32_f32): Likewise.
	(vcvtnq_u64_f64): Likewise.
	(vcvtp_u32_f32): Likewise.
	(vcvtpq_u32_f32): Likewise.
	(vcvtpq_u64_f64): Likewise.
	(vcvtmd_u64_f64): Likewise.
	(vcvtms_u32_f32): Likewise.
	(vcvtad_u64_f64): Likewise.
	(vcvtas_u32_f32): Likewise.
	(vcvtnd_u64_f64): Likewise.
	(vcvtns_u32_f32): Likewise.
	(vcvtpd_u64_f64): Likewise.
	(vcvtps_u32_f32): Likewise.

2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
	CSEL of zero_extended registers.

2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
	Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.

2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
	false when argument string is not found in the attributes table
	at all.

2016-01-15  David Edelsohn  <dje.gcc@gmail.com>

	PR target/68609
	* config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
	(rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
	* config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
	precision estimate.

2016-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66856
	* tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
	* tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
	(vect_create_new_slp_node): Increment stmt reference count.
	(vect_get_and_check_slp_defs): Make sure stmts are nor already in
	an SLP tree before swapping operands.
	(vect_build_slp_tree): Likewise.
	(destroy_bb_vec_info): Free stmt info after SLP instances.
	* tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
	* tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
	(STMT_VINFO_NUM_SLP_USES): New macro.

2016-01-15  Richard Biener  <rguenther@suse.de>

	PR debug/69137
	* dwarf2out.c (add_linkage_name_raw): New function split out from ...
	(add_linkage_name): ... here.
	(gen_typedef_die): Use add_linkage_name_raw instead of
	add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
	if necessary.

2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>

	* gimplify.c (oacc_default_clause): Decode reference and pointer
	types for both kernels and parallel regions.

2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/69246
	* calls.c (emit_call_1): Force n_popped to zero for sibcalls.

2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
	(convert_scalars_to_vector): Likewise.

2016-01-15  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Type Traits): Fix grammar.

2016-01-15  Martin Jambor  <mjambor@suse.cz>

	* tree-inline.c (remap_decl): Use existing dclarations if
	remapping a type and prevent_decl_creation_for_types.
	(replace_locals_stmt): Do an initial remapping of non-VLA typed
	decls first.  Do real remapping with
	prevent_decl_creation_for_types set.
	* tree-inline.h (copy_body_data): New field
	prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
	padding.

2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.opt (mmvcle): More verbose help text.

2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.opt: Add period to -mzvector option text.

2016-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68961
	* tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
	of invariants in stores again.

2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.

2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/i386.c (ix86_expand_branch): Don't split
	DI mode xor instruction to SI mode.

2016-01-15  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/68148
	* ipa-icf.c (sem_function::merge): Virtual functions may become
	reachable even if they address is not taken and there are no
	idrect calls.

2016-01-15  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (subtract_estimated_size): New function.
	(get_symbol_initial_value): Use it.

2016-01-15  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
	(arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
	(arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
	use add_builtin_function_ext_scope instead of add_builtin_function.
	(neon_set_p, neon_crypto_set_p): Remove.
	(arm_init_builtins): Always call arm_init_neon_builtins and
	arm_init_crypto_builtins.
	(arm_expand_builtin): Check that builtins are allowed for the arch.
	* config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
	* config/arm/arm.c (arm_valid_target_attribute_tree): Remove
	arm_init_neon_builtins call.

2016-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69117
	* tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
	* tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
	of the leader conservatively.
	(free_scc_vn): Restore original SSA name infos.

2016-01-14  Jeff Law  <law@redhat.com>

	PR tree-optimization/69270
	* tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
	single bit of precision, verify it's also unsigned.
	(record_edge_info): Use constant_boolean_node rather than fold_convert
	to convert boolean_true/boolean_false to the right type.

2016-01-14  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/69014
	* loop-doloop.c (record_reg_sets): New.
	(doloop_optimize): Reject the transform if the sequence
	clobbers registers live at the end of the loop block.
	(doloop_optimize_loops): Enable df_live if needed.

2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
	* gcc/config/rs6000/rs6000.c: Likewise.
	* gcc/config/rs6000/rs6000.h: Likewise.
	* gcc/config/rs6000/rs6000.md: Likewise.
	* gcc/doc/extend.texi: Likewsie.

2016-01-14  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
	typo.

2016-01-14  Richard Henderson  <rth@redhat.com>

	PR c/69272
	PR tree-opt/68964
	* trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
	* tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
	instead of builtin_decl_declared_p to test for declaration.

2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>

	* doc/loop.texi (Loop Analysis and Representation): Document
	loop_depth function.

2016-01-14  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68773
	* omp-low.c (expand_omp_target): Don't set force_output.
	* varpool.c (varpool_node::get_create): Same.
	* lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
	offload_funcs with force_output.

2016-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/69244
	* lra-eliminations.c (move_plus_up): Don't change anything if either
	the outer or inner subreg mode is not MODE_INT.
	* dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
	integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.

2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>

	* doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
	reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
	reduc_uplus_@var{m}): Remove.
	* expr.c (expand_expr_real_2): Remove expansion path for
	reduc_[us](min|max|plus) optabs.
	* optabs-tree.c (scalar_reduc_to_vector): Remove.
	* optabs-tree.h (scalar_reduc_to_vector): Remove.
	* optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
	reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
	* tree-vect-loop.c (vectorizable_reduction): Remove test for
	reduc_[us](min|max|plus) optabs.

2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>

	* config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
	(reduc_plus_scal_v2sf): New.
	(reduc_smax_v2sf): Rename to...
	(reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
	(reduc_smin_v2sf): Rename to...
	(reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.

2016-01-14  Jan Hubicka  <hubicka@ucw.cz>

	* alias.c (compare_base_symbol_refs): New function.
	(rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
	it.

2016-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/68146
	PR tree-optimization/69155
	* tree-complex.c: Include cfganal.h.
	(phis_to_revisit): New variable.
	(extract_component): Add phiarg_p argument.  Assert that returned
	SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
	(update_phi_components): Partly rewrite to use loop over real/imag
	components instead of code duplication.  If extract_component returns
	SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
	create_tmp_reg into the PHI node instead, and mention the phi triplet
	in phis_to_revisit.
	(tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
	in phis_to_revisit at the end.

2016-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68060
	* tree-vect-loop.c (vect_is_simple_reduction): Check the
	outer loop reduction is only used in the inner loop before
	detecting a double reduction.

2016-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/68269
	* combine.c (expand_field_assignment): Punt if compute_mode is
	unsupported scalar mode.

2016-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66856
	* tree-vect-slp.c (vect_build_slp_tree): Refactor to build
	SLP node only if it built successfully.
	(vect_analyze_slp_instance): Adjust.

2016-01-14  Jeff Law  <law@redhat.com>

	PR tree-optimization/69270
	* tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
	(record_edge_info): Use it.  Convert boolean_{true,false}_node
	to the type of op0.

2016-01-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66487
	* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
	use block_ultimate_origin
	(noncall-stmt_may_be_vtbl_ptr_store): Likewise.

2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Submodel Options): Rename section to
	"Machine-Dependent Options" to better reflect its content.
	Rewrite introductory text to remove archaic CPU names.
	Update references.

2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Code Gen Options): Move section up in file,
	before target-specific options.  Update menu and option summary
	to reflect the new section ordering.

2016-01-13  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
	(C++ Dialect Options): Add cross-reference to -std option.
	* doc/standards.texi (C++ Language): Document C++14 support.

2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
	for pack/unpack functions for __ibm128.
	(PACK_IF): Likewise.
	(UNPACK_IF): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for __ibm128 pack/unpack functions.
	(rs6000_invalid_builtin): Likewise.
	(rs6000_init_builtins): Likewise.
	(rs6000_opt_masks): Likewise.

	* config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
	(RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
	functions
	(RS6000_BTM_COMMON): Likewise.

	* config/rs6000/rs6000.md (f128_vsx): New mode attribute.
	(unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
	disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
	128-bit floating point.  Add support for the double values to be
	in Altivec registers for TF/IF packing and unpacking, but restrict
	TD packing sub-fields to be FPR registers.  Don't allow overlapped
	register support for packing.  Allow pack inputs to be memory
	locations.  Don't build generator functions for unpack<mode>_dm
	and unpack<mode>_nodm.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.

	* config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
	built-in functions to pack/unpack explicit __ibm128 values.
	(__builtin_unpack_ibm128): Likewise.

	* doc/extend.texi (PowerPC Built-in Functions): Document
	__builtin_pack_ibm128 and __builtin_unpack_ibm128.

2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>

	PR c/66208
	* c-common.c (check_function_nonnull): Remove unnecessary declaration.
	Add new arg loc and pass it down as context.
	(check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
	to the location to use for the warning.
	(check_function_arguments): New arg loc.  All callers changed.  Pass
	it to check_function_nonnull.
	* c-common.h (check_function_arguments): Adjust declaration.

2016-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69156
	* gimple.c (validate_type): Removed.
	(gimple_builtin_call_types_compatible_p): Use
	useless_type_conversion_p instead of validate_type.
	* value-prof.c (gimple_stringop_fixed_value): Fold
	icall_size to correct type.

2016-01-13  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (__atomic Builtins): Clarify compare_exchange
	effects.

2016-01-13  Richard Henderson  <rth@redhat.com>

	PR tree-opt/68964
	* target.def (builtin_tm_load, builtin_tm_store): Remove.
	* config/i386/i386.c (ix86_builtin_tm_load): Remove.
	(ix86_builtin_tm_store): Remove.
	(TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
	(TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
	(TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
	* doc/tm.texi: Rebuild.

	* gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
	(BUILT_IN_TM_MEMCPY_RTWN): New.
	* trans-mem.c (tm_log_emit_stmt): Rearrange code for better
	fallback from vector to integer helpers.
	(build_tm_load): Handle vector types directly, instead of
	via target hook.
	(build_tm_store): Likewise.
	(expand_assign_tm): Prepare for register types not handled by
	the above.  Copy them to memory and use memcpy.
	* tree.c (tm_define_builtin): New.
	(find_tm_vector_type): New.
	(build_tm_vector_builtins): New.
	(build_common_builtin_nodes): Call it.

2016-01-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
	TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.

2016-01-13  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69169
	* tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
	handled_struct_type param.
	(create_variable_info_for, intra_create_variable_infos): Call
	create_variable_info_for_1 with extra arg.

2016-01-13  Yvan Roux  <yvan.roux@linaro.org>

	* config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
	and "armv8.1-a+crc" entries.

2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>

	PR target/69228
	* config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
	Change first operand predicate from register_or_constm1_operand
	to register_operand.
	(define_expand "avx512pf_gatherpf<mode>df"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>df"): Likewise.
	(define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
	(define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
	* config/i386/i386.c (ix86_expand_builtin): Remove first operand
	comparison with constm1_rtx from vec_prefetch_gen part.

2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69013
	* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
	Exchange assert for a test.

2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/69247
	* config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.

2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69242
	* tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
	assert with a check.

2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69186
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Properly guard vect_update_misalignment_for_peel call.

2016-01-12  Jeff Law  <law@redhat.com>

	PR tree-optimization/pr67755
	* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
	"need_profile_correction".
	(thread_block_1): Initialize new field to false by default.  If we
	have multiple thread paths through a common joiner to different
	final targets, then set new field to true.
	(compute_path_counts): Only do count adjustment when it's really
	needed.

2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Spec Files): Move section down in file, past
	all command-line option descriptions.

2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	PR middle-end/54809
	* doc/gty.texi: Remove documentation of mark_hook.
	* gengtype.c (struct write_types_data): Remove code to support
	mark_hook attribute.
	(walk_type): Likewise.
	(write_func_for_structure): Likewise.

2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
	Directory Options, and -specs= to Overall Options.
	(Overall Options): Adjust similarly.  Reorder to group related
	options together.  Make -specs= cross-reference the spec file details.
	(Directory Options): Adjust similarly.

2016-01-12  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c: Various whitespace and typo fixes.

2016-01-12  Olivier Hainque  <hainque@adacore.com>

	* gcc.c (spec_undefvar_allowed): New global.
	(process_command): Set to true when running for --version or --help,
	alone or together.
	(getenv_spec_function): When the variable is not defined, use the
	variable name as the variable value if we're allowed not to issue
	a fatal error.

2016-01-12  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/68911
	* tree-vrp.c (adjust_range_with_scev): Check overflow in range
	information computed for expression "init + nit * step".

2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
	about name of GCC executable.  Remove deleted node from menu.
	(Directory Options) <-B>: Remove cross-reference to deleted node.
	(Target Options): Delete section.

2016-01-12  Christian Bruel  <christian.bruel@st.com>

	PR target/69180
	* config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
	for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.

2016-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/69198
	* config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
	aligned_mem is properly set for AVX512-VL floating point masked
	stores.

	PR target/69175
	* ifcvt.c (cond_exec_process_if_block): When removing the last
	insn from then_bb, remove also any possible barriers that follow it.

2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/68456
	PR target/69226
	* config/i386/iamcu.h (SIZE_TYPE): New macro.
	(PTRDIFF_TYPE): Likewise.
	(WCHAR_TYPE): Likewise.
	(WCHAR_TYPE_SIZE): Likewise.
	(STDINT_LONG32): Likewise.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69053
	* tree-vect-loop.c (get_initial_def_for_reduction): Properly
	convert initial value for cond reductions.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69007
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
	widen_sum after dot_prod and sad.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69168
	* tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
	pattern stmt SLP type.
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
	end up unused so cope with that case.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69157
	* tree-vect-stmts.c (vectorizable_mask_load_store): Check
	stmts def type only during analyze phase.
	(vectorizable_call): Likewise.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69174
	* tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
	space.
	(vectorizable_load): Properly compute the number of loads needed
	for permuted strided SLP loads and do not spuriously assign
	to SLP_TREE_VEC_STMTS.

2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>

	* config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
	(TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
	(MD_EXEC_PREFIX): Remove.
	(MD_STARTFILE_PREFIX) Removee.
	(FILE_NAME_ABSOLUTE_P): Remove.
	(CPP_SPEC): Do not read macros from sys/version.h.
	(LINK_COMMAND_SPEC): Remove.
	(LOCAL_INCLUDE_DIR): Remove.
	(TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
	(TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
	(POST_LINK_SPEC): Define to invoke stubify after linker
	(LIBSTDCXX): Remove define
	(DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
	(DEFAULT_PCC_STRUCT_RETURN): Define to 1.
	(SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
	(SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
	(SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
	(IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
	(i386_djgpp_asm_named_section): Add propotype of new procedure

	* config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
	(MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
	(STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
	in config/i386/djgpp.h).
	(STANDARD_STARTFILE_PREFIX_2): Define identical to
	STANDARD_STARTFILE_PREFIX_1.
	(LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
	(GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
	installation errors.
	(MAX_OFILE_ALIGNMENT): Define to 128.
	(HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.

	* config/i386/djgpp.c: New file. Add implementation of
	i386_djgpp_asm_named_section.

	* config/i386/djgpp.opt: Remove obsolete option -mbnu210.

	* config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
	Add rule for building djgpp.o.

2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (v2df_reduction_p): New function.
	(rtx_is_swappable_p): Reductions are swappable.
	(insn_is_swappable_p): V2DF reductions are swappable.

2016-01-11  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_emit_move_sequence): Handle floating point
	reloads for other unsupported memory operands.

2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Jim Wilson  <jim.wilson@linaro.org>

	PR target/69194
	* config/arm/arm-builtins.c (arm_expand_neon_args): Call
	copy_to_mode_reg instead of force_reg.

2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/69225
	* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
	TARGET_80387 is true.

2016-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/69071
	* lra-eliminations.c (move_plus_up): Only move plus up
	if subreg of the constant can be simplified into constant
	and use the simplified subreg of the constant instead of
	the original constant.

	* fold-const.c (fold_convertible_p): Don't return true
	for conversion of VECTOR_TYPE to same sized integral type.
	(fold_convert_loc): Fix up formatting.  Fold conversion of
	VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
	instead of NOP_EXPR.

	PR tree-optimization/69214
	* tree-vrp.c (simplify_cond_using_ranges): Don't propagate
	innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
	Formatting fix.

	PR tree-optimization/69207
	* tree-vect-slp.c (vect_get_constant_vectors): For
	VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
	fold_convertible_p to vector_type's element type, and always
	use VCE for non-VECTOR_BOOLEAN_TYPE_P.

2016-01-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69173
	* tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
	fixup the cycle if all stmts are in a pattern.

2016-01-11  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/68999
	* alias.c (base_alias_check): Move check for addresses with
	alignment ANDs before the call for compare_base_decls.
	(memrefs_conflict_p): Return -1 for different decls
	that went through alignment adjustments.

2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68796
	* config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
	and QImode comparisons against zero with CC_NZmode.
	* config/aarch64/iterators.md (short_mask): New mode_attr.

2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
	(<avx512>_store<mode>_mask): Likewise.

2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68841
	* ifcvt.c (struct noce_if_info): Add orig_x field.
	(bbs_ok_for_cmove_arith): Add to_rename parameter.
	Don't record conflicts on to_rename if it's present.
	Allow memory destinations in sets.
	(noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
	blocks, passing orig_x to the checks.
	(noce_process_if_block): Set if_info->orig_x appropriately.

2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69069
	* tree-parloops.c (create_parallel_loop): Add missing phi args.

2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR rtl-optimization/68920
	* config/i386/i386.c (ix86_option_override_internal): Restrict number
	of conditional moves for  RTL if-conversion to 1 for
	TARGET_ONE_IF_CONV_INSN.
	* config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
	* config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
	* params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
	parameter to restirct number of conditional moves for
	RTL if-conversion.
	* doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
	conditionl moves.

2016-01-11  Alexandre Oliva  <aoliva@redhat.com>

	PR bootstrap/69123
	* var-tracking.c (drop_overlapping_mem_locs): Operate on all
	onepart vars.  Fix typo in comment.  Fix reversed condition in
	unshare test.
	(dataflow_set_remove_mem_locs): Operate on all onepart vars.

	PR bootstrap/69123
	* var-tracking.c (dump_onepart_variable_differences): New.
	(dataflow_set_different): If a detailed dump is requested,
	delay early returns and dump differences between onepart
	variables present before and after, and added variables.

2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/69010
	* expr.c (expand_expr_real_1): For boolean vector constants
	with a scalar mode use const_scalar_mask_from_tree.
	(const_scalar_mask_from_tree): New.
	* optabs.c (expand_vec_cond_mask_expr): Use mask mode
	assigned to a mask type to handle constants.

2016-01-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/69044
	* ipa-cp.c (estimate_local_effects): Do not clone for removal of
	useless parameters if we cannot change function signature.

2016-01-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/66616
	* cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
	flag.

2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69109
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
	latch with phi.

2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69108
	* tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
	res is not used in a phi.

2016-01-11  Yury Gribov  <y.gribov@samsung.com>

	PR 67425
	* common.opt (frandom-seed): Fix parameter name.
	* doc/invoke.texi (frandom-seed): Ditto and describe parameter.

2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69058
	* tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
	not supported.

2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.opt (mdiv-rem): Add period to the end.
	(mcode-density): Likewise.

2016-01-10  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69062
	* tree-parloops.c (loop_has_phi_with_address_arg): New function.
	(parallelize_loops): Don't paralelize loop that has phi with address
	arg.

2016-01-10  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69039
	* tree-parloops.c (try_create_reduction_list): Only allow single exit
	phi for reduction.

2016-01-09  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/68743
	* match.pd: Require target has function_c99_misc before doing
	truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.

2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>

	* configure.ac (isl_options_set_schedule_serialize_sccs): Also
	use GMPINC.
	* configure: Regenerate.

2016-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/50865
	PR tree-optimization/69097
	* fold-const.h (expr_not_equal_to): New prototype.
	* fold-const.c: Include stringpool.h and tree-ssanames.h.
	(expr_not_equal_to): New function.
	* match.pd (X % -Y is the same as X % Y): Don't optimize
	unless X is known not to be equal to minimum or Y is known
	not to be equal to -1.
	* tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
	fold TRUNC_MOD_EXPR if the second argument is not a power of two.
	(simplify_stmt_using_ranges): Adjust caller.
	(vrp_finalize): Call set_value_range on SSA_NAMEs before calling
	substitute_and_fold.

2016-01-09  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
	w/o DECL_NAME.

2016-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69167
	* gimple-fold.c (replace_stmt_with_simplification): Also punt if
	new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
	ops[0] comparison.
	* gimple-match-head.c (maybe_push_res_to_seq): Likewise.

2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68707
	* tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
	instances that can be handled via vect_load_lanes.

2016-01-08  Uros Bizjak  <ubizjak@gmail.com>

	* symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
	if we can't determine address equivalence.
	* alias.c (compare_base_decl): Update for changed return value of
	symtab_node::equal_address_to.

2016-01-08  Jason Merrill  <jason@redhat.com>

	PR c++/68983
	PR c++/67557
	* function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
	* expr.c (store_field): Not here.
	* tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
	call with TREE_ADDRESSABLE type.
	* tree-cfg.c (verify_gimple_call): Adjust.

2016-01-08  Olivier Hainque  <hainque@adacore.com>

	* config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
	libc_internal.

2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>

	* gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
	(reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
	(reduc_smin_v2sf): Rename to...
	(reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
	(reduc_splus_v2sf): Rename to...
	(reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.

2016-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69162
	* gimplify.c (gimplify_va_arg_expr): Encode original type of
	valist argument in another argument.
	(gimplify_modify_expr): Adjust for the above change.  Cleanup.
	* tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
	to determine the va_list type, build a MEM_REF instead of
	build_fold_indirect_ref.

	PR tree-optimization/69172
	* gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
	gimple_build.

2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/67781
	* tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
	and cmpnop in two steps: first the ones not accessed in original
	gimple expression in a endian independent way and then the ones not
	accessed in the final result in an endian-specific way.

2016-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69083
	* tree-vect-slp.c (vect_get_constant_vectors): For
	VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
	element type.  If op is fold_convertible_p to vector_type's element
	type, use NOP_EXPR instead of VCE.

2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67778
	PR rtl-optimization/68634
	PR rtl-optimization/68909
	* shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
	block from the stack until done with it.  Remove a superfluous
	bitmap set.  Remove a superfluous bitmap test.

2016-01-07  Martin Sebor  <msebor@redhat.com>

	PR c/68966
	* doc/extend.texi (__atomic Builtins, __sync Builtins): Document
	constraint on the type of arguments.

2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
	SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
	unaligned_access on the gcc_options set.
	* config/arm/arm.c (arm_option_override_internal): Use
	SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.

2016-01-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69140
	* config/i386/i386.c (ix86_frame_pointer_required): Enable
	frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.

2016-01-07  Uros Bizjak  <ubizjak@gmail.com>

	Revert
	2016-01-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69140
	* config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
	depending on frame_pointer_needed before remaining integer and SSE
	registers are saved.

2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	PR 1078
	* doc/extend.texi (Nvidia PDX Function Attributes): New section.

2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/69171
	* config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
	Use the "xBm" constraint.
	(float<sseintvecmodelower><mode>2<mask_name><round_name):
	Likewise.
	(sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
	(sse_cvtsi2ssq<round_name>): Likewise.
	(sse_cvtss2si<round_name>): Likewise.
	(sse_cvtss2siq<round_name>): Likewise.
	(sse2_cvtsi2sdq<round_name>): Likewise.
	(sse2_cvtsd2si<round_name>): Likewise.
	(sse2_cvtsd2siq<round_name>): Likewise.
	* config/i386/subst.md (round_nimm_scalar_predicate): New
	predicate.

2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>

	PR middle-end/67639
	* varasm.c (make_decl_rtl): Mark invalid register vars as
	DECL_EXTERNAL.

	PR rtl-optimization/66206
	* bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
	All callers changed.

2016-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69141
	* tree-ssa-pre.c: Include langhooks.h.
	(eliminate_dom_walker::before_dom_children): Use
	lang_hooks.decl_printable_name instead of
	cgraph_node::get ()->name ().

	PR middle-end/68960
	* gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
	it and DECL_ALIGN too.

2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips-ftypes.def: Sort to lexicographical order.

2016-01-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69140
	* config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
	depending on frame_pointer_needed before remaining integer and SSE
	registers are saved.

2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
	mode iterator with VSX_M2.
	(*p9_vecstore_<mode>): Likewise.
	(*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
	(*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
	(*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
	(define_split for VSX_LE128 stores): Likewise.
	(define_peephole2 for TImode LE swaps): Likewise.
	(define_split for VSX_LE128 post-reload stores): Likewise.

2016-01-06  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/69099
	* convert.c (convert_to_integer_1): Adjust call to
	ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
	* ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
	EXPR instead of ARG.
	* ubsan.h (ubsan_instrument_float_cast): Adjust declaration.

2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	PR 1078
	* doc/extend.texi (RL78 Variable Attributes): New section.

2016-01-05  Marek Polacek  <polacek@redhat.com>

	PR c/69104
	* builtins.c (get_memmodel): Use expansion point location rather than
	the input location.  Call warning_at rather than warning.
	(expand_builtin_atomic_compare_exchange): Likewise.
	(expand_builtin_atomic_load): Likewise.
	(expand_builtin_atomic_store): Likewise.
	(expand_builtin_atomic_clear): Likewise.

2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/68991
	* config/i386/i386.c (ix86_expand_vector_logical_operator):
	Replace nonimmediate_operand with vector_operand.
	* config/i386/predicates.md (vector_operand): New predicate.
	(general_vector_operand): Replace nonimmediate_operand with
	vector_operand.
	* config/i386/sse.md: Replace nonimmediate_operand with
	vector_operand and m constraint with Bm constraint on SSE
	patterns with 16-byte memory operand.
	* config/i386/subst.md (round_nimm_predicate): Replace
	nonimmediate_operand with vector_operand.
	(round_saeonly_nimm_predicate): Likewise.
	(round_saeonly_nimm_scalar_predicate): New.

2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/68991
	* config/i386/constraints.md (Bm): New constraint.
	* config/i386/predicates.md (vector_memory_operand): New
	predicate.
	* config/i386/sse.md: Replace xm with xBm in plusminus and
	any_logic patterns.

2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	PR 1078
	* doc/extend.texi (V850 Function Attributes): New section.
	(V850 Variable Attributes): New section.

2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	PR 1078
	* doc/extend.texi (MicroBlaze Function Attributes): Document
	interrupt_handler and fast_interrupt attributes.

2016-01-05  Sergei Trofimovich  <siarheit@google.com>

	PR other/60465
	* config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
	for local symbolic operands.
	* config/ia64/predicates.md (local_symbolic_operand64): New
	predicate.

2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68651
	* combine.c (combine_simplify_rtx): Canonicalize x + x into
	x << 1.

2016-01-05  Nathan Sidwell  <nathan@acm.org>

	* alias.c (compare_base_decls): Use symtab_node::get.

2016-01-05  Nick Clifton  <nickc@redhat.com>

	PR target/68770
	* ira-costs.c (copy_cost): Initialise the t_icode field of the
	secondary_reload_info structure.

	PR target/66655
	* config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
	decls if weak support is available.

2016-01-04  Martin Sebor  <msebor@redhat.com>

	* doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.

2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
	OPTION_MASK_P9_DFORM.

	* config/rs6000/constraints.md (wo constraint): New constraint for
	ISA 3.0 (power9).

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
	for wo constraint.
	(rs6000_init_hard_regno_mode_ok): Likewise.

	* config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
	wo constraint.

	* config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
	expanders not to have constraints.  Add support for ISA 3.0 xxperm
	instruction.  Add support for fusing xxlor with xxperm.
	(altivec_vperm_<mode>_internal): Likewise.
	(altivec_vperm_v8hiv16qi): Likewise.
	(altivec_vperm_<mode>v16q): Likewise.
	(altivec_vperm_<mode>_uns): Likewise.
	(vperm_v8hiv4si): Likewise.
	(vperm_v16qiv8hi): Likewise.

	* doc/md.texi (RS/6000 constraints): Document wo constraint.

2016-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

	* gcc.c (process_command): Update copyright notice dates.
	* gcov-dump.c (print_version): Ditto.
	* gcov.c (print_version): Ditto.
	* gcov-tool.c (print_version): Ditto.
	* gengtype.c (create_file): Ditto.
	* doc/cpp.texi: Bump @copying's copyright year.
	* doc/cppinternals.texi: Ditto.
	* doc/gcc.texi: Ditto.
	* doc/gccint.texi: Ditto.
	* doc/gcov.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/invoke.texi: Ditto.

2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
	modes larger than TImode as TImode if NEON is not enabled.

2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/69100
	* config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
	mode for %f0-%f31 only if TARGET_FPU.

2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/69072
	* config/sparc/sparc.c (scan_record_type): Take into account subfields
	to compute the PACKED_P predicate.
	(function_arg_record_value): Minor tweaks.

2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* doc/install.texi (--with-multilib-list): Describe the meaning of the
	option for arm*-*-* targets.

2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Common Function Attributes): Move docs for
	MSP430-specific attributes to....
	(MSP430 Function Attributes): ...here.  Delete the redundant
	entries and copy-edit the remaining text.
	(MSP430 Variable Attributes): Use uniform format for index
	entries and add a cross-reference to the corresponding function
	attribute docs.

2016-01-03  Vladimír Čunát  <vcunat@gmail.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Fix
	-finite-math typo.
	(x86 Options): Likewise.

2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>

	PR 1078

	* extend.texi (Common Function Attributes) <no_stack_limit>: New.
	* invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
	to corresponding attribute.

2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Common Function Attributes) <noplt>: Move
	to correct alphabetization of table.  Copy-edit and correct
	markup.
	<stack_protect>: Likewise.
	<target_clones>: Likewise.
	<simd>: Likewise.
	* doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
	Correct punctuation.
	(Code Gen Options) <-fno-plt>: Copy-edit.

2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR target/68917
	* config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
	SI values.  Explicitly convert SI to DI and vice-versa.

2016-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69070
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
	REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.

	PR sanitizer/69055
	* ubsan.c (ubsan_instrument_float_cast): Call
	initialize_sanitizer_builtins.

	PR target/69015
	* ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).

Copyright (C) 2016 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
