2015-12-30  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Check
	it's not a constant pool object.

2015-12-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (init_float128_ieee): Remove IEEE 128-bit
	comparison functions in cmp_optab and ucmp_optab.
	(rs6000_generate_compare): Rewrite IEEE 128-bit floating point
	software emulation comparisons to only use __eqkf2, __gekf2,
	__lekf2, and __unordkf2 functions.
	(rs6000_invalid_binary_op): Add support for -mfloat128-convert.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__FLOAT128_HARDWARE__ if hardware IEEE 128-bit support is
	available.

	* config/rs6000/rs6000.opt (-mfloat128-convert): Add debug switch
	to allow IBM extended double and IEEE 128-bit floating point to be
	converted with default conversions.

	* config/rs6000/rs6000.md (extendkftf2): Add converters between
	KFmode and TFmode if -mabi=ieeelongdouble.
	(trunctfkf2): Likewise.
	(ieee128_mfvsrd): Split 64-bit integer conversions into 32-bit and
	64-bit insns.
	(ieee128_mfvsrd_64bit): Likewise.
	(ieee128_mfvsrd_32bit): Likewise.
	(ieee128_mtvsrd): Likewise.
	(ieee128_mtvsrd_64bit): Likewise.
	(ieee128_mtvsrd_32bit): Likewise.

	* doc/extend.texi (Floating Types): Document that complex
	__float128 does not work currently.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document that
	-mfloat128 is only supported on PowerPC 64-bit Linux systems.

2015-12-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Verify that
	this is never called when lxvx/stxvx are available.
	(pass_analyze_swaps::gate): Don't perform swap optimization when
	lxvx/stxvx are available.
	* config/rs6000/vector.md (mov<mode>): Don't call
	rs6000_emit_le_vsx_move when lxvx/stxvx are available.
	* config/rs6000/vsx.md (*p9_vecload_<mode>): New define_insn.
	(*p9_vecstore_<mode>): Likewise.
	(*vsx_le_perm_load_<mode>:VSX_LE): Disable when lxvx/stxvx are
	available.
	(*vsx_le_perm_load_<mode>:VSX_W): Likewise.
	(*vsx_le_perm_load_v8hi): Likewise.
	(*vsx_le_perm_load_v16qi): Likewise.
	(*vsx_le_perm_store_<mode>:VSX_LE): Likewise.
	([related define_splits]): Likewise.
	(*vsx_le_perm_store_<mode>:VSX_W): Likewise.
	([related define_splits]): Likewise.
	(*vsx_le_perm_store_v8hi): Likewise.
	([related define_splits]): Likewise.
	(*vsx_le_perm_store_v16qi): Likewise.
	([related define_splits]): Likewise.
	(*vsx_lxvd2x2_le_<mode>): Likewise.
	(*vsx_lxvd2x4_le_<mode>): Likewise.
	(*vsx_lxvd2x8_le_V8HI): Likewise.
	(*vsx_lvxd2x16_le_V16QI): Likewise.
	(*vsx_stxvd2x2_le_<mode>): Likewise.
	(*vsx_stxvd2x4_le_<mode>): Likewise.
	(*vsx_stxvd2x8_le_V8HI): Likewise.
	(*vsx_stxvdx16_le_V16QI): Likewise.
	([define_peepholes for vector load fusion]): Likewise.

2015-12-28  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_output_call_insn): Expect hard regs.
	* config/nvptx/nvptx.md (nvptx_reg_or_mem_operand): Rename to ...
	(nvptx_nonimmediate_operand): ... here.  Update all uses.
	(call_insn_operand): Use REG_P.
	(call_operation): Allow hard regs.

2015-12-25  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Do not
	dissolve comdat groups when in LTO mode.

2015-12-25  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64
	defines. Use FBSD_DYNAMIC_LINKER instead.
	Rename and simplify LINK_OS_FREEBSD_SPEC_DEF32/64 to
	LINK_OS_FREEBSD_SPEC_DEF.

2015-12-24  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-sese-to-poly.c (build_loop_iteration_domains): Use ref instead of value.
	* sese.c (invariant_in_sese_p_rec): Use const ref instead of value.
	(scalar_evolution_in_region): Same
	* sese.h (bb_in_region): Same
	(bb_in_sese_p): Same.
	(stmt_in_sese_p): Same.
	(defined_in_sese_p): Same.
	(loop_in_sese_p): Same.

2015-12-24  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-scop-detection.c
	(scop_detection::get_nearest_dom_with_single_entry): Check l ==	l2.
	(scop_detection::get_nearest_pdom_with_single_exit): Same.
	(scop_detection::merge_sese): Whitespace.
	(scop_detection::add_scop): Comment.
	(build_scops): Whitespace.

2015-12-24  Kirill Yukhin  <kirill.yukhin@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PKU_SET): New.
	(OPTION_MASK_ISA_PKU_UNSET): Ditto.
	(ix86_handle_option): Handle OPT_mpku.
	* config.gcc: Add pkuintrin.h to i[34567]86-*-* and x86_64-*-*
	targets.
	* config/i386/cpuid.h (host_detect_local_cpu): Detect PKU feature.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle PKU ISA
	flag.
	* config/i386/i386.c (ix86_target_string): Add "-mpku" to
	ix86_target_opts.
	(ix86_option_override_internal): Define PTA_PKU, mention new key
	in skylake-avx512. Handle new ISA bits.
	(ix86_valid_target_attribute_inner_p): Add "pku".
	(enum ix86_builtins): Add IX86_BUILTIN_RDPKRU and IX86_BUILTIN_WRPKRU.
	(builtin_description bdesc_special_args[]): Add new built-ins.
	* config/i386/i386.h (define TARGET_PKU): New.
	(define TARGET_PKU_P): Ditto.
	* config/i386/i386.md (define_c_enum "unspecv"): Add UNSPEC_PKU.
	(define_expand "rdpkru"): New.
	(define_insn "*rdpkru"): Ditto.
	(define_expand "wrpkru"): Ditto.
	(define_insn "*wrpkru"): Ditto.
	* config/i386/i386.opt (mpku): Ditto.
	* config/i386/pkuintrin.h: New file.
	* config/i386/x86intrin.h: Include pkuintrin.h
	* doc/extend.texi: Describe new built-ins.
	* doc/invoke.texi: Describe new switches.

2015-12-23  Richard Henderson  <rth@redhat.com>

	PR ipa/67811
	* tree-cfg.c (make_edges_bb): Add abort edge for outer transactions.

2015-12-23  Nathan Sidwell  <nathan@acm.org>

	* cgraph.h (decl_in_symtab_p): Revert check DECL_IN_CONSTANT_POOL.

2015-12-23  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h
	(nvptx_maybe_convert_symbolic_operand): Delete prototype.
	* config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand): Delete.
	(nvptx_output_mov_insn): Record fnsym here.
	(nvptx_wpropagate): Don't create UNSPEC_TO_GENERIC unspec.
	* config/nvptx/nvptx.md (UNSPEC_TO_GENERIC): Delete.
	(symbolic_operand): Delete predicate.
	(nvptx_nonimmediate_operand): Delete predicate.
	(mov<mode>): Hard regs are perfectly ok here.
	(convaddr_<mode>): Delete.

2015-12-23  Nathan Sidwell  <nathan@acm.org>

	* alias.c (compare_base_decls): Simplify in-symtab check.
	* cgraph.h (decl_in_symtab_p): Check DECL_IN_CONSTANT_POOL.

2015-12-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/predicates.md ("larl_operand"): Remove now superfluous
	const_int and const_double.
	* genrecog.c (safe_predicate_mode): Return false for VOIDmode
	LABEL_REFs even if the predicate does not handle const_int,
	const_double or const_wide_int.
	* genpreds.c (add_mode_tests): Treat LABEL_REF like CONST_INT.

2015-12-23  Thomas Schwinge  <thomas@codesourcery.com>

	* tree-core.h (enum omp_clause_code): Merge OMP_CLAUSE_USE_DEVICE
	into OMP_CLAUSE_USE_DEVICE_PTR.  Adjust all users.

2015-12-23  David Sherwood  <david.sherwood@arm.com>

	* config/arm/iterators.md (VMAXMINFNM): New int iterator.
	(fmaxmin): New int attribute.
	(fmaxmin_op): Likewise.
	* config/arm/unspecs.md (UNSPEC_VMAXNM): New unspec.
	(UNSPEC_VMINNM): Likewise.
	* config/arm/neon.md (fmaxmin): New pattern.
	* config/arm/vfp.md (fmaxmin): Likewise.

2015-12-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66232
	* config/i386/constraints.md (Bs): Allow GOT slot for x32 with
	64-bit Pmode.
	(Bw): Likewise.
	(Bz): Likewise.
	* config/i386/predicates.md (call_insn_operand): Likewise.
	(sibcall_insn_operand): Likewise.

2015-12-22  David Malcolm  <dmalcolm@redhat.com>

	PR c/68473
	* diagnostic-show-locus.c (layout::layout): Make loc_range const.
	Sanitize the layout_range against ranges that finish before they
	start.

2015-12-22  Jeff Law  <law@redhat.com>

	* gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block
	copying.

2015-12-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67376
	* fold-const.c (size_low_cst): Removed.
	(fold_comparison): For POINTER_PLUS_EXPR where base is ADDR_EXPR
	call get_inner_reference and handle INDIRECT_REF base of it.  Use
	offset_int for computation of the bitpos.
	(fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Formatting
	fixes for X +- Y CMP X and C - X CMP X folding.  Add X CMP X +- Y
	and X CMP C - X folding.

2015-12-22  Richard Henderson  <rth@redhat.com>

	PR ipa/67811
	* gimple.h (struct gtransaction): Add label_norm, label_uninst;
	replace label with label_over.
	(gimple_build_transaction): Remove label parameter.
	(gimple_transaction_label_norm): New.
	(gimple_transaction_label_uninst): New.
	(gimple_transaction_label_over): Rename from gimple_transaction_label.
	(gimple_transaction_label_norm_ptr): New.
	(gimple_transaction_label_uninst_ptr): New.
	(gimple_transaction_label_over_ptr): Rename from
	gimple_transaction_label_ptr.
	(gimple_transaction_set_label_norm): New.
	(gimple_transaction_set_label_uninst): New.
	(gimple_transaction_set_label_over): Rename from
	gimple_transaction_set_label.
	* gimple-pretty-print.c (dump_gimple_transaction): Update.
	* gimple-streamer-in.c (input_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple-streamer-out.c (output_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple-walk.c (walk_gimple_op) [GIMPLE_TRANSACTION]: Same.
	* tree-cfg.c (make_edges_bb) [GIMPLE_TRANSACTION]: Same.
	(cleanup_dead_labels) [GIMPLE_TRANSACTION]: Same.
	(verify_gimple_transaction): Same.
	(gimple_redirect_edge_and_branch) [GIMPLE_TRANSACTION]: Same.
	* tree-inline.c (remap_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
	* gimple.c (gimple_build_transaction): Remove label parameter;
	initialize all three label memebers.
	* gimplify.c (gimplify_transaction): Update call
	to gimple_build_transaction.
	* trans-mem.c (make_tm_uninst): New.
	(lower_transaction): Create uninstrumented code path here...
	(ipa_tm_scan_calls_transaction): ... not here.
	(ipa_uninstrument_transaction): Remove.

	* tree-eh.c (honor_protect_cleanup_actions): Do not wrap eh_else
	in a must-not-throw; set ehp_region for it too.

2015-12-22  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/68872
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le,
	pass %(asm_cpu_power8).

2015-12-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/68937
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Count
	call to global function via GOT slot as indirect call.
	* config/i386/i386.md (*sibcall_GOT_32): New pattern.
	(*sibcall_value_GOT_32): Likewise.
	* config/i386/predicates.md (sibcall_memory_operand): Rewrite.
	Allow 32-bit GOT slot only with pseudo register as GOT base.
	(GOT32_symbol_operand): New predicate.

2015-12-22  Sujoy Saraswati  <sujoy.saraswati@hpe.com>

	* fold-const.c (const_binop): Convert sNaN to qNaN when
	flag_signaling_nans is off.
	(const_unop): Avoid the operation, other than NEGATE and
	ABS, if flag_signaling_nans is on and the operand is an sNaN.
	(fold_convert_const_real_from_real): Avoid the operation if
	flag_signaling_nans is on and the operand is an sNaN.
	(integer_valued_real_unary_p): Update comment stating it
	returns false for sNaN values.
	(integer_valued_real_binary_p, integer_valued_real_call_p): Same.
	(integer_valued_real_single_p): Same.
	(integer_valued_real_invalid_p, integer_valued_real_p): Same.
	* fold-const-call.c (fold_const_pow): Avoid the operation
	if flag_signaling_nans is on and the operand is an sNaN.
	(fold_const_builtin_load_exponent) Same.
	(fold_const_call_sss): Same for CASE_CFN_POWI.
	* gimple-fold.c (gimple_assign_integer_valued_real_p): Same.
	(gimple_call_integer_valued_real_p): Same.
	(gimple_phi_integer_valued_real_p): Same.
	(gimple_stmt_integer_valued_real_p): Same.
	* simplify-rtx.c (simplify_const_unary_operation): Avoid the
	operation if flag_signaling_nans is on and the operand is an sNaN.
	(simplify_const_binary_operation): Same.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Avoid the
	operation if flag_signaling_nans is on and the operand is an sNaN.

2015-12-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (simplify_comparison): Convert preprocessor check of
	WORD_REGISTER_OPERATIONS into runtime check.

2015-12-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/60756
	* var-tracking.c (tracked_record_parameter_p): New predicate.
	(track_expr_p): Invoke it.
	(add_stores): Likewise.

2015-12-21  Jeff Law  <law@redhat.com>

	* dbgcnt.def (dom_unreachable_edges): New debug counter.
	* tree-ssa-dom.c: Include dbgcnt.h
	(dom_opt_dom_walker::before_dom_children): Handle the new counter.

2015-12-21  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-option-extensions.def (LSE): Change
	FEAT_STRING to "atomics".

2015-12-21  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.c (add_data_member_location_attribute): Do not
	disable dynamic data member offsets descriptions for TREE_BINFO
	members.

2015-12-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/65337
	* tree-ssa-pre.c (eliminate): Also clean up abnormal edges if need be.

2015-12-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Fix base reg condition.

2015-12-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/builtins.def: New file.
	* config/arc/arc.c (arc_init_simd_builtins): Remove.
	(arc_builtins): Likewise.
	(TARGET_BUILTIN_DECL): Define.
	(arc_builtin_id): New enum.
	(arc_builtin_description): New structure.
	(arc_bdesc): New variable.
	(arc_tolower): New function.
	(def_mbuiltin): Remove.
	(arc_builtin_decl): New function.
	(arc_expand_builtin_aligned ): Likewise.
	(apply_GEN_FCN): Likewise.
	(arc_init_builtins): Refurbish.
	(arc_expand_builtin): Likewise.
	(simd_insn_args_type): Remove.
	(builtin_description): Likewise
	(arc_simd_builtin_desc_list): Likewise.
	(arc_expand_simd_builtin): Likewise.
	(arc_process_double_reg_moves): Use the new builtin name format.
	* config/arc/arc.md (unspec): New builtin function UNSPEC codes.
	(vunspec): New builtin function VUNSPEC codes.
	(UNSPEC_SWAP, UNSPEC_MUL64, UNSPEC_MULU64, UNSPEC_DIVAW)
	(UNSPEC_DIRECT, UNSPEC_LP, UNSPEC_CASESI, VUNSPEC_RTIE)
	(VUNSPEC_SYNC, VUNSPEC_BRK, VUNSPEC_FLAG, VUNSPEC_SLEEP)
	(VUNSPEC_SWI, VUNSPEC_CORE_READ, VUNSPEC_CORE_WRITE, VUNSPEC_LR)
	(VUNSPEC_SR, VUNSPEC_TRAP_S, VUNSPEC_UNIMP_S, VUNSPEC_NOP)
	(UNSPEC_ARC_MEMBAR,VUNSPEC_ARC_CAS, VUNSPEC_ARC_LL)
	(VUNSPEC_ARC_SC, VUNSPEC_ARC_EX, VUNSPEC_DEXCL)
	(VUNSPEC_DEXCL_NORES, VUNSPEC_LR_HIGH): Remove.
	(mul64, mulu64): Remove patterns.
	(store_direct, *movdf_insn_nolrsr, casesi, casesi_load)
	(casesi_compact_jump, nopv, swap, divaw, flag, brk, rtie, sync)
	(swi, sleep, core_read, core_write, lr, sr, trap_s, unimp_s)
	(doloop_begin_i): Use new builtin function code naming.
	(kflag, clri, ffs, ffs_f, ffssi2, fls, seti): New patterns.
	* config/arc/builtins.def: New file.
	* config/arc/fpx.md: Use new builtin function code naming.
	* config/arc/simdext.md: New SIMD builtin function UNSPEC
	codes. Use them in the SIMD patterns.

2015-12-21  Sujoy Saraswati  <sujoy.saraswati@hpe.com>

	PR tree-optimization/61441
	* real.c (do_add): Make resulting NaN value to be qNaN.
	(do_multiply, do_divide, do_fix_trunc): Same.
	(real_arithmetic, real_ldexp, real_convert): Same.
	(real_isinteger): Updated comment stating it returns false for sNaN.

2015-12-20  Jeff Law  <law@redhat.com>

	PR tree-optimization/64910
	* config/i386/i386.md (testqi_ext_3): Allow HImode.

2015-12-20  Andrew Pinsi  <apinski@cavium.com>

	* config/aarch64/atomics.md
	(aarch64_atomic_<atomic_optab>_fetch<mode>_lse): Add early clobber
	to the scratch register.

2015-12-20  Sujoy Saraswati  <sujoy.saraswati@hpe.com>

	PR tree-optimization/61441
	* match.pd (f(x) -> x): Removed flag_errno_math check for RINT.

2015-12-20  Sujoy Saraswati  <sujoy.saraswati@hpe.com>

	PR tree-optimization/61441
	* fold-const.c (const_binop): Use REAL_VALUE_ISSIGNALING_NAN instead
	of REAL_VALUE_ISNAN to avoid the operation for sNaN operands.
	* simplify-rtx.c (simplify_const_binary_operation): Same.

2015-12-19  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/65337
	* tree-ssa-dce.c (bb_postorder): New static var.
	(mark_stmt_necessary): Add guard for setting bb_contains_live_stmts.
	(forward_edge_to_pdom): Remove.
	(remove_dead_stmt): Instead of redirecting edges only keep an edge
	on a path to nearest live BB.
	(eliminate_unnecessary_stmts): Free bb_postorder.
	* cfganal.c (dfs_find_deadend): Add START_POINTES.
	* cfganal.h (inverted_post_order_compute): Update prototype.

2015-12-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/68910
	* emit-rtl.c (set_unique_reg_note) <REG_EQUAL>: Add bypass for USEs.
	* config/sparc/sparc.md (anddi3): Enable only in 64-bit mode.
	(iordi3): Likewise.
	(xordi3): Likewise.
	(one_cmpldi2): Likewise.
	(*anddi3_sp32): Delete.
	(*and_not_di_sp32): Likewise.
	(*iordi3_sp32): Likewise.
	(*or_not_di_sp32): Likewise.
	(*xordi3_sp32): Likewise.
	(*xor_not_di_sp32): Likewise.
	(32-bit DImode logical operations splitter): Likewise.
	(*one_cmpldi2_sp32): Likewise.

2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.md (*storeqi_update): Use 'any_mem_operand' and
	fix RTL pattern to include the plus.
	(*storehi_update): Likewise.
	(*storesi_update): Likewise.
	(*storesf_update): Likewise.
	* config/arc/predicates.md (store_update_operand): Delete.

2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.md (*loadqi_update): Use new 'any_mem_operand'
	and fix RTL pattern to include the plus.
	(*load_zeroextendqisi_update): Likewise.
	(*load_signextendqisi_update): Likewise.
	(*loadhi_update): Likewise.
	(*load_zeroextendhisi_update): Likewise.
	(*load_signextendhisi_update): Likewise.
	(*loadsi_update): Likewise.
	(*loadsf_update): Likewise.
	* config/arc/predicates.md (load_update_operand): Delete.
	(any_mem_operand): New predicate.

2015-12-19  Sujoy Saraswati  <sujoy.saraswati@hpe.com>

	PR tree-optimization/61441
	* real.c (real_issignaling_nan): New.
	* real.h (real_issignaling_nan, REAL_VALUE_ISSIGNALING_NAN): New.

2015-13-18  John David Anglin  <danglin@gcc.gnu.org>

	PR target/68729
	* config/pa/pa.c (pa_emit_move_sequence): Reorganize handling of
	floating-point reloads. Only reload operands that are not valid
	floating-point memory operands.

2015-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/68860
	* ipa-split.c (split_function): Only perform caller side
	modifications for decl_debug_args here.
	* cgraph.c: Include gimplify.h.
	(cgraph_edge::redirect_call_stmt_to_callee): Add caller side
	debug stmts for decl_debug_args.  Spelling fix in a comment.
	* tree-inline.c (tree_function_versioning): Populate decl_debug_args
	for args_to_skip arguments and add callee side debug stmts.
	Formatting fixes.  Avoid shadowing i variable.

2015-12-18  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand):
	Remove UNSPEC_TO_GENERIC generation.
	(nvptx_output_mov_insn): Generate cvta for symbolic src.
	* config/nvptx/nvptx.md (nvptx_register_operand): Allow hard reg.
	(nvptx_reg_or_mem_operand): Likewise.
	(nvptx_nonmemory_operand): Likewise.
	(nvptx_general_operand): Delete.
	(*mov<mode>_insn): Use nonimmediate_operand, permit hardregs.
	(oacc_fork, oacc_join): Use general_operand.

2015-12-18  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	* dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map.

2015-12-18  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_option_override): Emit sorry for
	stabs debug.
	(nvptx_assemble_undefined_decl): Use nvptx_assemble_decl_end.

2015-12-18  Jeff Law  <law@redhat.com>

	PR rtl-optimization/49847
	* cse.c (record_jump_equiv): Handle fold_rtx returning NULL_RTX.

2015-12-18  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (worker_bcast_name, worker_red_name): Delete.
	(nvptx_option_override): Adjust worker symbol creation.
	(nvptx_gen_wcast): Wrap worker address in UNSPEC_TO_GENERIC.
	(write_worker_buffer): New.
	(nvptx_file_end): Call write_worker_buffer.
	* config/nvptx/nvptx.md (UNSPEC_SHARED_DATA): Delete.
	(worker_load<mode>, worker_store<mode>): Delete.

2015-12-18  Richard Biener  <rguenther@suse.de>

	PR testsuite/68776
	* tree-vect-patterns.c (struct vect_recog_func): New.
	(vect_vect_recog_func_ptrs): Make an array of function name pairs.
	(vect_pattern_recog_1): Print the recognized pattern name.  Return
	true if a pattern was recognized.
	(vect_pattern_recog): Adjust.  Stop iterating over pattern recognition
	functions on a stmt if a pattern was recognized.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* ira.c (ira_setup_alts): Move the scan for commutative modifier
	to the first loop to make it work even with disabled alternatives.

2015-12-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_init_frame_layout): Try r4 to r2 for the
	literal pool pointer.

2015-12-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/68906
	* tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Add check
	that an exit block belongs to LOOP.

2015-12-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR tree-optimization/68956
	* tree-vect-stmts.c (vect_init_vector): Fix constants
	used for boolean vectors.

2015-12-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68796
	* config/aarch64/aarch64.md (*and<mode>3nr_compare0_zextract):
	New pattern.
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle
	ZERO_EXTRACT comparison with zero.
	(aarch64_mask_from_zextract_ops): New function.
	* config/aarch64/aarch64-protos.h (aarch64_mask_from_zextract_ops):
	New prototype.

2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/predicates.md: Change and rename
	constm1_operand to all_ones_operand
	* config/s390/s390.c (s390_expand_vcond): Use all_ones_operand
	* config/s390/vector.md: Likewise

2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_vcond): Convert vector
	conditional into shift.
	* config/s390/vector.md: Change operand predicate.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
	z900 -march -mtune even on g5 and g6 machines.
	* config/s390/s390.c (s390_option_override_internal): New argument
	to distingiush between options and target attributes.  Emit
	deprecation warning for g5 and g6 arch/tune options.
	(s390_option_override): Set new s390_option_override_internal
	argument to true.
	(s390_valid_target_attribute_tree): Set new
	s390_option_override_internal argument to false.
	* config/s390/s390.h: Default to z900 in the driver.
	* doc/invoke.texi: Document the deprecation of g5 and g6.

2015-12-18  Andris Pavenis  <andris.pavenis@iki.fi>

	* config/i386/djgpp-stdint.h: update typedefs for integer types

2015-12-17  Jeff Law  <law@redhat.com>

	* passes.def: Put the split-paths pass immediately before the
	tracer pass.

	* doc/invoke.texi (-O2 options): Remove -fsplit-paths.
	(-O3 options): Add -fsplit-paths.
	* gimple-ssa-split-paths.c: Include predict.h
	(split_paths): Only split paths in a loop that should be
	optimized for speed.
	* opts.c (default_options_table): Move -fsplit-paths from -O2 to
	-O3.

2015-12-17  Nathan Sidwell  <nathan@acm.org>

	* ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the
	source function.

2015-12-17  Sebastian Pop  <s.pop@samsung.com>

	* Makefile.in: Replace ISL with isl.
	* common.opt: Same.
	* configure: Regenerate.
	* configure.ac: Same.
	* doc/install.texi: Same.
	* doc/invoke.texi: Same.
	* graphite-isl-ast-to-gimple.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.
	* graphite.h: Same.
	* params.def: Same.
	* testsuite/gcc.dg/graphite/fuse-1.c: Same.
	* testsuite/gcc.dg/graphite/fuse-2.c: Same.
	* testsuite/gcc.dg/graphite/interchange-1.c: Same.
	* testsuite/gcc.dg/graphite/pr35356-1.c: Same.
	* toplev.c: Same.

2015-12-17  Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c: Move all isl include files to...
	* graphite-isl-ast-to-gimple.c: Same.
	* graphite-optimize-isl.c: Same.
	* graphite-poly.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite.c: Same.
	* graphite.h: ... here.

2015-12-17  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* config/avr/avr.h (MOVE_MAX): Set value to 1.
	(MOVE_MAX_PIECES): Define.
	(MOVE_RATIO): Define.
	* config/avr/avr.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P):
	Provide target hook.
	(avr_use_by_pieces_infrastructure_p): New function.

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: mark *-interix* as obsolete.

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: Mark openbsd 2.0 and 3.X as obsolete.

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: Mark knetbsd targets as obsolete.

2015-12-17  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM,
	ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Renumber.
	(REGISTER_NAMES): Update and rename.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
	(enum_reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Reformat.

2015-12-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68946
	* tree-vect-slp.c (vect_slp_analyze_node_operations): Push
	SLP def type to stmt operands one stmt at a time.

2015-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* langhooks.h (struct lang_hooks_for_types): New get_bias_field.
	* langhooks-def.h (LANG_HOOKS_GET_TYPE_BIAS): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
	get_bias_field.
	* dwarf2out.c
	(base_type_die): In non-strict DWARF mode, invoke the
	get_type_bias language hook for INTEGER_TYPE nodes.  If it
	returns a bias, emit an attribute for it.
	(subrange_type_die): Change signature to handle bias.  If
	non-strict DWARF mode, emit an attribute for it, if one passed.
	(modified_type_die): For subrange types, invoke the
	get_type_bias langage hook and pass the bias to
	subrange_type_die.

2015-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.h (DWARF2OUT_ARRAY_DESCR_INFO_MAX_DIMEN): New macro.
	(struct array_descr_info): Use it for the dimensions array's
	size.
	* dwarf2out.c (gen_type_die_with_usage): Check that the array
	descr. language hook does not return an array with more
	dimensions that it should.

2015-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* langhooks.h (struct lang_hooks_for_types): Add a
	get_fixed_point_type_info field.
	* langhooks-def.h (LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO): New
	macro.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
	get_fixed_point_type_info field.
	* dwarf2out.h (enum fixed_point_scale_factor): New.
	(struct fixed_point_type_info): New.
	* dwarf2out.c (base_type_die): In DWARFv3 or non-strict DWARF
	mode, get fixed-point type information using the debugging hook
	and describe it in DWARF, if any.

2015-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* langhooks.h (struct lang_hooks_for_types): Add a
	get_debug_type field.
	* langhooks-def.h (LANG_HOOKS_GET_DEBUG_TYPE): New macro.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
	get_debug_type field.
	* dwarf2out.h (struct array_descr_info): Add an array-wide
	stride field.
	* dwarf2out.c (modified_type_die): Invoke the get_debug_type
	language hook, process its result instead, if any.
	(gen_descr_array_type_die): Add array-wide stride processing.

2015-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* debug.h (struct gcc_debug_hooks): Add a new size_function
	hook.
	* debug.c (do_nothing_debug_hooks): Set the size_function field
	to no-op.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* stor-layout.c (finalize_size_functions): Let the debug info
	back-end know about the implementation of size functions.
	* dwarf2out.h (dw_discr_list_ref): New typedef.
	(enum dw_val_class): Add value classes for discriminant values
	and discriminant lists.
	(struct dw_discr_value): New structure.
	(struct dw_val_node): Add discriminant values and discriminant
	lists to the union.
	(struct dw_loc_descr_node): Add frame_offset_rel and
	dw_loc_frame_offset (only for checking) fields to handle DWARF
	procedures generation.
	(struct dw_discr_list_node): New structure.
	* dwarf2out.c (dwarf2out_size_function): New.
	(dwarf2_debug_hooks): Set the size_function field to
	dwarf2out_size_function.
	(dwarf2_lineno_debug_hooks): Set the size_function field to
	no-op.
	(new_loc_descr): Initialize the
	dw_loc_frame_offset field.
	(dwarf_proc_stack_usage_map): New.
	(dw_val_equal_p): Handle discriminants.
	(size_of_discr_value): New.
	(size_of_discr_list): New.
	(size_of_die): Handle discriminants.
	(add_loc_descr_to_each): New.
	(add_loc_list): New.
	(print_discr_value): New.
	(print_dw_val): Handle discriminants.
	(value_format): Handle discriminants.
	(output_discr_value): New.
	(output_die): Handle discriminants.
	(output_loc_operands): Handle DW_OP_call2 and DW_OP_call4.
	(uint_loc_descriptor): New.
	(uint_comparison_loc_list): New.
	(loc_list_from_uint_comparison): New.
	(add_discr_value): New.
	(add_discr_list): New.
	(AT_discr_list): New.
	(loc_descr_to_next_no_op): New.
	(free_loc_descr): New.
	(loc_descr_without_nops): New.
	(struct loc_descr_context): Add a dpi field.
	(struct dwarf_procedure_info): New helper structure.
	(new_dwarf_proc_die): New.
	(is_handled_procedure_type): New.
	(resolve_args_picking_1): New.
	(resolve_args_picking): New.
	(function_to_dwarf_procedure): New.
	(copy_dwarf_procedure): New.
	(copy_dwarf_procs_ref_in_attrs): New.
	(copy_dwarf_procs_ref_in_dies): New.
	(break_out_comdat_types): Copy DWARF procedures along with the
	types that reference them.
	(loc_list_from_tree): Rename into loc_list_from_tree_1.  Handle
	CALL_EXPR in the cases suitable for DWARF procedures.  Handle
	for PARM_DECL when generating a location description for a DWARF
	procedure.  Handle big unsigned INTEGER_CST nodes.  Handle
	NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison
	operators.  Add a wrapper for loc_list_from_tree that strips
	DW_OP_nop operations from the result.
	(type_byte_size): New.
	(struct vlr_context): New helper structure.
	(field_byte_offset): Change signature to return either a
	constant offset or a location description for dynamic ones.
	Handle dynamic byte offsets with constant bit offsets and handle
	fields in variant parts.
	(add_data_member_location): Change signature to handle dynamic
	member offsets and fields in variant parts.  Update call to
	field_byte_offset.  Handle location lists.  Emit a variable data
	member location only when -fgnat-encodings=minimal.
	(add_bound_info): Emit self-referential bounds only when
	-fgnat-encodings=minimal.
	(add_byte_size_attribute): Use type_byte_size in order to handle
	dynamic type sizes.  Emit variable byte size only when
	-fgnat-encodings=minimal and when the target DWARF version
	allows them.
	(add_bit_offset_attribute): Change signature to handle
	variable-length records.  Update call to field_byte_offset.
	(gen_descr_array_type_die): Update call to gen_field_die.
	Update loc_descr_context literal.
	(gen_type_die_for_member): Likewise.
	(gen_subprogram_die): Update calls to get_decl_die.
	(gen_field_die): Change signature to handle variable-length
	records.  Update calls to add_bit_offset_attribute and
	add_data_member_location_attribute.
	(gen_inheritance_die): Update call to
	add_data_member_location_attribute.
	(gen_decl_die): Change signature to handle variable-length
	records.  Update call to gen_field_die.
	(gen_inheritance_die): Change signature to handle
	variable-length records.  Update call to
	add_data_member_location_attribute.
	(is_variant_part): New.
	(analyze_discr_in_predicate): New.
	(get_discr_value): New.
	(analyze_variants_discr): New.
	(gen_variant_part): New.
	(gen_member_die): Update calls to gen_decl_die.  Call instead
	gen_variant_part for variant parts.
	(gen_type_die_with_usage): Update calls to gen_decl_die.
	(process_scope_var): Likewise.
	(force_decl_die): Likewise.
	(declare_in_namespace): Likewise.
	(dwarf2out_decl): Likewise.
	(prune_unused_types_walk_loc_descr): New.
	(prune_unused_types_walk_attribs): Mark DIEs referenced by
	location descriptions and loc. descr. lists.
	(prune_unused_types_walk): Don't mark DWARF procedures by
	default.  Mark variant parts since nothing is supposed to
	reference them.
	(dwarf2out_init): Allocate dwarf_proc_stack_usage_map.
	(dwarf2out_c_finalize): Deallocate and reset
	dwarf_proc_stack_usage_map.

2015-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* common.opt (gnat_encodings): New variable
	(dwarf_gnat_encodings): New enum type.
	(fgnat_encodings): New option.
	* flag-types.h (enum dwarf_gnat_encodings): New.

2015-12-17  Christian Bruel  <christian.bruel@st.com>

	* tree.h (TYPE_MODE_RAW): New macro.
	* tree-streamer-out.c (pack_ts_type_common_value_fields):
	Replace TYPE_MODE by TYPE_MODE_RAW.

2015-12-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68835
	* tree.c (get_int_cst_ext_nunits): Return
	cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1
	for all unsigned wi::neg_p (cst) constants.
	(build_new_int_cst): If cst.get_precision is not a multiple
	of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision
	% HOST_BITS_PER_WIDE_INT.

2015-12-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68951
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
	Ignore strided non-group accesses.

2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.c (arc_loop_hazard): Don't convert the jump label
	rtx to an rtx_insn until we confirm it's not a return rtx.

2015-12-17  Richard Biener  <rguenther@suse.de>

	* gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls
	field.
	* tree-ssa.c (delete_tree_ssa): Do not zero it.

2015-12-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/67973
	* configure.ac (gcc_cv_as_stabs_directive): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/darwin.h (DBX_DEBUGGING_INFO): Wrap in
	HAVE_AS_STABS_DIRECTIVE.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include
	DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE.

	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document stabs.

2015-12-16  Martin Sebor  <msebor@redhat.com>

	PR c/68868
	* ginclude/stdatomic.h (atomic_init): Use atomic_store instead
	of plain assignment.

2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68805
	* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE
	instead of VEC_SELECT for TImode.

	* config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to
	VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead
	of using VEC_SELECT.
	(VSX_LE_128): Likewise.
	(define_peephole2): Add peephole to eliminate double xxpermdi when
	copying TImode.

2015-12-16  John David Anglin  <danglin@gcc.gnu.org>

	PR target/68779
	* config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
	(atomic_loaddi_1): Likewise.
	(atomic_storedi): Likewise.
	(atomic_storedi_1): Likewise.
	(atomic_loaddf): Likewise.
	(atomic_loaddf_1): Likewise.
	(atomic_storedf): Likewise.
	(atomic_storedf_1): Likewise.
	Move all atomic patterns to end of file.

2015-12-16  Abderrazek Zaafrani  <a.zaafrani@samsung.com>

	* graphite-isl-ast-to-gimple.c: Include isl/schedule_node.h.
	(set_separate_option): New.
	(translate_isl_ast_to_gimple::set_options_for_schedule_tree): New.
	(translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->schedule.
	* graphite-optimize-isl.c (optimize_isl): Set scop->schedule, do not
	free the computed schedule tree.
	* graphite-poly.c (new_scop): Initialize scop->schedule.
	* graphite.h: Include isl/schedule.h.
	(struct scop): Add field schedule.

2015-12-16  Nathan Sidwell  <nathan@acm.org>

	* ipa-visibility.c (can_replace_by_local_alias): Make static,
	check ASM_OUTPUT_DEF.
	(can_replace_by_local_alias_in_vtable): Make static.
	(function_and_variable_visibility): Reformat overlong comment.

2015-12-16  Jeff Law  <law@redhat.com>

	* ree.c (add_removable_extension): Use reg_overlap_mentioned_p
	rather than testing hard register #s.

2015-12-16  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
	(REGISTER_NAMES): Adjust.
	* config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line.
	(nvptx_static_hain): Delete.
	(write_arg_mode): Don't emit initializer if argno < 0.
	(write_arg_type): Fix whitespace.
	(init_frame): Initialize reg to zero if frame is zero-sized.
	(nvptx_declare_function_name):  Use write_arg_type to emit chain
	decl.
	(nvptx_output_call_insn): Adjust static chain emission.
	(nvptx_goacc_reduction): Make static.
	(TARGET_STATIC_CHAIN): Don't override.

2015-12-16  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-dependences.c (scop_get_dependences): Use local pointers.
	* graphite-isl-ast-to-gimple.c
	(translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->dependence.
	* graphite-optimize-isl.c (optimize_isl): Same.
	* graphite-poly.c (new_scop): Remove initialization of removed
	members.
	(free_scop): Same.
	* graphite.h (struct scop): Remove individial dependence pointers and
	add a scop::dependence to contain all the dependence.

2015-12-16  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-sese-to-poly.c (build_poly_sr): Use refs.

2015-12-16  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove checks for functions that exist in isl 0.13
	or later.
	* graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12.
	* graphite-optimize-isl.c: Same.
	* graphite-poly.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.h: Add comment for isl 0.14.
	* toplev.c (print_version): Print isl version.

2015-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not
	speculate to impossible targets.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.

2015-12-16  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c (scop_get_reads): Add more dumps.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	* graphite-poly.c (new_poly_dr): Same.
	* graphite-scop-detection.c (build_cross_bb_scalars_def): Same.
	(gather_bbs::before_dom_children): Same.

2015-12-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p):
	New function.
	(aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above
	to handle extend+shift rtxes.

2015-12-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68696
	* config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt):
	New pattern.
	(aarch64_simd_bsl<mode>_internal): Update comment to reflect
	the above.

2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68870
	* tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p
	parameter, if set only perform trivial constant folding.
	Queue other blocks with conditions for later processing.
	(cleanup_control_flow_bb): Add first_p parameter and pass it through.
	(cleanup_tree_cfg_1): Pass true for the first iteration
	cleanup_control_expr_graph.

2015-12-16  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
	* config/nvptx/nvptx.h (struct machine_function):
	Reimplement. Adjust all users.
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack
	and frame array generation earlier.
	(nvptx_call_args): Reimplement.
	(nvptx_expand_call): Adjust.
	(nvptx_hard_reno_mode_ok): Delete.
	(nvptx_reorg): Revert scan of hard regs.

2015-12-16  Tom de Vries  <tom@codesourcery.com>

	* opts.c (default_options_optimization): Set fipa-pta on by
	default for fopenacc.
	* passes.def: Move kernels pass group to pass_ipa_oacc.
	* tree-pass.h (make_pass_oacc_kernels2): Remove.
	(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare.
	* tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2):
	Remove.
	(pass_ipa_oacc, pass_ipa_oacc_kernels): New pass.
	(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function.
	* tree-ssa-structalias.c (pass_ipa_pta::clone): New function.

2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68861
	* tree-vect-slp.c (vect_build_slp_tree): Properly handle
	duplicate stmts when applying swapping to stmts.

2015-12-16  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386-c.c (ix86_target_macros_internal): Remove
	duplicate check (__CLZERO__).

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm_neon.h (vqrdmlahq_lane_s16): New.
	(vqrdmlahq_lane_s32): New.
	(vqrdmlah_lane_s16): New.
	(vqrdmlah_lane_s32): New.
	(vqrdmlshq_lane_s16): New.
	(vqrdmlshq_lane_s32): New.
	(vqrdmlsh_lane_s16): New.
	(vqrdmlsh_lane_s32): New.
	* config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and
	"vqrdmlsh_lane".

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
	(vqrdmlahq_s16, vqrdmlahq_s32): New.
	(vqrdmlsh_s16, vqrdmlsh_s32): New.
	(vqrdmlahq_s16, vqrdmlshq_s32): New.
	* config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh".

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/sourcebuild.texi (ARM-specific attributes): Add
	"arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw".

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-c.c (arm_cpu_builtins): Define
	__ARM_FEATURE_QRDMX.  Clean up some trailing whitespace.

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/iterators.md (VQRDMLH_AS): New.
	(neon_rdma_as): New.
	* config/arm/neon.md
	(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h<mode>): New.
	(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h_lane<mode>): New.
	* config/arm/unspecs.md (UNSPEC_VQRDMLAH): New.
	(UNSPEC_VQRDMLSH): New.

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/t-aprofile: Make "armv8.1-a" and "armv8.1-a+crc"
	matches for "armv8-a".

2015-12-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-arches.def: Add "armv8.1-a" and "armv8.1-a+crc".
	* config/arm/arm-protos.h (FL2_ARCH8_1): New.
	(FL2_FOR_ARCH8_1A): New.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (arm_arch8_1): New.
	(arm_option_override): Set arm_arch8_1.
	* config/arm/arm.h (TARGET_NEON_RDMA): New.
	(arm_arch8_1): Declare.
	* doc/invoke.texi (ARM Options, -march): Add "armv8.1-a" and
	"armv8.1-a+crc".
	(ARM Options, -mfpu): Fix a typo.

2015-12-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68648
	* config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify
	the complement of operands[3] during splitting.

2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68892
	* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly compute
	cost for permuted loads.

2015-12-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/65980
	* jump.c (rtx_renumbered_equal_p) <case LABEL_REF>: Use
	next_nonnote_nondebug_insn instead of next_real_insn and
	skip over CODE_LABELs too.

2015-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_node::fixup_same_cpp_alias_visibility):
	Do not copy DECL_VIRTUAL_P.

2015-12-15  Martin Sebor  <msebor@redhat.com>

	PR c++/42121
	* tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array
	members.
	* tree.c (type_contains_placeholder_1): Avoid assuming type has
	a non-null domain or an upper bound to handle flexible array
	members.
	* varasm.c (output_constructor_regular_field):  Same.
	(output_constructor): Set min_index to integer_zero_node rather
	than null when a type has no domain to avoid crashing later.

2015-12-15  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (write_one_arg): Rename to ...
	(write_arg_mode): ... here.  Update callers.
	(write_arg): Rename to ...
	(write__arg_type): ... here.  Update callers.
	(write_return_mode): New fn, broken out of ...
	(write_return): ... here.  Rename to ...
	(write_return_type): ... here.  Call it. Update callers.
	(write_fn_proto_from_insn): Use write_arg_mode and
	write_return_mode.
	(init_frame): New fn.
	(nvptx_declare_function_name): Call it for frame and varargs. Only
	emit outgoing static chain, if it's live.
	(nvptx_output_return): Use reg_names for return reg name.
	(nvptx_output_call_insn): Likewise.
	(nvptx_reorg): Mark unused hard regs too.

2015-12-15  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (nvptx_register_operand): Don't accept and
	then reject subregs.
	(nvptx_reg_or_mem_operand): Likewise.
	(nvptx_nonmemory_operand): Likewise.
	(call_insn_operand): A regular predicate, check	SYMBOL_REF_FUNCTION_P.
	(call_insn, call_value_insn): Address is not SImode.
	* config/nvptx/nvptx.h (FIXED_REGISTERS): Make return reg fixed.
	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove
	RETURN_REG class.
	(REGNO_REG_CLASS): Alwaus ALL_REGS.
	(PROMOTE_MODE): QI and HI are the only smaller than SI int modes.
	(HARD_FRAME_POINTER_REGNUM): Delete.
	(REGISTER_NAMES): Move earlier.
	(struct nvptx_args): Remove 'off'.
	(INIT_CUMULATIVE_ARGS): Don't initialize 'off'.
	(ELIMINABLE_REGS): Remove HARD_FRAME_POINTER_REGNUM.
	* config/nvptx/nvptx.c (arg_promotion): Delete.
	(nvptx_expand_call): Remove check for funtype being an fntype.

2015-12-15  Jason Merrill  <jason@redhat.com>

	* hash-map.h, hash-table.h: Make copy constructors explicit.

2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>

	* cgraphunit.c (output_in_order): Do not assemble "omp declare target
	link" variables in ACCEL_COMPILER.
	* gimplify.c (gimplify_adjust_omp_clauses): Do not remove mapping of
	"omp declare target link" variables.
	* omp-low.c (scan_sharing_clauses): Do not remove mapping of "omp
	declare target link" variables.
	(add_decls_addresses_to_decl_constructor): For "omp declare target
	link" variables output address of the artificial pointer instead
	of address of the variable.  Set most significant bit of the size
	to mark them.
	(pass_data_omp_target_link): New pass_data.
	(pass_omp_target_link): New class.
	(find_link_var_op): New static function.
	(make_pass_omp_target_link): New function.
	* passes.def: Add pass_omp_target_link.
	* tree-pass.h (make_pass_omp_target_link): Declare.
	* varpool.c (symbol_table::output_variables): Do not assemble "omp
	declare target link" variables in ACCEL_COMPILER.

2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>

	PR middle-end/21273
	* gensupport.c (collect_insn_data): Look for number of alternatives
	in MATCH_SCRATCH.

2015-12-15  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat.
	(CANNOT_CHANGE_MODE_CLASS): Always return true.
	(HARD_REGNO_MODE_OK): Reformat.
	* config/nvptx/nvptx.md (define_expand mov<mode>): No
	RETURN_REGNUM handling here.
	* config/nvptx/nvptx.c (nvptx_function_value): Set ret_reg_mode
	here.
	(write_one_arg): No QI or HI mode args.
	(write_fn_proto_from_insn): No argument promotion here.
	(nvptx_output_return_insn): No return promotion here.
	(nvptx_output_mov_insn): No RETURN_REGNUM handling needed.
	(nvptx_output_call_insn): No return promotion here.

2015-12-15  Martin Jambor  <mjambor@suse.cz>

	PR ipa/68851
	* cgraph.c (collect_callers_of_node_1): Do not collect thunks.
	* cgraph.h (cgraph_node): Change comment of collect_callers.

2015-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/66688
	* tree-cfgcleanup.c (cleanup_control_flow_bb): Handle
	noreturn call followed only by debug stmts by removing
	the debug stmts and handling it the same as if the noreturn
	call is the last stmt.

2015-12-14  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.c (mips_promote_function_mode): New function.
	(TARGET_PROMOTE_FUNCTION_MODE): Define as above function.
	(TARGET_PROMOTE_PROTOTYPES): Remove.

2015-12-14  Jason Merrill  <jason@redhat.com>

	PR c++/68309
	* hash-table.h: Add copy constructor.
	* hash-map.h: Add copy constructor.

2015-12-14  Tom de Vries  <tom@codesourcery.com>

	PR other/68882
	* gimple-pretty-print.c (dump_ssaname_info_to_file): New function.
	* gimple-pretty-print.h (dump_ssaname_info_to_file): Declare.
	* tree-cfg.c (dump_default_def): New function.
	(dump_function_to_file): Dump default defs for arguments, static chain,
	and decl-by-reference.

2015-12-14  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (PARM_BOUNDARY): Set to 32.
	* config/nvptx/nvptx.c (PASS_IN_REG_P, RETURN_IN_REG_P): Delete.
	(pass_in_memory, promote_arg, promote_return): New.
	(nvptx_function_arg_boundary): Delete.
	(nvptx_function_value): Use promote_return.
	(nvptx_pass_by_reference): Use pass_in_memory.
	(nvptx_return_in_memory): Use pass_in_memory.
	(nvptx_promote_function_mode): Use promote_arg.
	(write_arg): Adjust arg splitting logic.
	(write_return): Check and clear ret_reg_mode, if needed.
	(write_fn_proto, nvptx_declare_function_name): Adust write_return
	calls.
	(TARGET_RUNCTION_ARG_BOUNDARY,
	TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Don't override.

2015-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/68833
	* common.opt (Wmissing-noreturn): Add Warning option.
	* opts-common.c (control_warning_option): If opt is
	alias_target with alias_arg, set arg to it.

2015-12-14  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/68865
	PR target/68879
	* config/rs6000/rs6000.md (cstore_si_as_di): Force all operands
	into registers.

2015-12-14  Richard Biener  <rguenther@suse.de>

	Revert accidentially applied
	PR tree-optimization/68707
	PR tree-optimization/67323
	* tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances
	if they can be vectorized using load/store-lane instructions.

2015-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68852
	* tree-vectorizer.h (struct _slp_tree): Add def_type member.
	(SLP_TREE_DEF_TYPE): New accessor.
	* tree-vect-stmts.c (vect_is_simple_use): Remove BB vectorization
	hack.
	* tree-vect-slp.c (vect_create_new_slp_node): Initialize
	SLP_TREE_DEF_TYPE.
	(vect_build_slp_tree): When a node is to be built up from scalars
	do not push a NULL as child but instead set its def_type to
	vect_external_def.
	(vect_analyze_slp_cost_1): Check for child def-type instead
	of NULL.
	(vect_detect_hybrid_slp_stmts): Likewise.
	(vect_bb_slp_scalar_cost): Likewise.
	(vect_get_slp_defs): Likewise.
	(vect_slp_analyze_node_operations): Likewise.  Before
	processing node push the children def-types to the underlying
	stmts vinfo and restore it afterwards.
	(vect_schedule_slp_instance): Likewise.
	(vect_slp_analyze_bb_1): Do not mark stmts not in SLP instances
	as not vectorizable.

2015-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68775
	* tree-vect-slp.c (vect_build_slp_tree): Make sure to apply
	a operand swapping even if replacing the op with scalars.

2015-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (change_zero_ext): Do not create a shift of zero length.

2015-12-14  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P):
	Provide target hook.
	(arc_no_speculation_in_delay_slots_p): New function.

2015-12-14  Claudiu Zissulescu  <claziss@synopsys.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.c (frame_move): Set frame related flag.
	(arc_save_restore): Emit epilogue related DWARF2 information.
	(arc_expand_epilogue): Likewise.
	* config/arc/arc.opt (mno-epilogue-cfi): Remove.
	(mepilogue-cfi): Likewise.
	* doc/invoke.texi: Remove -m[no]-epilogue-cfi documentation.

2015-12-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/66616
	* ipa-cp.c (propagate_constants_accross_call): Move thuk check...
	(call_passes_through_thunk_p): ...here.
	(find_more_scalar_values_for_callers_subset): Perform thunk checks
	like propagate_constants_accross_call does.

2015-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/68730
	* cfgrtl.c (cfg_layout_finalize): Free dominators.

2015-12-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/67355
	* var-tracking.c (reverse_op): Don't add dummy zero to reverse
	ops that simplify back to the original value.
	* alias.c (refs_newer_value_p): Cut off recursion for
	expressions containing the original value.

2015-12-13  Kazu Kirata  <kazu@gcc.gnu.org>

	* config/m68k/m68k.md (load feeding clear byte): New peephole2.

2015-12-13  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds
	parameters of GOACC_paralllel.

2015-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
	flag to lto_get_section_data.
	* varpool.c (varpool_node::get_constructor): Likewise.
	* lto-section-in.c (lto_get_section_data): Add new flag decompress.
	(lto_free_section_data): Likewise.
	(lto_get_raw_section_data): New function.
	(lto_free_raw_section_data): New function.
	(copy_function_or_variable): Copy sections w/o decompressing.
	(lto_output_decl_state_refs): Picke compressed bit.
	* lto-streamer.h (lto_in_decl_state): New flag compressed.
	(lto_out_decl_state): Likewise.
	(lto_get_section_data, lto_free_section_data): Update prototypes
	(lto_get_raw_section_data, lto_free_raw_section_data): Declare.
	(lto_write_raw_data): Declare.
	(lto_begin_section): Remove FIXME.
	(lto_write_raw_data): New function.
	(lto_write_stream): Remove FIXME.
	(lto_new_out_decl_state): Set compressed flag.

2015-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (free_lang_data_in_type, find_decls_types_r): Also free
	unnecesary type decls.
	* tree.h (is_redundant_typedef): Declare.
	* dwarf2out.c (is_redundant_typedef): Export; booleanize

2015-12-12  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
	* config/sparc/sparc.c (sparc_emit_set_const64): Remove code
	conditionalized on HOST_BITS_PER_WIDE_INT == 32.
	(sparc_cannot_force_const_mem) <CONST_WIDE_INT>: New case.
	<CONST_DOUBLE>: Remove VOIDmode test.
	(epilogue_renumber) <CONST_WIDE_INT>: New case.
	(sparc_print_operand): Remove support for CONST_DOUBLE with VOIDmode.
	(sparc_assemble_integer): Likewise.
	(set_extends): Likewise.
	(sparc_rtx_costs) <CONST_INT>: Use SMALL_INT.
	<CONST_WIDE_INT>: New case.
	<CONST_DOUBLE>: Remove support for VOIDmode.
	<MULT>: Remove support for CONST_DOUBLE with VOIDmode.
	* config/sparc/predicates.md (const_zero_operand): Add const_wide_int.
	(const_all_ones_operand): Likewise.
	(uns_small_int_operand): Remove const_double and code conditionalized
	on HOST_BITS_PER_WIDE_INT == 32.
	(arith_double_operand): Likewise.
	(arith_double_add_operand): Likewise.
	(input_operand): Remove support for CONST_DOUBLE with DImode.
	* config/sparc/sparc.md (DImode CONST_INT splitter): Remove code
	conditionalized on HOST_BITS_PER_WIDE_INT == 32.
	(DFmode CONST_DOUBLE splitter): Likewise.
	(*adddi3_insn_sp32): Likewise.
	(*subdi3_insn_sp32): Likewise.
	(DImode logical splitter): Likewise.
	(DImode CONST_DOUBLE splitter): Delete.

2015-12-12  Paolo Bonzini  <bonzini@gnu.org>

	PR sanitizer/68418
	* c-family/c-ubsan.c (ubsan_instrument_shift): Disable
	sanitization of left shifts for wrapping signed types as well.

2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/68215
	* 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.

2015-12-11  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (RETURN_ADDR_REGNO): Delete.
	(OUTGOING_ARG_POINTER_REGNUM): Delete.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
	(REGISTER_NAMES): Name static chain regs.
	* config/nvptx/nvptx.c (nvptx_function_arg): Add ARG_UNUSED, merge
	ifs.
	(nvptx_incoming_arg): Merge ifs.
	(nvptx_function_arg_boundary): Reimplement to avoid mixing units.
	(nvptx_function_value): Tail call nvptx_libcall_value.
	(nvptx_pass_by_reference): Add ARG_UNUSED.
	(nvptx_static_chain): Use conditional op.
	(nvptx_handle_kernel_attribute): Use VOID_TYPE_P.

2015-12-11  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR target/26427
	PR target/33120
	PR testsuite/35710
	* config/darwin.c (darwin_use_anchors_for_symbol_p): Fix indention and
	trailing whitespace.

2015-12-11  Jan Beulich  <jbeulich@suse.com>

	* cfgexpand.c (expand_one_var): Exit early for static and
	external variables when adjusting stack alignment related.

2015-12-11  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_rtx_costs)
	(s390_cannot_force_const_mem, legitimate_pic_operand_p)
	(s390_preferred_reload_class, s390_reload_symref_address)
	(legitimate_reload_constant_p, print_operand): Wide int support.
	* config/s390/predicates.md ("const0_operand", "constm1_operand")
	("consttable_operand"): Likewise.
	("larl_operand"): Add a comment.
	* config/s390/s390.h (TARGET_SUPPORTS_WIDE_INT): Enable wide int
	support.

2015-12-11  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (TARGET_SUPPORTS_WIDE_INT): Define.
	* config/nvptx/nvptx.c (nvptxx_assemble_integer): Return false for
	unrecognizable RTX.

2015-12-11  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Remove unpaired TERMINATE_PASS_LIST.

2015-12-11  Michael Matz  <matz@suse.de>

	* hash-map.h (hash_map::hash_map): Gather statistics only
	when GATHER_STATISTICS is true.
	* hash-set.h (hash_set::hash_set): Ditto.
	* hash-table.h (hash_table::hash_table): Ditto.
	(hash_table::create_ggc): Ditto.

2015-12-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/68064
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Add checking
	assert that align is nonzero.

2015-12-11  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_setmem): Use new expanders.
	* config/s390/s390.md ("*setmem_long")
	("*setmem_long_and", "*setmem_long_31z"): Fix warnings.
	("*setmem_long_and_31z"): New define_insn.
	("setmem_long_<P:mode>"): New expanders.
	* (<modesize>): New mode attribute

2015-12-11  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.md ("movstr", "*movstr"): Fix warning.
	("movstr<P:mode>"): New indirect expanders used by "movstr".

2015-12-11  Martin Liska  <mliska@suse.cz>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/67484
	* config/i386/i386.c (ix86_valid_target_attribute_tree):
	Use ggc_strdup to copy option_strings to opts->x_ix86_arch_string and
	opts->x_ix86_tune_string.

2015-12-11  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (lto_simple_header_with_strings): Remove
	main_size field already in lto_simple_header.

2015-12-11  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-stmts.c (vectorizable_mask_load_store): Check
	mask vectype.

2015-12-11  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/i386.c (ix86_get_mask_mode): Use scalar
	modes for 32 and 16 byte boolean vectors when possible.

2015-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67778
	PR rtl-optimization/68634
	* shrink-wrap.c (try_shrink_wrapping): Add a comment about why we want
	to put the prologue earlier.  When determining if an earlier block is
	suitable, make sure it dominates every block reachable from it.

2015-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68814
	* rtlanal.c (set_noop_p): Use BITS_BIG_ENDIAN instead of
	BYTES_BIG_ENDIAN.

2015-12-10  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_function_arg,
	nvptx_function_incoming_arg, nvptx_function_arg_advance,
	nvptx_strict_argument_naming, nvptx_function_arg_boundary,
	nvptx_libcall_value, nvptx_function_value,
	nvptx_function_value_regno_p, nvptx_pass_by_reference,
	nvptx_return_in_memory, nvptx_promote_function_mode,
	nvptx_static_chain): Move earlier.
	(write_one_arg): Break out as helper fn for ...
	(write_arg): ... this new function.  Adjust all callers.

2015-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (wrap_refs): Only wrap public decls.

2015-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p.
	(good_cloning_opportunity_p): Likewise.
	(gather_context_independent_values): Do not return true when
	polymorphic call context is known or when we have known aggregate
	value of unused parameter.
	(estimate_local_effects): Try to create clone for all context
	when either some params are substituted or devirtualization is possible
	or some params can be removed; use local flag instead of
	node->will_be_removed_from_program_if_no_direct_calls_p.
	(identify_dead_nodes): Likewise.

2015-12-10  David Malcolm  <dmalcolm@redhat.com>

	* doc/invoke.texi (-Wall): Add -Wmisleading-indentation to the
	list.
	(-Wmisleading-indentation): Update documentation to reflect
	being enabled by -Wall in C/C++.

2015-12-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68691
	* lra-spills.c (lra_final_code_change): Check pseudo occurrence
	number in non-debug insns and remove debug insns if necessary.

2015-12-10  Martin Sebor  <msebor@redhat.com>

	* invoke.texi (Warning Options): Update -Wall options.  Clarify
	when some -Wextra options are enabled.  Add -Wplacement-new example.

2015-12-10  Uros Bizjak  <ubizjak@gmail.com>

	* graphite-scop-detection.c (gather_bbs::before_dom_children):
	Change return type to an edge.  Always return NULL.

2015-12-10  Jeff Law  <law@redhat.com>

	PR tree-optimization/68619
	* tree-ssa-dom.c (dom_opt_dom_walker::before_dom_children): Propgate
	return value from optimize_stmt.
	(dom_opt_dom_walker): Add new argument to dom_walker constructor.
	(pass_dominator:execute): If a block has an unreachable edge,
	remove all jump threads through any successor of the affected block.
	(record_equivalences_from_phis): Ignore alternative if the edge
	does not have EDGE_EXECUTABLE set.
	(single_incoming_edge_ignoring_loop_edges): Similarly.
	(optimize_stmt): If a gimple_code has a compile-time constant
	condition, return the edge taken for that constant value.  Also
	change the condition to true/false as necessary.
	* domwalk.h (dom_walker::dom_walker): Add new argument
	skip_unreachable_blocks.  Don't provide empty constructor body.
	(dom_walker::before_dom_children): Change return type.
	(dom_walker::bb_reachable): Declare new private method.
	(dom_walker::propagate_unreachable_to_edges): Likewise.
	(dom_walker::m_unreachable_dom): Declare new private data member.
	(dom_walker::m_skip_unreachable_blocks): Likewise.
	* domwalk.c: Include dumpfile.h.
	(dom_walker::dom_walker): New constructor.  Initialize private data
	members.  If needed, set EDGE_EXECUTABLE for all edges in the CFG,
	extracted from tree-ssa-sccvn.c.
	(dom_walker::bb_reachable): New method extracted from tree-ssa-sccvn.c
	(dom_walker::propagate_unreachable_to_edges): Likewise.
	(dom_walker::walk): Only call before_dom_children on reachable
	blocks.  If before_dom_children returns an edge, then clear
	EDGE_EXECUTABLE for all other outgoing edges from the same block.
	For unreachable blocks, call propagate_unreachable_to_edges.
	Similarly, only call after_dom_children on reachable blocks.  For
	unreachable blocks, conditionally clear m_unreachable_dom.
	* tree-ssa-sccvn.c (sccvn_dom_walker::unreachable_dom): Remove
	private data member.
	(sccvn_dom_walker::after_dom_children): Use methods from dom_walker
	class.
	(run_scc_vn): Likewise.
	(sccvn_dom_walker::before_dom_children): Likewise.  Return the taken
	outgoing edge if a COND, SWITCH, or GOTO are optimized.
	* compare-elim.c (find_comparison_dom_walker::before_dom_children):
	Change return type to an edge.  Always return NULL.
	* fwprop.c (single_def_use_dom_walker::before_dom_children): Likewise.
	* gimple-ssa-strength-reduction.c
	(find_candidates_dom_walker::before_dom_children): Likewise.
	* ipa-prop.c (analysis_dom_walker::before_dom_children): Likewise.
	(ipcp_modif_dom_walker::before_dom_children): Likewise.
	* tree-into-ssa.c (rewrite_dom_walker::before_dom_children): Likewise.
	(rewrite_update_dom_walker::before_dom_children): Likewise.
	(mark_def_dom_children::before_dom_children): Likewise.
	* tree-ssa-dse.c (dse_dom_walker::before_dom_children): Likewise.
	* tree-ssa-loop-im.c
	(invariantness_dom_walker::before_dom_children): Likewise.
	(move_computations_dom_walker::before_dom_walker): Likewise.
	* tree-ssa-phiopt.c
	(nontrapping_dom_walker::before_dom_children): Likewise.
	* tree-ssa-pre.c
	(eliminate_dom_walker::before_dom_children): Likewise.
	* tree-ssa-propagate.c
	(substitute_and_fold_dom_walker::before_dom_children): Likewise.
	* tree-ssa-strlen.c
	(strlen_dom_walker::before_dom_children): Likewise.
	* tree-ssa-uncprop.c
	(uncprop_dom_walker::before_dom_children): Likewise.

2015-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/68376
	PR rtl-optimization/68670
	* ifcvt.c (noce_try_abs): For one_cmpl allow < 0, >= 0
	or > -1 conditions regardless of negate, and disallow
	all other conditions.

2015-12-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-chkp.c (chkp_call_returns_bounds_p): Return true
	for VA_ARG call.
	(chkp_fixup_inlined_call): New.
	* tree-chkp.h (chkp_fixup_inlined_call): New.
	* tree-stdarg.c: Include tree-chkp.h.
	(expand_ifn_va_arg_1): Fixup bndret calls for removed
	VA_ARG calls.

2015-12-10  Martin Jambor  <mjambor@suse.cz>

	* tree-inline.c (duplicate_remap_omp_clause_seq): New function.
	(replace_locals_op): Duplicate gimple sequences in OMP clauses.

2015-12-10  David Malcolm  <dmalcolm@redhat.com>

	* graphite-optimize-isl.c (scop_get_domains): Fix indentation.

2015-12-10  David Malcolm  <dmalcolm@redhat.com>

	* ifcvt.c (noce_try_inverse_constants): Fix indentation.

2015-12-10  David Malcolm  <dmalcolm@redhat.com>

	* regrename.c (scan_rtx_address): Fix indentation.

2015-12-10  David Malcolm  <dmalcolm@redhat.com>

	* function.c (locate_and_pad_parm): Fix indentation.

2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add
	is_ipa_escape_point flag.
	(new_var_info): Initialize to false.
	(find_func_aliases): Generate escape constraints for stores
	properly in IPA mode.
	(ipa_pta_execute): Compute is_ipa_escape_point for globals.

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/atomic.md: Add new file.

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_expand_atomic_op): Prototype.
	(arc_split_compare_and_swap): Likewise.
	(arc_expand_compare_and_swap): Likewise.
	* config/arc/arc.c (arc_init): Check usage atomic option.
	(arc_pre_atomic_barrier): New function.
	(arc_post_atomic_barrier): Likewise.
	(emit_unlikely_jump): Likewise.
	(arc_expand_compare_and_swap_qh): Likewise.
	(arc_expand_compare_and_swap): Likewise.
	(arc_split_compare_and_swap): Likewise.
	(arc_expand_atomic_op): Likewise.
	* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): New C macro.
	(ASM_SPEC): Enable mlock option when matomic is used.
	* config/arc/arc.md (UNSPEC_ARC_MEMBAR): Define.
	(VUNSPEC_ARC_CAS): Likewise.
	(VUNSPEC_ARC_LL): Likewise.
	(VUNSPEC_ARC_SC): Likewise.
	(VUNSPEC_ARC_EX): Likewise.
	* config/arc/arc.opt (matomic): New option.
	* config/arc/constraints.md (ATO): New constraint.
	* config/arc/predicates.md (mem_noofs_operand): New predicate.
	* doc/invoke.texi: Document -matomic.
	* config/arc/atomic.md: New file.

2015-12-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68817
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Detect
	gaps early.

2015-12-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-stmts.c (vectorizable_assignment): Support
	useless boolean conversion.

2015-12-10  Alan Lawrence  <alan.lawrence@arm.com>

	* doc/install.texi: Add note against GNAT 4.8 on ARM targets.

2015-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68785
	* gimple-fold.c (fold_ctor_reference): Pass return value from
	native_encode_expr to native_interpret_expr.
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise.

2015-12-10  Richard Biener  <rguenther@suse.de>

	PR ipa/68331
	* tree-ssa-structalias.c (set_uids_in_ptset): Add fndecl
	parameter and make vars_contains_nonlocal properly have
	function-scope semantics in IPA mode.
	(find_what_var_points_to): Add fndecl parameter.
	(find_what_p_points_to): Likewise.
	(pt_solution_includes_global): Remove IPA PTA early out.
	(compute_points_to_sets): Adjust.
	(ipa_pta_execute): Likewise.  Clear final_solutions after
	each function.

2015-12-10  Tom de Vries  <tom@codesourcery.com>

	PR ada/65102
	* doc/include/fdl.texi: Add nodefaultgnufreedocumentationlicensenode
	ifdef to allow disabling default @node GNU Free Documentation License.

2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (create_function_info_for): Add missing
	constraint from nonlocal for DECL_RESULT.

2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-if-conv.c: Include params.h.
	(ifcvt_memrefs_wont_trap): Use PARAM_ALLOW_STORE_DATA_RACES
	instead of flag_tree_loop_if_convert_stores to guard cases
	we'd introduce store-data-races.

2015-12-10  Richard Biener  <rguenther@suse.de>

	PR ipa/68721
	* ipa-split.c (split_function): Record return value properly
	when the split part doesn't set it.

2015-12-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68806
	* tree-vect-loop.c (vect_analyze_loop_2): Properly detect
	reduction chains and ignore SLP reductions.

2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-if-conv.c (if_convertible_loop_p_1): Do not compute
	dependences.
	(if_convertible_loop_p): Adjust.

2015-12-10  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Remove
	invalid assert.

2015-12-10  Martin Liska  <mliska@suse.cz>

	* tree-vect-data-refs.c: Free an overwritten dataref.

2015-12-09  John David Anglin  <danglin@gcc.gnu.org>

	PR target/68729
	* config/pa/pa.c (pa_emit_move_sequence): Don't check that mode is
	consistent with modes of the input and output operands when doing
	reloads to and from floating point registers.  Do reload for all
	address forms.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	PR middle-end/25140
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use compare_base_decls
	(nonoverlapping_component_refs_of_decl_p): Update sanity check.
	(decl_refs_may_alias_p): Use compare_base_decls.
	* alias.c: Include cgraph.h
	(get_alias_set): Add cut-off for recursion.
	(rtx_equal_for_memref_p): Use rtx_equal_for_memref_p.
	(compare_base_decls): New function.
	(base_alias_check): Likewise.
	(memrefs_conflict_p): Likewise.
	(nonoverlapping_memrefs_p): Likewise.
	* alias.h (compare_base_decls): Declare.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* ipa-visibility.c (function_and_variable_visibility): Fix vtable
	rewritting guard.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	PR middle-end/25140
	* ipa-reference.c (ipa_reference_get_not_read_global,
	ipa_reference_get_not_read_global): Fix WRT aliases.
	(is_improper): Break out from ...
	(is_proper_for_analysis): ... here; fix WRT aliases.
	(analyze_function, generate_summary,
	ipa_reference_write_optimization_summary,
	ipa_reference_read_optimization_summary): Use ipa_reference_var_uid.
	* ipa-refrence.h (ipa_reference_var_uid): New inline.
	* tree-ssa-alias.c: Revert my accidental previous commit.
	(ref_maybe_used_by_call_p_1,
	call_may_clobber_ref_p_1): Use ipa_reference_var_uid.

2015-12-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h: Remove the redefinition of WCHAR_TYPE.

2015-12-09  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-optimize-isl.c: Include isl/ast_build.h
	(optimize_isl): Set several isl_options_set_* options.

2015-12-09  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-sese-to-poly.c (pdr_add_memory_accesses): Iterate in
	the same order as adding data reference access functions.

2015-12-09  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-optimize-isl.c (optimize_isl): Improve dump message.

2015-12-09  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/66949
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Don't call
	single_non_singleton_phi_for_edges to get the PHI from
	factor_out_conditional_conversion.  Use NULL_TREE instead of NULL.
	(factor_out_conditional_conversion): Adjust declaration.  Make it
	return the newly-created PHI.

2015-12-09  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_cannot_change_mode_class): Bring back.
	* config/aarch64/aarch64.c
	(aarch64_cannot_change_mode_class): Likewise.
	* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Likewise.
	* config/aarch64/aarch64.md (aarch64_movdi_<mode>low): Use
	zero_extract rather than truncate.
	(aarch64_movdi_<mode>high): Likewise.

2015-12-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68786
	* tree-if-conv.c: Include builtins.h.
	(predicate_mem_writes): Put result of get_object_alignment (ref)
	into second argument's value.
	* tree-vect-stmts.c (vectorizable_mask_load_store): Put minimum
	pointer alignment into second argument's value.
	* tree-data-ref.c (get_references_in_stmt): Use value of second
	argument for build_aligned_type, and only the type to build
	a zero second argument for MEM_REF.
	* internal-fn.c (expand_mask_load_optab_fn,
	expand_mask_store_optab_fn): Likewise.

2015-12-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68583
	* tree-if-conv.c (if_convertible_phi_p): Drop
	flag_tree_loop_if_convert_stores check in favor of the
	existing any_mask_load_store check.
	(insert_gimplified_predicates): Likewise.
	(combine_blocks): Likewise.
	(tree_if_conversion): Likewise.
	(ifcvt_memrefs_wont_trap): Properly check
	flag_tree_loop_if_convert_stores in all places that can end
	up introducing store-data-races.
	(if_convertible_gimple_assign_stmt_p): Remove restriction
	on flag_tree_loop_if_convert_stores for stores we can if-convert
	without introducing store-data-races.  Force versioning for
	all if-converted stores.

2015-12-09  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68716
	* tree-ssa-structalias.c (find_func_clobbers): Fix handling of
	BUILT_IN_GOMP_PARALLEL and BUILT_IN_GOACC_PARALLEL.

2015-12-09  Martin Liska  <mliska@suse.cz>

	* hash-traits.h (struct typed_delete_remove): New function.
	(typed_delete_remove ::remove): Likewise.
	* tree-ssa-loop-ivopts.c (struct iv_common_cand): Replace
	auto_vec with vec.
	(record_common_cand): Replace XNEW with operator new.

2015-12-09  Martin Liska  <mliska@suse.cz>

	* tree-if-conv.c (ifcvt_local_dce): Replace vec with auto_vec.

2015-12-09  Martin Liska  <mliska@suse.cz>

	PR ipa/68790
	* ipa-icf.c (sem_function::param_used_p): Return true
	if ipa_node_params_sum equals to NULL.

2015-12-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68583
	* tree-if-conv.c (ifc_dr): Make flags bool, add w_unconditionally
	flag and rename predicates to w_predicate, rw_predicate and
	base_w_predicate.
	(DR_WRITTEN_AT_LEAST_ONCE): Rename to ...
	(DR_BASE_W_UNCONDITIONALLY): ... this.
	(DR_W_UNCONDITIONALLY): Add.
	(hash_memrefs_baserefs_and_store_DRs_read): Adjust.  Compute
	unconditionally written separately from read or written.
	(ifcvt_memrefs_wont_trap): Properly treat reads.
	(ifcvt_could_trap_p): Inline ...
	(if_convertible_gimple_assign_stmt_p): ... here.  Refactor
	to avoid code duplication.
	(if_convertible_loop_p_1): Adjust and properly initialize
	predicates.

2015-12-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): Set new vinfo only
	if it was not yet set.
	* tree-vectorizer.h (set_vinfo_for_stmt): Assert we don't
	overwrite an existing entry.

2015-12-09  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-family/c-omp.c (c_finish_oacc_wait): Remove add_stmt() call.
	* c/c-parser.c (c_parser_oacc_wait): Add add_stmt() call.
	* cp/parser.c (cp_parser_oacc_wait): Add finish_expr_stmt() call.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* symtab.c (symtab_node::equal_address_to): New parameter
	MEMORY_ACCESSED.
	* cgraph.h (symtab_node::equal_address_to): Update prototype.

2015-12-08  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.opt (-mjsr): Add.
	* config/rx/predicates.md (rx_call_operand): Avoid overflowing
	calls when -mjsr.
	* config/rx/rx.c (rx_function_ok_for_sibcall): Likewise for
	overflowing jumps.
	* doc/invoke.texi (-mjsr): Document it.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* lto-streamer.h (lto_symtab_merge_decls, lto_symtab_merge_symbols,
	lto_symtab_prevailing_decl): MOve to lto-symtab.h.
	* lto-streamer-out.c (DFS::DFS_write_tree_body): Check that
	DECL_ABSTRACT_ORIGIN is not error_mark_node.

2015-12-08  David Malcolm  <dmalcolm@redhat.com>

	* tree-nested.c (convert_tramp_reference_stmt): Fix indentation.

2015-12-08  David Malcolm  <dmalcolm@redhat.com>

	* tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Fix
	indentation.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* lto-cgraph.c (compute_ltrans_boundary): Add transparent alias targets
	into the boundary.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* varpool.c (varpool_node::get_availability): Recurse only on
	weakrefs with definition in the target.
	(symbol_table::remove_unreferenced_decls): Keep aliases in the boundary.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* ipa-visibility.c (can_replace_by_local_alias): Look through
	transparent aliases; refuse weakrefs.
	(update_visibility_by_resolution_info): Skip transparent aliases in the
	analysis part

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* symtab.c (symtab_node::verify_base): Fix thinko in a conditional.
	(symtab_node::noninterposable_alias): Do not accept transparent
	aliases.

2015-12-08  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (decl_chunk_size, decl_chunk_mode,
	decl_offset, init_part, object_size, object_finished): Replace
	with ...
	(struct init_frag): ... this new struct variable.
	(begin_decl_field, output_decl_chunk): Replace with ...
	(output_init_frag): ... this new function.
	(nvptx_assemble_value): Reimplement.
	(nvptx_assemble_integer, nvptx_output_skip): Adjust.
	(nvptx_assemble_decl_begin, nvptx_assemble_decl_end): Adjust.
	(nvptx_output_aligned_decl): Call nvptx_assemble_decl_end.

2015-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/68291
	PR middle-end/68292
	* cfgexpand.c (set_rtl): Always accept mode mismatch for SSA names
	with BLKmode promoted mode based on RESULT_DECLs.

2015-12-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68701
	* config/i386/i386.c (ix86_option_override_internal): Enable
	-maccumulate-outgoing-args when %ebp is fixed due to stack
	realignment requirements.

2015-12-08  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68640
	* omp-low.c (install_var_field): Clear the restrict qualifier on the var
	type.

2015-12-08  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (define_insn "<avx512>_vec_dup<mode>_1"): Fix
	assembler to make source always 128bit.

2015-12-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/48088
	PR c/68657
	* common.opt (Wframe-larger-than=): Add Warning.
	* opts.h (control_warning_option): Add ARG argument.
	* opts-common.c (cmdline_handle_error): New function.
	(read_cmdline_option): Use it.
	(control_warning_option): Likewise.  Add ARG argument.
	If non-NULL, decode it if needed and pass through
	to handle_generated_option.  Handle CLVC_ENUM like
	CLVC_BOOLEAN.
	* opts.c (common_handle_option): Adjust control_warning_option
	caller.
	(enable_warning_as_error): Likewise.

2015-12-08  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-options-extensions.def: Remove
	AARCH64_FL_RDMA from "fp" and "simd".  Remove "pan", "lor",
	"rdma".
	* config/aarch64/aarch64.h (AARCH64_FL_PAN): Remove.
	(AARCH64_FL_LOR): Remove.
	(AARCH64_FL_RDMA): Remove.
	(AARCH64_FL_V8_1): New.
	(AARCH64_FL_FOR_AARCH8_1): Replace AARCH64_FL_PAN, AARCH64_FL_LOR
	and AARCH64_FL_RDMA with AARCH64_FL_V8_1.
	(AARCH64_ISA_RDMA): Replace AARCH64_FL_RDMA with AARCH64_FL_V8_1.
	* doc/invoke.texi (AArch64 -march): Rewrite initial paragraph and
	section on -march=native.  Group descriptions of permitted
	architecture names together.  Expand description of
	-march=armv8.1-a.
	(AArch64 -mtune): Slightly rework section on -march=native.
	(AArch64 -mcpu): Slightly rework section on -march=native.
	(AArch64 Feature Modifiers): Remove "pan", "lor" and "rdma".
	State that -march=armv8.1-a enables "crc" and "lse".

2015-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (SPARC options): Fix typo.

2015-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

2015-12-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_emit_swsqrtsf): Cleanup
	infinity filterning code.

2015-12-08  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR tree-optimization/68766
	* tree-vectorizer.c (vectorize_loops): Check for
	if-converted loops when debug counters are used.

2015-12-07  DJ Delorie  <dj@redhat.com>

	* config/rl78/constraints.md (Wfr): Change to be a non-memory
	constraint.
	* config/rl78/rl78-protos.h (rl78_one_far_p): Declare.
	* config/rl78/rl78.c (rl78_one_far_p): Define.
	* config/rl78/rl78-virt (movqi_virt): Fix far memory
	alternatives.
	(movhi_virt): Likewise.
	(zero_extendqihi2_virt): Likewise.
	(extendqihi2_virt): Likewise.
	(add<mode>3_virt): Likewise.
	(sub<mode>3_virt): Likewise.
	(andqi3_virt): Likewise.
	(iorqi3_virt): Likewise.
	(xorqi3_virt): Likewise.
	* config/rl78/rl78-real.md (bf,br): Use long forms to avoid reloc
	overflow in large files.

2015-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/63668
	* doc/invoke.texi (SPARC options): Document -mstd-struct-return.
	* config/sparc/sparc.c (sparc_struct_value_rtx): Minor tweaks.
	* config/sparc/sparc.h (CALL_REALLY_USED_REGISTERS): Define.
	* config/sparc/sparc.opt (mstd-struct-return): Accept negative.

2015-12-07  Steve Ellcey  <sellcey@imgtec.com>

	* reorg.c (optimize_skip): Do not put frame related instructions
	in annulled delay slots.
	(steal_delay_list_from_target): Ditto.
	(fill_slots_from_thread): Ditto.

2015-12-07  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64-cores.def: Use the Exynos M1 sched model.
	* config/aarch64/aarch64.md: Include "exynos-m1.md".
	* config/arm/arm.md: Likewise.
	* config/arm/exynos-m1.md: New file.

2015-12-07  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Drop flag_strict_aliasing check.

2015-12-07  Nathan Sidwell  <nathan@acm.org>

	* config//nvptx/nvptx.c (write_return): New.
	(write_fn_proto, nvptx_declare_function_name): Call it.

2015-12-07  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* symtab.c (ultimate_transparent_alias_target): New inline function.
	(symbol_table::assembler_names_equal_p): New method; break out from ...
	(symbol_table::decl_assembler_name_equal): ... here.
	(symbol_table::change_decl_assembler_name): Also update names and
	translation links of transparent aliases.
	(symtab_node::dump_base): Dump transparent_alias.
	(symtab_node::verify_base): Implement basic transparent alias
	verification.
	(symtab_node::make_decl_local): Support localization of weakrefs;
	recurse to transparent aliases; set TREE_STATIC.
	(symtab_node::ultimate_alias_target_1): Handle visibility of
	transparent aliases.
	(symtab_node::resolve_alias): New parmaeter transparent; handle
	transparent aliases; recurse to aliases of aliases to fix comdat
	groups.
	(symtab_node::get_partitioning_class): Handle transparent aliases.
	* ipa-visibility.c (cgraph_externally_visible_p,
	varpool_node::externally_visible_p): Visibility of transparent alias
	depends on its target.
	(function_and_variable_visibility): Do not tweak visibility of
	transparent laiases.
	(function_and_variable_visibility): Likewise.
	* ipa.c (symbol_table::remove_unreachable_nodes): Clear
	transparent_alias flag.
	* alias.c (cgraph_node::create_alias, cgraph_node::get_availability):
	Support transparent aliases.
	* cgraph.h (symtab_node): Update prototype of resolve_alias;
	add transparent_alias flag.
	(symbol_table: Add assembler_names_equal_p.
	(symtab_node::real_symbol_p): Skip transparent aliases.
	* cgraphunit.c (cgraph_node::reset): Reset transparent_alias flag.
	(handle_alias_pairs): Set transparent_alias for weakref.
	(cgraph_node::assemble_thunks_and_aliases): Do not asemble transparent
	aliases.
	* lto-cgraph.c (lto_output_node): When outputting same_comdat_group
	skip symbols not put into boundary; stream transparent_alias.
	(lto_output_varpool_node): Likewise.
	(input_overwrite_node, input_varpool_node): Stream transparent alias.
	* varpool.c (ctor_for_folding, varpool_node::get_availability,
	varpool_node::assemble_aliases,
	symbol_table::remove_unreferenced_decls): Handle transparent aliase.
	(varpool_node::create_alias): Set transparent_alias.

2015-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/68291
	PR middle-end/68292
	* cfgexpand.c (set_rtl): Always accept PARALLELs with BLKmode for
	SSA names based on RESULT_DECLs.
	* function.c (expand_function_start): Do not create BLKmode REGs
	for GIMPLE registers when coalescing is enabled.

2015-12-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* final.c (shorten_branches): Fix check for basic asm.
	* ipa-icf-gimple.c (func_checker::compare_gimple_asm): Add check for
	basic asm.

2015-12-07  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_output_call_insn): Emit trap after no
	return call.

2015-12-07  David Malcolm  <dmalcolm@redhat.com>

	* pretty-print.c (text_info::set_range): Rename to...
	(text_info::set_location): ...this, converting 2nd param
	from source_range to a location_t.
	* pretty-print.h (text_info::set_location): Convert
	from inline function to external definition.
	(text_info::set_range): Delete.

2015-12-07  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Look inside
	complex and vector types.  Cope with packed structs.

2015-12-07  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/68627
	* config/i386/sse.md: Make 'v' alternative work on 'avx512f' ISA only.
	Force destination to 512 bits register.

2015-12-07  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/68633
	* config/i386/sse.md (define_insn "kunpckhi"): Fix operands order.
	(define_insn "kunpcksi"): Ditto.
	(define_insn "kunpckdi"): Ditto.

2015-12-06  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (rsqrtsf2): Adjust for canonical form with unspec.

2015-12-06  Victoria Stepanyan  <victoria.stepanyan@amd.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_CLZERO_SET): New.
	(ix86_handle_option): Handle clzero.
	* config.gcc (i[34567]86-*-*): Add clzerointrin.h,
	(x86_64-*-*): Likewise.
	* config/i386/clzerointrin.h: New header.
	* config/i386/cpuid.h (bit_CLZERO):  Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	CLZERO support.
	* config/i386/i386.opt (clzero): New.
	* config/i386/i386-c.c: Define __CLZERO__ if needed.
	* config/i386/i386.c (ix86_target_string): Define -mclzero option.
	(PTA_CLZERO): New.
	(ix86_option_override_internal): Handle new option.
	(processor_alias_table): Added PTA_CLZERO.
	(ix86_valid_target_attribute_inner_p): Add OPT_mclzero.
	(ix86_builtins): Add IX86_BUILTIN_CLZERO, IX86_BUILTIN_CLZERO.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLZERO and
	IX86_BUILTIN_CLZERO  built-ins.
	* config/i386/i386.h (TARGET_CLZERO):  New.
	* config/i386/i386.md (unspecv): Add UNSPEC_CLZERO.
	(clzero):  New pattern.
	(clzero_<mode>): New pattern.
	* config/i386/x86intrin.h: Include clzerointrin.h.
	* doc/extend.texi: Document clzero builtins.
	* doc/invoke.texi: Document -mclzero option.

2015-12-05  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::merge): Check that local_original exists.

2015-12-05  David Edelsohn  <dje.gcc@gmail.com>

	PR target/68609
	* config/rs6000/rs6000-protos.h (rs6000_emit_swsqrt): Rename and add
	bool arguement.
	* config/rs6000/rs6000.c (rs6000_emit_swsqrt): Rename. Add
	non-reciporcal path.
	* config/rs6000/rs6000.md (rsqrt<mode>2): Call new function name.
	(sqrt<mode>2): Replace define_insn with define_expand that may call
	rs6000_emit_swsqrt.

2015-12-04  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
	Improve debug.
	(get_rename_from_scev): Check that all the ops in an expression
	have their uses dominated by corresponding defs.

2015-12-04  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68693
	* graphite-scop-detection.c (dot_all_sese): New
	(dot_all_scops_1): Renamed to dot_all_sese.
	(dot_all_scops): Removed.
	(dot_sese): New.
	(dot_cfg): New.
	(scop_detection::get_nearest_dom_with_single_entry): Check that
	preds are from different loop levels.
	(scop_detection::get_nearest_pdom_with_single_exit): Check that
	succs are from different loop levels.
	(scop_detection::print_sese): Inlined.
	(scop_detection::print_edge): New.
	(scop_detection::merge_sese): Added dumps.
	* graphite.h: Add declarations.

2015-12-04  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (add<mode>3_pluslong): Add register
	constraints.

2015-12-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68349
	* lra-eliminations.c (move_plus_up): New function.
	(lra_eliminate_regs_1): Use the function.

2015-12-04  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New, replacing ...
	(init_output_initializer): ... this.
	(nvptx_output_aligned_decl, nvptx_asm_declare_constant_name,
	nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use
	nvptx_assemble_decl_begin.

2015-12-04  Dmitry Vyukov  <dvyukov@google.com>

	* sancov.c: New file.
	* Makefile.in (OBJS): Add sancov.o.
	* invoke.texi (-fsanitize-coverage=trace-pc): Describe.
	* passes.def (sancov_pass): Add.
	* tree-pass.h  (sancov_pass): Add.
	* common.opt (-fsanitize-coverage=trace-pc): Add.
	* sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_PC): Add.
	* builtins.def (DEF_SANITIZER_BUILTIN): Enable for
	flag_sanitize_coverage.

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

	PR middle-end/65958
	* config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
	(unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
	* config/arm/arm.md (probe_stack_range): Adjust.
	* config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
	(unspecv): Add UNSPECV_PROBE_STACK_RANGE.
	(probe_stack_range_<PTR:mode>): Adjust.

2015-12-04  David Malcolm  <dmalcolm@redhat.com>

	* convert.c (convert_to_real_1): When converting from a
	REAL_TYPE, preserve the location of EXPR in the result.
	* tree.c (get_pure_location): Make non-static.
	(set_source_range): Return the resulting location_t.
	(make_location): New function.
	* tree.h (get_pure_location): New decl.
	(get_finish): New inline function.
	(set_source_range): Convert return type from void to location_t.
	(make_location): New decl.

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

	PR c/68656
	* toplev.c (init_asm_output): Pass UNKNOWN_LOCATION instead of
	input_location to inform.
	(process_options): Use warning_at (UNKNOWN_LOCATION instead of
	warning ( and error_at (UNKNOWN_LOCATION instead of error (.
	Pass UNKNOWN_LOCATION instead of input_location to fatal_error.

2015-12-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (can_inline_edge_p) Use merged_comdat.
	* cgraphclones.c (cgraph_node::create_clone): Use merged_comdat.
	* cgraph.c (cgraph_node::dump): Dump merged_comdat.
	* ipa-icf.c (sem_function::merge): Drop merged_comdat when merging
	comdat and non-comdat.
	* cgraph.h (cgraph_node): Rename merged to merged_comdat.
	* ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat
	and icf_merged.

2015-12-04  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (cstore<mode>4_unsigned): Use gpc_reg_operand
	instead of register_operand.  Remove empty constraints.  Use std::swap.
	(cstore_si_as_di, cstore<mode>4_signed_imm,
	cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use
	gpc_reg_operand instead of register_operand.
	(cstore<mode>4 for FP): Use gpc_reg_operand instead of
	register_operand.  Remove empty constraints.

2015-12-04  Nick Clifton  <nickc@redhat.com>

	* config.gcc (extra_gcc_objs): Define for MSP430.
	* common/config/msp430/msp430-common.c (msp430_handle_option):
	Pass both -mmcu and -mcpu on to the back end if they are both defined.
	* config/msp430/msp430.c (hwmult_name): New function.
	(msp430_option_override): If an unrecognised MCU name is
	detected only warn if the user has not provided suitable
	-mhwmult and -mcpu options.  Use msp430_warn_mcu to control
	warning messages.  Generate warnings about conflicts between
	-mmcu and -mcpu and -mhwmult options.
	If neither -mcpu nor -mmcu have been specified but -mhwmult=
	f5series has the select the 430X isa.
	(msp430_no_hwmult): If -mmcu has not been specified and
	msp430_hwmult_type is AUTO then return true.
	* config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define.
	(LIB_SPEC): Add hardware multiply library selection.
	* config/msp430/t-msp430: Delete hardware multiply multilibs.
	Add rule to build driver-msp430.o
	* config/msp430/driver-msp430.c: New file.
	* config/msp430/msp430.opt (warn-mcu): New option.
	* doc/invoke.texi: Update description of -mhwmult=auto.
	Document -mwarn-mcu option.

2015-12-04  Segher Boessenkool  <segher&kernel.crashing.org>

	* config/rs6000/rs6000.md (cstore<mode>4_signed): New expander.
	(cstore<mode>4): Call it.

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

	* tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs.

	PR tree-optimization/68680
	* calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for
	BUILT_IN_ALLOCA{,_WITH_ALIGN}.  Don't check for __builtin_alloca
	by name.

	PR tree-optimization/68671
	* tree-ssa-reassoc.c (maybe_optimize_range_tests): For basic
	blocks starting with the successor of first bb we've modified
	and ending with last_bb call reset_flow_sensitive_info_in_bb.

2015-12-04  Jeff Law  <law@redhat.com>

	* tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean
	indicating if a gimple conditional was optimized to true/false.
	(reassociate_bb): Bubble up return value from
	maybe_optimize_range_tests.
	(do_reassoc): Similarly, but for reassociate_bb.
	(execute_reassoc): Return TODO_cleanup_cfg as needed.

2015-12-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_override_options_internal):
	Do not alter target_flags due to TARGET_GENERAL_REGS_ONLY_P.
	* doc/invoke.texi (AArch64 options): Mention that -mgeneral-regs-only
	does not affect the assembler directives.

2015-12-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_asm_file_start): Implement hook function to
	emit .machine and .machinemode to the top of the assembler file.
	(TARGET_ASM_FILE_START): Provide target hook.
	(s390_asm_output_machine_for_arch): Protect with
	HAVE_AS_MACHINE_MACHINEMODE instead of S390_USE_TARGET_ATTRIBUTE.

2015-12-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.opt (s390_arch_string): Remove.
	(s390_tune_string): Likewise.
	(s390_cost_pointer): Add Variable.
	(s390_tune_flags): Add TargetVariable.
	(s390_arch_flags, march=, mbackchain, mdebug, mesa, mhard-dfp),
	(mhard-float, mlong-double-128, mlong-double-64, mhtm, mvx),
	(mpacked-stack, msmall-exec, msoft-float, mstack-guard=, mstack-size=),
	(mtune=, mmvcle, mzvector, mzarch, mbranch-cost=, mwarn-dynamicstack),
	(mwarn-framesize=): Save option.
	(mno-stack-guard, mno-stack-guard): New option.
	(mwarn-dynamicstack): Allow mno-warn-dynamicstack.
	(mwarn-framesize=): Convert to UInteger (negative values are rejected
	now).
	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Split setting
	macros changeable through the GCC target pragma into a separate
	function.
	(s390_cpu_cpp_builtins): Likewise.
	(s390_pragma_target_parse): New function, implement GCC target pragma
	if enabled.
	(s390_register_target_pragmas): Register s390_pragma_target_parse if
	available.
	* common/config/s390/s390-common.c (s390_handle_option):
	Export.
	Move setting s390_arch_flags to s390.c.
	Remove s390_tune_flags.
	Allow 0 as argument to -mstack-size (switch to default value).
	Allow 0 as argument to -mstack-guard (switch off).
	Remove now unnecessary explicit parsing code for -mwarn-framesize.
	* config/s390/s390-protos.h (s390_handle_option): Export.
	(s390_valid_target_attribute_tree): Export.
	(s390_reset_previous_fndecl): Export.
	* config/s390/s390-builtins.def: Use new macro B_GROUP to mark the start
	and end of HTM and VX builtins.
	(s390_asm_output_function_prefix): Declare hook.
	(s390_asm_declare_function_size): Likewise.
	* config/s390/s390-builtins.h (B_GROUP): Use macro.
	* config/s390/s390-opts.h: Add comment about processor_type usage.
	* config/s390/s390.h (TARGET_CPU_IEEE_FLOAT_P, TARGET_CPU_ZARCH_P),
	(TARGET_CPU_LONG_DISPLACEMENT_P, TARGET_CPU_EXTIMM_P, TARGET_CPU_DFP_P),
	(TARGET_CPU_Z10_P, TARGET_CPU_Z196_P, TARGET_CPU_ZEC12_P),
	(TARGET_CPU_HTM_P, TARGET_CPU_Z13_P, TARGET_CPU_VX_P),
	(TARGET_HARD_FLOAT_P, TARGET_LONG_DISPLACEMENT_P, TARGET_EXTIMM_P),
	(TARGET_DFP_P, TARGET_Z10_P, TARGET_Z196_P, TARGET_ZEC12_P),
	(TARGET_HTM_P, TARGET_Z13_P, TARGET_VX_P, TARGET_CPU_EXTIMM),
	(TARGET_CPU_DFP, TARGET_CPU_Z10, TARGET_CPU_Z196, TARGET_CPU_ZEC12),
	(TARGET_CPU_HTM, TARGET_CPU_Z13, TARGET_LONG_DISPLACEMENT),
	(TARGET_EXTIMM, TARGET_DFP, TARGET_Z10, TARGET_Z196, TARGET_ZEC12),
	(TARGET_Z13, TARGET_VX, S390_USE_TARGET_ATTRIBUTE),
	(S390_USE_ARCHITECTURE_MODIFIERS, SWITCHABLE_TARGET),
	(ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
	* config/s390/vecintrin.h: Use vector definitions even if __VEC__ is
	undefined.
	(vec_all_nan): Rewrite as macro using statement expressions to avoid
	that the vector keyword needs to be defined when including the file.
	(vec_all_numeric): Likewise.
	(vec_any_nan): Likewise.
	(vec_any_numeric):  Likewise.
	* config/s390/s390.c (s390_previous_fndecl): New static variable.
	(s390_set_current_function): New function.
	(s390_cost): Wrapper macro to allow defining the cost table pointer in
	the options file.
	(processor_table): Table for march= and mtune= parsing.
	(s390_init_builtins): Enable all builtins and types unconditionally.
	(s390_expand_builtin): Generate an error message if builtin is not
	supported by current options.
	Correct an error message.
	(s390_function_specific_restore): New function to set s390_cost.
	(s390_asm_output_machine_for_arch): New function for emitting .machine
	and .machinmode directives to the assembler file.
	(s390_asm_output_function_prefix): Likewise.
	(s390_asm_declare_function_size):  Likewise.
	(s390_asm_output_function_label): Add mdebug output for feature testing.
	(s390_option_override): Move implementation into internal function.
	(s390_option_override_internal): Likewise.
	Implement option overriding based on current options.
	(s390_valid_target_attribute_inner_p): New function implementing target
	attribute logic.
	(s390_valid_target_attribute_tree): Likewise.
	(s390_valid_target_attribute_p): Likewise.
	(s390_reset_previous_fndecl): Likewise.
	(s390_set_current_function): Likewise.
	(TARGET_SET_CURRENT_FUNCTION): Provide target hook function.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Likewise.
	(TARGET_OPTION_RESTORE): Likewise.
	* doc/extend.texi: S390: Document target attribute and pragma.
	* config.in: Regenerated.
	* configure: Regenerated.
	* configure.ac: S390: Check for .machinemode and .machine in gas.
	S390: Check for architecture modifiers support in gas.

2015-12-04  Kirill Yukhin  <kirill.yukhin@intel.com>

	* doc/extend.texi ("simd"): Describe new flags.

2015-12-04  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/sse.md (<avx512>_store<mode>_mask): Fix
	operand checked for alignment.

2015-12-04  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (write_one_arg): Deal with prologue
	emission too. Change 'no_arg_types' to 'prototyped'.
	(write_fn_proto):  Use write_one_arg for stdarg, static chain &
	main.
	(nvptx_declare_function_name): Use write_one_arg for prologue copies.

2015-12-04  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (sccvn_dom_walker): Add unreachable_dom
	member and initialize it.
	(sccvn_dom_walker::after_dom_children): Reset unreachable_dom
	if necessary.
	(sccvn_dom_walker::before_dom_children): If unreachable_dom
	is set BB is not reachable either.  Set unreachable_dom
	if not set and BB is unreachable.

2015-12-04  Richard Biener  <rguenther@suse.de>

	* bitmap.c (bitmap_find_bit): Guard the bitmap descriptor
	query with GATHER_STATISTICS.

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

	PR middle-end/65958
	* gimplify.c (struct gimplify_ctx): Turn boolean fields into 1-bit
	fields, add keep_stack and reorder them.
	(gimplify_bind_expr): Save gimplify_ctxp->keep_stack on entry then
	set it to false.  Do not insert a stack save/restore pair if it has
	been set to true by the gimplification of the statements.
	Restore it to the saved value on exit if it is still false.
	(gimplify_vla_decl): Do not set gimplify_ctxp->save_stack here.
	(gimplify_call_expr) <BUILT_IN_ALLOCA[_WITH_ALIGN]>: New case.  Set
	either save_stack or keep_stack depending on CALL_ALLOCA_FOR_VAR_P.
	* doc/extend.texi (Variable Length): Document new behavior.
	* doc/generic.texi (Blocks): Document new handling of VLAs.

2015-12-04  Eric Botcazou  <ebotcazou@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	PR middle-end/65958
	* config/aarch64/aarch64-protos.h (aarch64_output_probe_stack-range):
	Declare.
	* config/aarch64/aarch64.md: Declare UNSPECV_BLOCKAGE and
	UNSPEC_PROBE_STACK_RANGE.
	(blockage): New instruction.
	(probe_stack_range_<PTR:mode>): Likewise.
	* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): New
	function.
	(aarch64_output_probe_stack_range): Likewise.
	(aarch64_expand_prologue): Invoke aarch64_emit_probe_stack_range if
	static builtin stack checking is enabled.
	* config/aarch64/aarch64-linux.h (STACK_CHECK_STATIC_BUILTIN):
	Define to 1.

2015-12-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68214
	* config/arm/arm.md (*call_mem): Delete pattern.
	(*call_value_mem): Likewise.
	* config/arm/arm.c (output_call_mem): Delete.
	* config/arm/arm-protos.h (output_call_mem): Delete prototype.

2015-12-04  Bin Cheng  <bin.cheng@arm.com>

	* config/aarch64/atomics.md (atomic_store<mode>): Use predicate
	aarch64_sync_memory_operand.

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

	PR target/68655
	* config/i386/i386.c (canonicalize_vector_int_perm): New function.
	(expand_vec_perm_1): Use it and recurse if everything else
	failed.  Use nd.perm instead of perm2.
	(expand_vec_perm_even_odd_1): If testing_p, use gen_raw_REG
	instead of gen_lowpart for the target.
	(ix86_expand_vec_perm_const_1): Use canonicalize_vector_int_perm
	and recurse if everything else failed.

2015-12-04  Richard Biener  <rguenther@suse.de>

	PR middle-end/68636
	* builtins.c (get_pointer_alignment_1): Take care of byte to
	bit alignment computation overflow.

2015-12-04  Richard Biener  <rguenther@suse.de>

	PR middle-end/67438
	* match.pd: Guard ~X cmp ~Y -> Y cmp X and the variant with
	a constant with single_use.

2015-12-04  Bin Cheng  <bin.cheng@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_legitimize_address): legitimize
	address expressions like Ra + Rb + CONST and Ra + Rb<<SCALE + CONST.

2015-12-03  Jan Hubicka  <hubicka@ucw.cz>

	* alias.c (alias_set_subset_of, alias_sets_must_conflict_p):
	Add short circuit for !flag_strict_aliasing
	(get_alias_set): Remove flag_strict_aliasing check.
	(new_alias_set): Likewise.

2015-12-03  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model.
	* config/aarch64/aarch64.c (exynosm1_addrcost_table): New variable.
	(exynosm1_regmove_cost): Likewise.
	(exynosm1_vector_cost): Likewise.
	(exynosm1_tunings): Likewise.
	* config/arm/aarch-cost-tables.h (exynosm1_extra_costs): Likewise.
	* config/arm/arm.c (arm_exynos_m1_tune): Likewise.

2015-12-03  Alan Lawrence  <alan.lawrence@arm.com>
	    Richard Biener  <richard.guenther@gmail.com>

	* cfgexpand.c (pass_expand::execute): Replace call to
	redirect_edge_var_map_destroy with redirect_edge_var_map_empty.
	* tree-ssa.c (delete_tree_ssa): Likewise.
	* function.c (set_cfun): Call redirect_edge_var_map_empty.
	* passes.c (execute_one_ipa_transform_pass, execute_one_pass): Likewise.
	* tree-ssa.h (redirect_edge_var_map_destroy): Remove.
	(redirect_edge_var_map_empty): New.
	* tree-ssa.c (redirect_edge_var_map_destroy): Remove.
	(redirect_edge_var_map_empty): New.

2015-12-03  Jeff Law  <law@redhat.com>

	PR tree-optimization/68599
	* loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS
	in call to loop_optimizer_init.
	* loop-iv.c (get_simple_loop_desc): Only allow unsafe loop
	optimization to drop the assumptions/infinite notations if
	the loop has a single exit.

2015-12-03  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that
	the pattern cannot FAIL.
	(vec_store_lanes@var{m}@var{n}): Likewise.
	(maskload@var{m}@var{n}): Likewise.
	(maskstore@var{m}@var{n}): Likewise.  Fix a cut-&-paste error
	in the name of the pattern.
	(rsqrt@var{m}2): Document that mode m must be a scalar or vector
	floating-point mode and that all operands have that mode.
	(fmin@var{m}3, fmax@var{m}3): Likewise.  Document that the
	pattern cannot FAIL.
	(sqrt@var{m}2): Document that mode m must be a scalar or vector
	floating-point mode, that all operands have that mode, and that
	the patterns cannot FAIL.  Remove previous documentation referring
	to @code{double} and @code{float}.
	(fmod@var{m}3, remainder@var{m}3, cos@var{m}2, sin@var{m}2)
	(sincos@var{m}3, log@var{m}2, pow@var{m}3, atan2@var{m}3)
	(copysign@var{m}3): Likewise.
	(exp@var{m}2): Likewise.  Explicitly state the base.
	(floor@var{m}2): As for sqrt@var{m}2, but also specify the operands.
	(btrunc@var{m}2, rint@var{m}2): Likewise.
	(round@var{m}2): Likewise.  Fix incorrect description of rounding
	effect.
	(ceil@var{m}2): As for round@var{m}2.
	(nearbyint@var{m}2): As for floor@var{m}2, but also mention that
	the instruction must not raise an inexact condition.
	(scalb@var{m}3): Document previously-undocumented pattern
	(ldexp@var{m}3, tan@var{m}2, asin@var{m}2, acos@var{m}2)
	(atan@var{m}2, expm1@var{m}2, exp10@var{m}2, exp2@var{m}2)
	(log1p@var{m}2, log10@var{m}2, log2@var{m}2, logb@var{m}2)
	(significand@var{m}2): Likewise.
	(ffs@var{m}2): Fix the description of the modes, so that operand 1 has
	mode m and operand 0 is defined more freely.  Document that @var{m}
	can be a scalar or vector integer mode and that the pattern is not
	allowed to FAIL.
	(clz@var{m}2, ctz@var{m}2, popcount@var{m}2, parity@var{m}2): Likewise.
	(clrsb@var{m}2): Likewise, except that the description of the
	mode was missing in this case.

2015-12-03  Richard Sandiford  <richard.sandiford@arm.com>

	* internal-fn.def (RSQRT): New function.
	* optabs.def (rsqrt_optab): New optab.
	* doc/md.texi (rsqrtM2): Document.
	* target.def (builtin_reciprocal): Replace gcall argument with
	a function decl.  Restrict hook to machine functions.
	* doc/tm.texi: Regenerate.
	* targhooks.h (default_builtin_reciprocal): Update prototype.
	* targhooks.c (default_builtin_reciprocal): Likewise.
	* tree-ssa-math-opts.c: Include internal-fn.h.
	(internal_fn_reciprocal): New function.
	(pass_cse_reciprocals::execute): Call it, and build a call to an
	internal function on success.  Only call targetm.builtin_reciprocal
	for machine functions.
	* config/aarch64/aarch64-protos.h (aarch64_builtin_rsqrt): Remove
	second argument.
	* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin_rsqrt):
	Rename aarch64_rsqrt_<mode>2 to rsqrt<mode>2.
	(aarch64_builtin_rsqrt): Remove md_fn argument and only handle
	machine functions.
	* config/aarch64/aarch64.c (use_rsqrt_p): New function.
	(aarch64_builtin_reciprocal): Replace gcall argument with a
	function decl.  Use use_rsqrt_p.  Remove optimize_size check.
	Only handle machine functions.  Update call to aarch64_builtin_rsqrt.
	(aarch64_optab_supported_p): New function.
	(TARGET_OPTAB_SUPPORTED_P): Define.
	* config/aarch64/aarch64-simd.md (aarch64_rsqrt_<mode>2): Rename to...
	(rsqrt<mode>2): ...this.
	* config/i386/i386.c (use_rsqrt_p): New function.
	(ix86_builtin_reciprocal): Replace gcall argument with a
	function decl.  Use use_rsqrt_p.  Remove optimize_insn_for_size_p
	check.  Only handle machine functions.
	(ix86_optab_supported_p): Handle rsqrt_optab.
	* config/rs6000/rs6000.c (TARGET_OPTAB_SUPPORTED_P): Define.
	(rs6000_builtin_reciprocal): Replace gcall argument with a
	function decl.  Remove optimize_insn_for_size_p check.
	Only handle machine functions.
	(rs6000_optab_supported_p): New function.

2015-12-03  Bernd Schmidt  <bschmidt@redhat.com>

	PR target/68471
	PR target/68472
	* config/i386/i386.c (ix86_mitigate_rop): Don't call
	compute_bb_for_insn again.  Call df_insn_rescan_all.
	* config/i386/i386.md (set_got_rex64): Override modrm_class.

	* regrename.c (build_def_use): Ignore stack regs if regstack_completed.

2015-12-03  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space):	Delete.
	* config/nvptx/nvptx.c (enum nvptx_data_area): New.
	(SYMBOL_DATA_AREA, SET_SYMBOL_DATA_AREA): New defines.
	(nvptx_option_override): Set data ares for worker vars.
	(nvptx_addr_space_from_sym): Delete.
	(nvptx_encode_section_info): New.
	(section_for_sym, section_for_decl): New.
	(nvptx_maybe_convert_symbolic_operand): Get data area from symbol flags.
	(nvptx_section_from_addr_space): Delete.
	(nvptx_section_for_decl): Delete.
	(nvptx_output_aligned, nvptx_declare_object_name,
	nvptx_assemble_undefined_decl): Use section_for_decl, remove
	unnecessary checks.
	(nvptx_print_operand): Add 'D', adjust 'A'.
	(nvptx_expand_worker_addr): Adjust unspec generation.
	(TARGET_ENCODE_SECTION_INFO): Override.
	* config/nvptx/nvptx.h (ADDR_SPACE_GLOBAL, ADDR_SPACE_SHARED,
	ADDR_SPACE_CONST, ADDR_SPACE_LOCAL, ADDR_SPACE_PARAM): Delete.
	* config/nvptx/nvptx.md (UNSPEC_FROM_GLOBAL, UNSPEC_FROM_LOCAL,
	UNSPEC_FROM_PARAM, UNSPEC_FROM_SHARED, UNSPEC_FROM_CONST,
	UNSPEC_TO_GLOBAL, UNSPEC_TO_LOCAL, UNSPEC_TO_PARAM,
	UNSPEC_TO_SHARED, UNSPEC_TO_CONST): Delete.
	(UNSPEC_TO_GENERIC): New.
	(nvptx_register_or_symbolic_operand): Delete.
	(cvt_code, cvt_name, cvt_str): Delete.
	(convaddr_<cvt_name><mode> [P]): Delete.
	(convaddr_<mode> [P]): New.

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

	PR rtl-optimization/68624
	* ifcvt.c (noce_try_cmove_arith): Check clobbers of temp regs in both
	blocks if they exist and simplify the logic choosing the order to emit
	them in.

2015-12-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66051
	* tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
	on load group size.  Do not pass in vectorization_factor.
	(vect_transform_slp_perm_load): Do not require any permute support.
	(vect_build_slp_tree): Do not pass in vectorization factor.
	(vect_analyze_slp_instance): Do not compute vectorization
	factor estimate.  Use vector size instead of vectorization factor
	estimate to split store groups for BB vectorization.

2015-12-03  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* cfgexpand.c (expand_gimple_stmt_1): Return statement with
	DECL as return value is allowed to have NULL bounds.

2015-12-03  Tom de Vries  <tom@codesourcery.com>

	* graphite-isl-ast-to-gimple.c (binary_op_to_tree)
	(gcc_expression_from_isl_expr_op): Guard isl_ast_op_zdiv_r usage with
	HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.

2015-12-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67800
	PR tree-optimization/68333
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Restore
	restriction to reduction contexts but allow SLP reductions as well.
	(vect_recog_sad_pattern): Likewise.
	(vect_recog_widen_sum_pattern): Likewise.

2015-12-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68639
	* tree-vect-data-refs.c (dr_group_sort_cmp): Split groups
	belonging to different loops.
	(vect_analyze_data_ref_accesses): Likewise.

2015-12-02  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"):
	Remove "prefix_extra".
	(define_insn "vec_extract_hi_<mode>_mask"): New.
	(define_insn "vec_extract_hi_<mode>"): Remove masking.

2015-12-02  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-pure-const.c (ignore_edge_for_pure_const): New function.
	(propagate_pure_const): Use it; fix comments and optimize loops.

2015-12-02  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-pure-const.c (ignore_edge): Rename to ...
	(ignore_edge_for_nothrow) ... this one; also ignore eges to
	interposable functions or ones that can not throw.
	(propagate_nothrow): Fix handling of availability.

2015-12-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/68184
	* cgraphunit.c (cgraph_node::analyze): Set can_throw_external.

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle
	isl_ast_op_zdiv_r.
	(gcc_expression_from_isl_expr_op): Same.

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check
	that insertion point is still in the region.

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68550
	* graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump.
	(copy_bb_and_scalar_dependences): Do not code generate loop peeled
	statements.

2015-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Check assembler support for R_PPC64_ENTRY relocation.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New
	function.
	(rs6000_output_function_prologue): Use it instead of checking
	cfun->machine->r2_setup_needed.  Use internal labels instead of
	GNU as local label extension.  Handle ELFv2 large code model.
	(rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed.
	(rs6000_elf_declare_function_name): Handle ELFv2 large code model.

2015-12-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/68647
	* optabs.c (expand_doubleword_popcount, expand_doubleword_parity):
	New functions.
	(expand_unop): Use them.

2015-12-02  Marek Polacek  <polacek@redhat.com>

	PR c++/68653
	* tree.c (nonnull_arg_p): Allow OFFSET_TYPE.

2015-12-02  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New.  Absorb
	SHUFFLE defines.
	(nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust.

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c (scop_get_reads): Add extra dumps.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	(compute_deps): Same.
	* graphite-sese-to-poly.c (bounds_are_valid): New.
	(pdr_add_data_dimensions): Call bounds_are_valid.

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize.
	* graphite-poly.c (apply_poly_transforms): Same.
	* graphite.c (gate_graphite_transforms): Same.
	* toplev.c (process_options): Same.

2015-12-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config/mips/mips.c (mips_emit_probe_stack_range): Adjust.
	(mips_output_probe_stack_range): Rotate the loop and simplify.

2015-12-02  David Sherwood  <david.sherwood@arm.com>

	* config/aarch64/aarch64.md: New pattern.
	* config/aarch64/aarch64-simd.md: Likewise.
	* config/aarch64/iterators.md: New unspecs, iterators.

2015-12-02  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.c (dwar2out_var_location): In addition to notes,
	process indirect calls whose target is compile-time known.
	Enhance pattern matching to get the SYMBOL_REF they embed.
	(gen_subprogram_die): Handle such calls.
	* final.c (final_scan_insn): For call instructions, invoke the
	var_location debug hook only after the call has been emitted.

2015-12-02  Tom de Vries  <tom@codesourcery.com>

	* gimplify.c (enum gimplify_omp_var_data): Add enum value
	GOVD_MAP_FORCE.
	(oacc_default_clause): Fix default for scalars in oacc kernels.
	(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_FORCE.

2015-12-02  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (install_var_field, scan_sharing_clauses): Add and handle
	parameter base_pointers_restrict.
	(omp_target_base_pointers_restrict_p): New function.
	(scan_omp_target): Call scan_sharing_clauses with
	base_pointers_restrict arg.

2015-12-02  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare.
	(nvptx_underlying_object_mode): Delete.
	* config/nvptx/nvptx.c (nvptx_underlying_object_mode): Delete.
	(output_reg): New.
	(nvptx_declare_function_name): Use output_reg.  Remove punning buffer.
	(nvptx_output_mov_insn): New.
	(nvptx_print_operand): Separate SUBREG handling, remove 'f' case,
	Use output_reg. Merge 't' and 'u' handling.
	* config/nvptx/nvptx.h (NVPTX_PUNNING_BUFFER_REGNUM): Delete.
	(struct machine_function): Remvoe punning_buffer_size.
	(REGISTER_NAMES): Remove %punbuffer.
	* config/nvptx/nvptx.md (UNSPEC_CPLX_LOWPART,
	UNSPEC_CPLX_HIGHPART): Delete.
	(*mov<mode>_insn [QHSDIM): Remove unnecessary constraints, use
	nvptx_output_mov_insn.
	(*mov<mode>_insn [SDFM): Reorder constraints to match integer moc.
	Use nvptx_output_mov_insn.
	(highpartscsf2,  set_highpartscsf2, lowpartscsf2, set_lowpartscsf2):
	Delete.
	(mov<mode> [SDCM]): Delete.

2015-12-02  Richard Biener  <rguenther@suse.de>

	* tree.h (tree_invariant_p): Declare.
	* tree.c (tree_invariant_p): Export.
	* genmatch.c (dt_simplify::gen_1): For GENERIC code-gen never
	create SAVE_EXPRs but reject patterns if we would need to.

2015-12-02  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call)
	(find_func_clobbers, ipa_pta_execute): Handle BUILT_IN_GOACC_PARALLEL.

2015-12-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (cstore_si_as_di): New expander.
	(cstore<mode>4): Use it.

2015-12-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68625
	* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not call
	cleanup_control_flow_bb.
	(cleanup_tree_cfg_1): First perform cleanup_control_flow_bb
	on all BBs, then cleanup_tree_cfg_bb and finally iterate
	over the worklist doing both.

2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/68432
	* coretypes.h (optimization_type): New enum.
	* doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
	* doc/tm.texi: Regenerate.
	* target.def (optab_supported_p): New hook.
	* targhooks.h (default_optab_supported_p): Declare.
	* targhooks.c (default_optab_supported_p): New function.
	* predict.h (function_optimization_type): Declare.
	(bb_optimization_type): Likewise.
	* predict.c (function_optimization_type): New function.
	(bb_optimization_type): Likewise.
	* optabs-query.h (convert_optab_handler): Define an overload
	that takes an optimization type.
	(direct_optab_handler): Likewise.
	* optabs-query.c (convert_optab_handler): Likewise.
	(direct_optab_handler): Likewise.
	* internal-fn.h (direct_internal_fn_supported_p): Take an
	optimization_type argument.
	* internal-fn.c (direct_optab_supported_p): Likewise.
	(multi_vector_optab_supported_p): Likewise.
	(direct_internal_fn_supported_p): Likewise.
	* builtins.c (replacement_internal_fn): Update call to
	direct_internal_fn_supported_p.
	* gimple-match-head.c (build_call_internal): Likewise.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
	* tree-vect-stmts.c (vectorizable_internal_function): Likewise.
	* tree.c (maybe_build_call_expr_loc): Likewise.
	* config/i386/i386.c (ix86_optab_supported_p): New function.
	(TARGET_OPTAB_SUPPORTED_P): Define.
	* config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
	(asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
	(expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
	(exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
	(scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
	(<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.

2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>

	* Makefile.in (GENSUPPORT_H): New macro.
	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
	(build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
	(build/gencodes.o, build/genconditions.o, build/genconfig.o)
	(build/genconstants.o, build/genextract.o, build/genflags.o)
	(build/gentarget-def.o): Use it.
	(build/genemit.o): Likewise.  Depend on internal-fn.def.
	* genopinit.c: Move block comment to optabs.def.
	(optab_tag, optab_def): Move to gensupport.h
	(pattern): Likewise, renaming to optab_pattern.
	(match_pattern): Move to gensupport.c
	(gen_insn): Use find_optab.
	(patterns, pattern_cmp): Replace pattern with optab_pattern.
	(main): Likewise.  Use num_optabs.
	* optabs.def: Add comment that was previously in genopinit.c.
	* gensupport.h (optab_tag): Moved from genopinit.c
	(optab_def): Likewise, expanding commentary.
	(optab_pattern): Likewise, after renaming from pattern.
	(optabs, num_optabs, find_optab): Declare.
	* gensupport.c (optabs): Moved from genopinit.c.
	(num_optabs): New variable.
	(match_pattern): Moved from genopinit.c.
	(find_optab): New function, extracted from genopinit.c:gen_insn.
	* genemit.c (nofail_optabs): New variable.
	(emit_c_code): New function.
	(gen_expand): Check whether the instruction is an optab that isn't
	allowed to fail.  Call emit_c_code.
	(gen_split): Call emit_c_code here too.
	(main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/predicates.md (const_mask_operand): New predicate.
	* config/s390/s390-builtins.def: Set a smaller bitmask
	for a few builtins.
	* config/s390/vector.md: Change predicate from immediate_operand
	to either const_int_operand or const_mask_operand.  Add special
	insn conditions on patterns which have to exclude certain values.
	* config/s390/vx-builtins.md: Likewise.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("*vec_set<mode>"): Change shift count
	mode from DI to SI.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin types added.
	* config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
	* config/s390/s390.c (s390_expand_builtin): Always truncate
	constants to the mode in the pattern.
	* config/s390/vecintrin.h: Let the vec_splat_* macros point to the
	respective builtin __builtin_s390_vec_splat_*.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtin-types.def: Sort builtin types.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_get_vstring_flags): Invert the
	condition for the RT flag.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md ("jKK"): New constraint.
	* config/s390/s390.c (tm-constrs.h): Include for
	satisfies_constraint_*.
	(s390_legitimate_constant_p): Allow jKK constants.  Use
	satisfies_constraint_* also for the others.
	(legitimate_reload_vector_constant_p): Likewise.
	(print_operand): Allow h output modifier on vectors.
	* config/s390/vector.md ("mov<mode>"): Add vrepi.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
	letter I->K.

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("bswap<mode>2"): Add support for strv and strvg.
	("bswaphi2"): New pattern.
	New splitter for HI reg-reg bswap.

2015-11-27  Jiri Engelthaler  <engycz@gmail.com>

	PR driver/68029
	* opts-common.c (prune_options): Don't ignore -fdiagnostics-color
	if it is the first parameter.

2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/68577
	* tree-vect-stmts.c (simple_integer_narrowing): New function.
	(vectorizable_call): Restrict internal function handling
	to NONE and NARROW cases, using simple_integer_narrowing
	to test for the latter.  Add cost of narrowing operation
	and insert it where necessary.

2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
	rs6000_current_abi to ABI_AIX or ABI_ELFv2.

2015-12-01  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
	* config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
	ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
	* config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
	(write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
	(init_output_initializer): Call write_var_marker.
	(nvptx_output_aligned_decl): New.
	(nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.

2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

	* c-common.c (parse_optimize_options): Do not silently ignore
	-fstrict-aliasing changes.

2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.

2015-12-01  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
	consider mode.

2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
	indirection for large and small code models.
	(adjust_vperm): Likewise.

2015-12-01  Julian Brown  <julian@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <James_Norris@mentor.com>

	* gimple-pretty-print.c (dump_gimple_omp_target): Add host_data support.
	* gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
	(is_gimple_omp_oacc): Add support for above.
	* gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
	(omp_notice_variable): Diagnose undefined implicit uses of
	use_device variables in offloaded regions.
	(gimplify_scan_omp_clauses): Add host_data, use_device
	support. Diagnose undefined mapping of use_device variables in
	OpenACC clauses.
	(gimplify_omp_workshare): Add host_data support.
	(gimplify_expr): Likewise.
	* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
	* omp-low.c (lookup_decl_in_outer_ctx)
	(maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
	host_data regions.
	(scan_sharing_clauses): Support use_device.
	(check_omp_nesting_restrictions): Support host_data.
	(expand_omp_target): Support host_data.
	(lower_omp_target): Skip over outer host_data regions when looking
	up decls. Support use_device.
	(make_gimple_omp_edges): Support host_data.
	* tree-nested.c (convert_nonlocal_omp_clauses): Add use_device clause.

2015-12-01  Marek Polacek  <polacek@redhat.com>

	PR middle-end/68582
	* cgraphunit.c (check_global_declaration): Only depend
	on TREE_THIS_VOLATILE for VAR_DECLs.

2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/68474
	* tree-call-cdce.c (use_internal_fn): Protect call to
	gen_shrink_wrap_conditions.

2015-12-01  Christian Bruel  <christian.bruel@st.com>

	PR target/68617
	* config/arm/arm.opt (unaligned_access): Save.
	* config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
	* config/arm/arm.c (arm_option_override): Move unaligned_access setting.
	(arm_option_override_internal): ... here.
	* config/arm/arm.h (TARGET_32BIT_P): New macro.

2015-12-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68379
	* tree-vect-stmts.c (vectorizable_load): For BB vectorization
	always base loads on the first used DR of a group.
	* tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
	Compute alignment of the first scalar element unconditionally.

2015-12-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/68590
	* genmatch.c (struct capture_info): Add match_use_count.
	(capture_info::walk_match): Increment match_use_count.
	(dt_simplify::gen_1): For GENERIC, only wrap multi-use
	replacements in a save_expr if they occur more often than
	in the original expression.

2015-12-01  Richard Biener  <rguenther@suse.de>

	PR ipa/68470
	* ipa-split.c (split_function): Handle main part not returning.

2015-12-01  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/68595
	* tree-vect-stmts.c (vect_init_vector): Cast boolean
	scalars to a proper value before building a vector.

2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>

	* genattrtab.c (check_attr_test): Take an attr_desc instead of
	an is_const flag.  Put the file_location argument first.
	Update recursive calls.  Improve error messages.
	(check_attr_value): Take a file location and use it instead
	of attr->loc.  Improve error messages.  Update calls to
	check_attr_test.
	(check_defs): Update call to check_attr_value.
	(make_canonical): Likewise.
	(gen_attr): Likewise.
	(main): Likewise.
	(gen_insn_reserv): Update call to check_attr_test.

2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.

2015-12-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/68590
	* match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.

2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
	odr_type_p): Move to ...
	* ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
	odr_type_p): here; miscro-optimize.

2015-12-01  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/68529
	* tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
	Compute no-overflow information for control iv.
	(number_of_iterations_lt, number_of_iterations_le): Add new param.
	(number_of_iterations_cond): Pass new argument to above functions.

2015-11-30  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
	inlining -fno-strict-aliasing into -fstrict-aliasing body.

2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68565
	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
	codegen_error.  Fail when rhs of division operations is integer_zerop.
	(ternary_op_to_tree): Early return on codegen_error.
	(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): On codegen_error continue generating
	wrong code.
	(graphite_create_new_loop_guard): Same.
	(build_iv_mapping): Same.
	(graphite_create_new_guard): Same.

2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c: Fix dump messages.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.

2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>

	* tree-nested.c (convert_nonlocal_omp_clauses): Add support for
	OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
	(convert_local_omp_clauses): Likewise.

2015-11-30  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/46032
	* tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
	factored out of ...
	(find_func_aliases_for_call): ... here.
	(find_func_aliases_for_builtin_call, find_func_clobbers): Handle
	BUILT_IN_GOMP_PARALLEL.
	(ipa_pta_execute): Same.  Handle node->parallelized_function as a local
	function.

2015-11-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68501
	* target.def (builtin_reciprocal): Replace the 3 arguments with
	a gcall * one, adjust description.
	* targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
	with a gcall * one.
	* targhooks.c (default_builtin_reciprocal): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
	targetm.builtin_reciprocal even on internal functions, adjust
	the arguments and allow replacing an internal function with normal
	built-in.
	* config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
	with a gcall * one.  Handle internal fns too.
	* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
	* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
	* doc/tm.texi (builtin_reciprocal): Document.

2015-11-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68592
	* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
	on the pattern def sequence.

2015-11-30  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
	(write_one_arg): Reorder parms, add 'sep' param.
	(nvptx_write_function_decl): Rename to ...
	(write_fn_proto): ... here.  Do name replacement. Emit linaer
	comment marker. Deal with both decls and defns. Simplify argument
	formatting.
	(write_function_decl_and_comment): Delete.
	(write_func_decl_from_insn): Rename to ...
	(write_fn_proto_from_insn): ... here.  Don't do name replacement.
	(nvptx_record_fndecl): Call write_fn_proto.
	(nvptx_record_libfunc): Call write_fn_proto_from_insn.
	(nvptx_declare_function_name): Adjust for write_fn_proto changes.
	(nvotx_output_call_insn): Call write_fn_prot_from_insn.

2015-11-30  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
	(define_insn "*k<logic><mode>"): Use new iterator.

2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/28115
	* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
	(sparc_adjust_cost): Add missing space.

2015-11-30  Richard Biener  <rguenther@suse.de>

	PR c/68162
	* dwarf2out.c (gen_type_die_with_usage): Keep variant types of arrays.

2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>

	* tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field.
	(hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
	base ref, DR pairs and store base_predicate for write type DRs.
	(ifcvt_memrefs_wont_trap): Guard checks with
	-ftree-loop-if-convert-stores flag.

2015-11-29  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::make_local): No name is unique during
	incremental linking.
	* cgraph.h (can_be_discarded_p): Update comment; also common and
	WEAK in named sections can be discarded; when doing incremental
	link do not rely on resolution being the final one.
	* varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
	When symbol can be discarded, do not rely on resolution info.
	* symtab.c (symtab_node::nonzero_address): Take into account that
	symbol can be discarded.
	* ipa-visibility.c (update_visibility_by_resolution_info): Handle
	definition correctly.
	(function_and_variable_visibility): Do not set unique_name when
	incrementally linking.

2015-11-29  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
	const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
	(ctrap<mode>): Use const0_operand.

2015-11-29  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (add_type_duplicate): Remove redundant
	ODR violation dump.

2015-11-29  David Edelsohn  <dje.gcc@gmail.com>

	PR target/28115
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
	recog_memoized test for insn and check recog_memoized for dep_insn.

2015-11-28  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
	(FRAME_POINTER_CFA_OFFSET): Define.
	(struct nvptx_args): Use 'tree' type.
	(INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.

2015-11-28  Tom de Vries  <tom@codesourcery.com>

	* lto-wrapper.c (run_gcc): Handle -flinker-output argument.

2015-11-27  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Option Summary): Use negative form of
	-Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
	sort alphabetically and re-justify.

2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68536
	* lra.c (lra_emit_add): Add code for null base.
	* lra-constraints.c (curr_insn_transform): Skip operators for
	subreg reloads.

2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Revert
	2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
	multiple_sets.
	(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
	are not modified by the final modified insns in the basic blocks.

2015-11-27  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
	Don't declare.
	* config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
	(nvptx_maybe_convert_symbolic_operand): Simplify.
	(nvptx_addr_space_from_address): Delete.
	(nvptx_print_operand): Adjust 'A' case.

2015-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68559
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Move
	peeling for gap checks ...
	* tree-vect-stmts.c (vectorizable_load): ... here and relax for SLP.
	* tree-vect-loop.c (vect_analyze_loop_2): Re-set
	LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.

2015-11-27  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't declare.
	* config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
	(nvptx_record_fndecl): Don't return value, remove force
	argument. Require fndecl.
	(nvptx_record_libfunc): New.
	(nvptx_record_needed_decl): Deteermine how to record decl here.
	(nvptx_maybe_record_fnsym): New.
	(nvptx_expand_call): Don't record libfuncs here,
	(nvptx_maybe_convert_symbolic_operand): Use
	nvptx_maye_record_fnsym.
	(nvptx_assemble_integer): Reimplement with single switch.
	(nvptx_output_call_insn): Register libfuncs here.
	(nvptx_file_end): Adjust  nvptx_record_fndecl call.
	* config/nvptx/nvptx.md (expand_movdi): Don't call
	nvptx_record_needed_decl.

2015-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68553
	* tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
	generation for 1:1 permutations.
	(vect_transform_slp_perm_load): Detect 1:1 permutations.

2015-11-27  Bernd Schmidt  <bschmidt@redhat.com>

	* gimple.h (nonbarrier_call_p): Declare.
	* gimple.c (nonbarrier_call_p): New function.
	* tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
	Also increment call phase for ASMs with vdef and potential barrier
	calls.

2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
	multiple_sets.
	(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
	are not modified by the final modified insns in the basic blocks.

2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68506
	* ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
	first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
	blocks.

2015-11-27  Martin Liska  <mliska@suse.cz>

	PR c++/68312
	* vec.h (release_vec_vec): New function.

2015-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68552
	* optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
	(expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
	or whether v0 == v1.

2015-11-27  Martin Liska  <mliska@suse.cz>

	* tree-ssa-uninit.c: Fix whitespaces in the source file.
	The change is just automatical.

2015-11-27  Martin Liska  <mliska@suse.cz>

	* tree-chkp.c (chkp_make_static_bounds): Release buffer
	used for string.

2015-11-27  Martin Liska  <mliska@suse.cz>

	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
	Do not release memory for comp_alias_ddrs.
	* tree-vect-loop.c (destroy_loop_vec_info): Release
	the memory for all loop_vec_info.

2015-11-27  Martin Liska  <mliska@suse.cz>

	* ipa-devirt.c (ipa_devirt): Use auto_vec instead
	of a local-scope vec.
	(struct final_warning_record): Use auto_vec instead of vec.

2015-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68553
	* tree-vect-slp.c (vect_get_mask_element): Remove.
	(vect_transform_slp_perm_load): Implement in a simpler way.

2015-11-26  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/67753
	PR rtl-optimization/64164
	* function.c (assign_parm_setup_block): Right-shift
	upward-padded big-endian args when bypassing the stack slot.

2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>

	* doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
	`-mcompact-branches='.
	(MIPS Options): Likewise.

2015-11-26  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (build/genmatch.o): Depend on internal-fn.def.

2015-11-26  David Edelsohn  <dje.gcc@gmail.com>

	* doc/install.texi (Prerequisites): Increase ISL requirement to
	0.14 or 0.15.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/arm_neon.h
	(vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
	(vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
	(vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
	(vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
	(vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
	(vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
	(vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
	(vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
	(vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
	(vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
	(vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
	(vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
	(vqrdmlahq_s16, vqrdmlahq_s32): New.
	(vqrdmlsh_s16, vqrdmlsh_s32): New.
	(vqrdmlshq_s16, vqrdmlshq_s32): New.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
	ARM_FEATURE_QRDMX.

2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>

	PR debug/53927
	* tree-nested.c (finalize_nesting_tree_1): Append a field to
	hold the frame base address.
	* dwarf2out.c (gen_subprogram_die): Generate for
	DW_AT_static_link a location description that computes the value
	of this field.

2015-11-26  Tom de Vries  <tom@codesourcery.com>

	revert:
	2015-11-25  Tom de Vries  <tom@codesourcery.com>

	* cfgloop.c (find_single_latch): New function, factored out of ...
	(flow_loops_find): ... here.
	(verify_loop_structure): Improve verification of loop->latch.
	* cfgloop.h (find_single_latch): Declare.
	* omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-simd-builtins.def:
	Add missing changes from r230962.

2015-11-26  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
	arg with name.  Don't deal with split regs.  Tweak formatting.
	(nvptx_expand_call): Adjust write_func_decl_from_insn call.
	(nvptx_output_call_insn): Don't deal with split regs here.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-simd-builtins.def
	(sqrdmlah, sqrdmlsh): New.
	(sqrdmlah_lane, sqrdmlsh_lane): New.
	(sqrdmlah_laneq, sqrdmlsh_laneq): New.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_sqmovun<mode>): Fix some white-space.
	(aarch64_<sur>qmovun<mode>): Likewise.
	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
	* config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
	(UNSPEC_SQRDMLSH): New.
	(SQRDMLH_AS): New.
	(rdma_as): New.

2015-11-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66721
	* tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
	iteration cost earlier.  Re-do analysis without SLP when
	vectorization using SLP fails and without has a chance to succeed.

2015-11-26  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_simplify::gen_1): For generic wrap all
	multi-result-use captures in a SAVE_EXPR.

2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
	(TARGET_SIMD_RDMA): New.

2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (subst): Do not return clobber of zero in widening mult
	case.  Just return x unchanged if it is a no-op substitution.

2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/68416
	* config/i386/i386.h (enum reg_class): Add
	bounds registers to ALL_REGS.

2015-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68128
	* tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
	* gimplify.c: Include gimple-walk.h.
	(enum gimplify_omp_var_data): Add GOVD_WRITTEN.
	(omp_notice_variable): Set flags to n->value if n already
	exists in target region, but we need to jump to do_outer.
	(omp_shared_to_firstprivate_optimizable_decl_p,
	omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
	functions.
	(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
	on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
	not modified in the body.  Call omp_mark_stores for outer
	contexts on OMP_CLAUSE_SHARED clauses if they could be written
	in the body or on OMP_CLAUSE_LASTPRIVATE.
	(gimplify_adjust_omp_clauses): Add body argument, call
	omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
	Set OMP_CLAUSE_SHARED_READONLY
	on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
	not modified in the body.  Call omp_mark_stores for outer
	contexts on OMP_CLAUSE_SHARED clauses if they could be written
	in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
	without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
	(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
	gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
	gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
	non-local vars or local vars referenced from nested routines.
	* omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
	attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
	TREE_READONLY, don't call use_pointer_for_field with non-NULL
	second argument until we are sure we are keeping OMP_CLAUSE_SHARED.

2015-11-26  Paolo Bonzini  <bonzini@gnu.org>

	* doc/implement-c.texi (Integers Implementation): Make GCC's promises
	about signed left shift stronger and clarify the cases when they're
	broken.

2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/67226
	* calls.c (store_one_arg): Take into account
	crtl->args.pretend_args_size when checking for overlap between
	arg->value and argblock + arg->locate.offset during sibcall
	optimization.

2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (cbranch<mode>4): Use
	aarch64_fp_compare_operand.
	(store_pairsf): Use aarch64_reg_or_fp_zero.
	(store_pairdf): Likewise.
	(cstore<mode>4): Use aarch64_fp_compare_operand.
	(cmov<mode>6): Likewise.
	* config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.

2015-11-25  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68453
	* graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
	not redirect edges already pointing to their destination.
	(translate_isl_ast_node_for): Split edges after loops to create
	basic blocks for close phi nodes.  Save merge points at the end of
	a loop guard.
	(translate_isl_ast_node_if): Save merge points at the end of the
	if region.
	(add_close_phis_to_outer_loops): New.
	(add_close_phis_to_merge_points): New.
	(copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
	(copy_bb_and_scalar_dependences): Do not split basic blocks on
	loop close phi locations.

2015-11-25  Jan Hubicka  <jh@suse.cz>

	* ipa-visibility.c (cgraph_externally_visible_p,
	varpool_node::externally_visible_p): When doing incremental linking,
	hidden symbols may be still used later.
	(update_visibility_by_resolution_info): Do not drop weak during
	incremental link.
	(function_and_variable_visibility): Fix formating.
	* flag-types.h (lto_linker_output): Declare.
	* common.opt 9flag_incremental_link): New flag.

2015-11-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (wb constraint): New constraint for
	ISA 3.0 d-form scalar addressing.

	* config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
	for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
	Altivec registers.  Add wb constraint for Altivec registers with
	D-form addressing.  If we have ISA 3.0 d-form support, undo
	secondary reload support for using FPR registers if we want to do
	D-form addressing.
	(rs6000_debug_reg_global): Likewise.
	(rs6000_setup_reg_addr_masks): Likewise.
	(rs6000_init_hard_regno_mode_ok): Likewise.
	(rs6000_secondary_reload): Likewise.
	(rs6000_preferred_reload_class): Likewise.
	(rs6000_secondary_reload_class): Likewise.

	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
	constraint.

	* config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
	for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
	(f32_lm2): Likewise.
	(f32_li2): Likewise.
	(f32_sr2): Likewise.
	(f32_sm2): Likewise.
	(f32_si2): Likewise.
	(f64_p9): Likewise.
	(extendsfdf2_fpr): Likewise.
	(mov<mode>_hardfloat): Likewise.
	(mov<mode>_hardfloat32): Likewise.
	(mov<mode>_hardfloat64): Likewise.

	* doc/md.texi (RS/6000 constraints): Document wb constraint.
	Fixup we constraint documentation.

2015-11-25  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (pass_expand_omp_ssa::clone): New function.
	* passes.def: Add pass_oacc_kernels pass group.
	* tree-ssa-loop-ch.c (pass_ch::clone): New function.

2015-11-25  Tom de Vries  <tom@codesourcery.com>

	* tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
	Declare.
	* tree-ssa-loop.c (gate_oacc_kernels): New static function.
	(pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
	(class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
	(make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.

2015-11-25  Jan Hubicka  <hubicka@ucw.cz>

	* timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
	TV_IPA_LTO_OUTPUT): New.
	* lto-compress.c: Include timevar.h
	(lto_end_compression, lto_end_uncompression): Add timers.
	* langhooks.c: Include timevar.h.
	(lhd_append_data): Add timer.

2015-11-25  Jan Hubicka  <hubicka@ucw.cz>

	* varasm.c (default_elf_asm_output_limited_string,
	default_elf_asm_output_ascii): Replace fprintf by putc.

2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/67954
	* lra-constraints.c (curr_insn_transform): Add check on scratch
	pseudo when change class to NO_REGS.  Add an assert.

2015-11-25  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
	constraint is 'n'.
	* config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg number.
	(nvptx_write_function_decl): Number args from 0.
	(nvptx_declare_function_name): Likewise.
	(nvptx_function_incoming_arg): Likewise.
	(nvptx_output_call_insn): Correct formatting.

2015-11-25  David Sherwood  <david.sherwood@arm.com>

	* optabs.def: Add new optabs fmax_optab/fmin_optab.
	* internal-fn.def: Add new fmax/fmin internal functions.
	* doc/md.texi: Add fmin and fmax patterns.

2015-11-25  Jason Merrill  <jason@redhat.com>

	PR c++/68385
	* tree.c (integer_zerop, integer_onep, integer_each_onep)
	(integer_all_onesp, integer_minus_onep, integer_pow2p)
	(integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
	(real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.

2015-11-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/68528
	* fold-const.c (fold_binary_loc): Do not call negate_expr_p
	on stripped operands.

2015-11-25  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (walk_args_for_params): Delete.
	(nvptx_declare_function_name): Move assignments next to register
	declarations, and process params here.

2015-11-25  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
	both the symbol and the "dot" symbol for function descriptors. Fix
	inversion for rename of symbols with dollar sign.

2015-11-25  Tom de Vries  <tom@codesourcery.com>

	* cfgloop.c (find_single_latch): New function, factored out of ...
	(flow_loops_find): ... here.
	(verify_loop_structure): Improve verification of loop->latch.
	* cfgloop.h (find_single_latch): Declare.
	* omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.

2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
	(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
	(STARTFILE_SPEC): Use %(startfile_vtv).
	(ENDFILE_SPEC): Use %(endfile_vtv).
	(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
	ENDFILE_VTV_SPEC.

	* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.

2015-11-25  Bernd Schmidt  <bschmidt@redhat.com>

	* ifcvt.c (noce_mem_write_may_trap_or_fault_p,
	noce_can_store_speculate): Delete.
	(noce_process_if_block): Don't try to handle single MEM stores.
	* rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
	* alias.c (memory_must_be_modified_in_insn_p): Delete.

2015-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68435
	* ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
	for conflicts between a, b and the set destinations.

2015-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68517
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
	Properly handle zero-sized types.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c: Include gimplify.h
	(set_cond_stmt_execution_predicate,
	set_switch_stmt_execution_predicate): Be sure to not leak locations
	to function body.

2015-11-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/67089
	* tree-ssa-math-opts.c (uaddsub_overflow_check_p,
	match_uaddsub_overflow): New functions.
	(pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.

2015-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68492
	* tree-vect-slp.c (vect_build_slp_tree): Consistently build up
	op from scalars after operand swapping.

2015-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68502
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
	check that the step is a multiple of the type size.

2015-11-24  Michael Collison  <michael.collison@linaro.org>

	* config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
	* config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.

2015-11-24  Steve Ellcey  <sellcey@imgtec.com>

	* frame-header-opt.c (gate): Check for optimize > 0.
	(has_inlined_assembly): New function.
	(needs_frame_header_p): Remove is_leaf_function check,
	add argument type check.
	(callees_functions_use_frame_header): Add is_leaf_function
	and has_inlined_assembly calls..
	(set_callers_may_not_allocate_frame): New function.
	(frame_header_opt): Add is_leaf_function call, add
	set_callers_may_not_allocate_frame call.
	* config/mips/mips.c (mips_compute_frame_info): Add check
	to see if callee saved regs can be put in frame header.
	(mips_expand_prologue): Add check to see if step1 is zero,
	fix cfa restores when using frame header to store regs.
	(mips_can_use_return_insn): Check to see if registers are
	stored in frame header.
	* config/mips/mips.h (machine_function): Add
	callers_may_not_allocate_frame and
	use_frame_header_for_callee_saved_regs fields.

2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68520
	* shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
	its bit was already set in BB_WITH.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
	double check that type is main variant.
	* tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
	variant.
	(verify_type_variant): Verify that variants have no
	TYPE_ALIAS_SET_KNOWN_P set
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
	streaming so constant fields come first; stream TYPE_ALIAS_SET==0
	only for main variants; stream TYPE_ALIAS_SET as a bit.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
	accordingly.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (make_vector_type): Properly compute canonical type of the
	main variant.
	(verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
	a main variant.

2015-11-24  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
	VOIDmode, don't alter incoming mode.
	(nvptx_split_reg_p): Delete.
	(write_one_arg, walk_args_for_param, nvptx_declare_function_name,
	write_func_decl_from_insn, nvptx_output_call_insn): Adjust
	maybe_split_mode calls.
	(nvptx_print_operand): Use maybe_split_mode.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
	only for types where LTO sets them.
	* tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
	(make_vector_type): Likewise.
	(gimple_canonical_types_compatible_p): Use canonical_type_used_p.
	* tree.h (canonical_type_used_p): New inline.
	* alias.c (get_alias_set): Handle structural equality for all
	types that pass canonical_type_used_p.
	(record_component_aliases): Look through all types with
	record_component_aliases for possible pointers; sanity check that
	the alias sets match.

2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (free_node): New function.
	(type_hash_canon): Use it.
	* tree.h (free_node): Declare.

2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
	(Fv2): New mode attribute to be used when ISA 2.07 instructions
	are used on SF values, and ISA 2.06 instructions on DF values.
	(add<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(div<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(sqrt<mode>2): Use <Fv2> instead of <Fv>.
	(fre<Fs>): Use <Fv2> instead of <Fv>.
	(rsqrt<mode>2): Use <Fv2> instead of <Fv>.
	(cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
	(xsrdpi<mode>): Add support for the lround function.
	(lround<mode>di2): Likewise.
	(fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
	(fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
	(nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
	(nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.

2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/67984
	* graphite-isl-ast-to-gimple.c (is_constant): New.
	(get_rename): Call is_constant.
	(get_new_name): Same.

2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c: Only include graphite.h.
	* graphite-isl-ast-to-gimple.c: Same.
	* graphite-optimize-isl.c: Same.
	* graphite-poly.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.
	* graphite-isl-ast-to-gimple.h: Move to graphite.h.
	* graphite-poly.h: Same.
	* graphite-scop-detection.h: Same.
	* graphite.h: New.

2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
	DW_TAG_namespace for IMPORTED_DECL declarations.  Call
	dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
	function already takes care of checking what it can emit.

2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* doc/invoke.texi (-fpic): Add the AArch64 limit.
	(-fPIC): Add AArch64.

2015-11-24  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-im.c (tree_ssa_lim): Make static.
	(pass_lim::execute): Allow to run outside pass_tree_loop.

2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (add<mode>3):
	Block early expansion into 2 add instructions.
	(add<mode>3_pluslong): New pattern to combine complex
	immediates into 2 additions.

2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/66217
	PR target/67677
	PR target/68332
	* config/rs6000/predicates.md (and_operand): Check that the operand
	is a const_int before calling rs6000_is_valid_and_mask.

2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*condjump): Rename to...
	(condjump): ... This.
	(*compare_condjump<mode>): New define_insn_and_split.
	(*compare_cstore<mode>_insn): Likewise.
	(*cstore<mode>_insn): Rename to...
	(cstore<mode>_insn): ... This.
	* config/aarch64/iterators.md (CMP): Handle ne code.
	* config/aarch64/predicates.md (aarch64_imm24): New predicate.

2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>

	PR target/68497
	* config/i386/i386.c (output_387_binary_op): Fix assertion for
	-fno-checking case.

2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
	(val_ssa_equiv_hash_traits::remove): Likewise.
	(pass_uncprop::execute): Adjust.

2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* hash-map-traits.h (simple_hashmap_traits ::remove): call
	destructors on values that are being removed.
	* mem-stats.h (hash_map): Pass type of values to
	simple_hashmap_traits.
	* tree-sra.c (sra_deinitialize): Remove work around for hash
	maps not destructing values.
	* genmatch.c (sinfo_hashmap_traits): Adjust.
	* tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.

2015-11-24  Richard Biener  <rguenther@suse.de>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR middle-end/68375
	* cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
	bogus assertion.

2015-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/68483
	* tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
	is valid vec_shr pattern, don't lower it even if can_vec_perm_p
	returns false.
	* optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
	whenever first is nelt or above.  Don't mask expected with
	2 * nelt - 1.

2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR c/68337
	* gimple-fold.c: Include ipa-chkp.h.
	(gimple_fold_builtin_memory_op): Don't fold call if we
	are going to instrument it and it may copy pointers.

2015-11-24  Bernd Schmidt  <bschmidt@redhat.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68194
	PR rtl-optimization/68328
	PR rtl-optimization/68185
	* ree.c (combine_reaching_defs): Reject copy_needed case if
	copies_list is not empty.

2015-11-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/68221
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
	use mem_ref_offset.

2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68381
	* combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
	is poisoned.

2015-11-23  Nick Clifton  <nickc@redhat.com>
	    Jeff Law  <law@redhat.com>

	* ree.c (add_removable_extension): Avoid mis-optimizing cases where
	the source/dest of the target extension require a different number of
	hard registers.
	(combine_set_extension): Remove #if 0 code.

2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68314
	* graphite-optimize-isl.c (optimize_isl): Do not call
	isl_union_map_is_equal.
	* graphite-poly.c (new_scop): Remove original_schedule.
	(free_scop): Same.
	* graphite-poly.h (struct scop): Same.
	* graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons):
	Remove.
	(build_pbb_scattering_polyhedrons): Add back.
	(build_scop_minimal_scattering): Remove.
	(build_scop_scattering): Add back.
	(build_scop_original_schedule): Remove.
	(build_poly_scop): Revert to only call build_scop_scattering.

2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68493
	* graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
	missing early return when codegen_error is set.

2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68279
	* graphite-poly.c (new_scop): Remove poly_scop_p.
	* graphite-poly.h (struct scop): Same.
	(build_poly_scop): Declare.
	* graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
	(cleanup_loop_iter_dom): New.
	(build_loop_iteration_domains): Early return when scev analysis fails.
	(create_pw_aff_from_tree): Same.
	(add_condition_to_pbb): Same.
	(add_conditions_to_domain): Same.
	(add_conditions_to_constraints): Same.
	(build_scop_iteration_domain): Same.
	(build_poly_scop): Same.  Do not initialize poly_scop_p.
	* graphite-sese-to-poly.h: Remove.
	* graphite.c: Do not include graphite-sese-to-poly.h.
	(graphite_transform_loops): Stop before code generation when
	build_poly_scop fails.
	* sese.c (scalar_evolution_in_region): Add fixme note about scev
	analysis.

2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
	Remove call to update_ssa.
	* sese.c (sese_insert_phis_for_liveouts): Same.

2015-11-23  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/68455
	* tree-vrp.c (extract_range_from_binary_expr_1): Don't call
	extract_range_from_multiplicative_op_1 on symbolic ranges.

2015-11-23  Richard Henderson  <rth@redhat.com>

	* optabs.def (uaddv4_optab, usubv4_optab): New.
	* internal-fn.c (expand_addsub_overflow): Use them.
	* doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.

	* config/i386/i386.c (ix86_cc_mode): Extend add overflow check
	to reversed operands.
	* config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
	(*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
	(*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
	(*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
	(*add<SWI>3_cconly_overflow_2): New.
	(*add<SWI>3_cc_overflow_2): New.
	(*addsi3_zext_cc_overflow_2): New.

2015-11-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68465
	* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
	Also record equalities from multiple predecessor blocks if
	only one non-backedge exists.

2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68363
	* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
	that are not INSN_P.

2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_gimple_fold_builtin): Fold FMULX.

2015-11-23  David Edelsohn  <dje.gcc@gmail.com>

	* system.h: Don't poison calloc and strdup if USES_ISL is defined.
	* graphite-dependences.c: Define USES_ISL.  Include ISL header files
	after GCC header files and before graphite header files.
	* graphite-dependences.c: Same.
	* graphite-isl-ast-to-gimple.c: Same.
	* graphite-optimize-isl.c: Same.
	* graphite-poly.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.

2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
	    Jiong Wang  <jiong.wang@arm.com>

	PR tree-optimization/68317
	PR tree-optimization/68326
	* tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
	final min and max are not infinity.

2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68327
	* tree-vect-loop.c (vect_determine_vectorization_factor): Don't
	compute vectype for non-relevant mask producers.
	* tree-vect-stmts.c (vectorizable_comparison): Check stmt
	relevance earlier.

2015-11-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68460
	* tree-parloops.c (gather_scalar_reductions): Also call
	free_stmt_vec_info_vec if simple_loop_info == NULL.

2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>

	* opts.c (finish_options): Allow -fsanitize-recover=address for
	userspace sanitization.
	* asan.c (asan_expand_check_ifn): Redefine recover_p.
	* doc/invoke.texi (fsanitize-recover): Update documentation.

2015-11-23  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.

2015-11-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68445
	* tree-vect-slp.c (vect_create_mask_and_perm): Properly use
	two different strides.

2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
	* config/s390/s390.c (s390_check_symref_alignment): Use new
	symref flags, early abort on wrong alignment
	(s390_secondary_reload): Use new symref flags.
	(s390_encode_section_info): Likewise.
	* config/s390/predicates.md: Likewise.

2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/68390
	* config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
	for indirect function call.

2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>

	* config/aarch64/aarch64-simd.md
	(*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
	(*aarch64_mulx_elt<mode>, VDQF): Likewise.
	(*aarch64_mulx_elt_to_64v2df): Likewise.
	(*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
	* config/aarch64/arm_neon.h (vmulx_lane_f32): New.
	(vmulx_lane_f64): Likewise.
	(vmulxq_lane_f32): Refactored & moved.
	(vmulxq_lane_f64): Likewise.
	(vmulx_laneq_f32): New.
	(vmulx_laneq_f64): Likewise.
	(vmulxq_laneq_f32): Likewise.
	(vmulxq_laneq_f64): Likewise.
	(vmulxs_lane_f32): Likewise.
	(vmulxs_laneq_f32): Likewise.
	(vmulxd_lane_f64): Likewise.
	(vmulxd_laneq_f64): Likewise.

2015-11-21  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
	In LTO we do not compute TYPE_CANONICAL of pointers.
	(gimple_canonical_types_compatible_p): Improve coments; sanity check
	that pointers do not have canonical type that would make us believe
	they are different.
	* alias.c (get_alias_set): Do structural type equality on pointers;
	enable pointer path for LTO; also glob pointer to vector with pointer
	to vector element; glob pointers and references for LTO; do more strict
	sanity checking about build_pointer_type returning the canonical type
	which is also the main variant.
	(record_component_aliases): When component type is pointer and we
	do LTO; record void_type_node alias set.

2015-11-21  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.

	* config/nvptx/nvptx.c (write_function_decl_and_comment): Print
	leading blank line.
	(write_func_decl_from_insn): Likewise.
	(init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
	(nvptx_file_end): Likewise.
	(nvptx_function_end): Undent output.
	(nvptx_expand_call): Fix formatting.
	(nvptx_output_call_insn): Indent output.
	* config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
	ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.

2015-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/66432
	* tree-inline.c (copy_debug_stmt): If
	gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
	in decl_debug_args, don't call remap_gimple_op_r on it.

2015-11-07  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
	do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
	Check that all record types are complete.
	* ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
	compare alias sets for types w/o alias sets.

2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (umulxhi_vis): Move around.
	(*umulxhi_sp64): Likewise.
	(umulxhi_v8plus): Likewise.
	(xmulx_vis): Likewise.
	(*xmulx_sp64): Likewise.
	(xmulx_v8plus): Likewise.
	(xmulxhi_vis): Likewise.
	(*xmulxhi_sp64): Likewise.
	(xmulxhi_v8plus): Likewise.

2015-11-20  David Malcolm  <dmalcolm@redhat.com>

	PR 62314
	* diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
	(class layout): Update comment
	(layout::print_any_fixits): New method.
	(layout::move_to_column): New method.
	(diagnostic_show_locus): Add call to layout.print_any_fixits.

2015-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/68221
	* omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
	has non-zero bias, subtract it in integer type instead of
	pointer plus of negated bias.

	PR middle-end/68339
	* omp-low.c (expand_simd_clones): Call node->get_body () before
	allocating stuff in GC.

2015-11-20  Jim Wilson  <jim.wilson@linaro.org>

	* tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.

2015-11-20  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64.md (predicated): Copy attribute from
	"arm.md".
	* config/arm/arm.md (predicated): Added description.

2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_option_override): Require TARGET_32BIT
	for unaligned_access.
	* config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
	from matching condition.
	(unaligned_loadhis): Likewise.
	(unaligned_loadhiu): Likewise.
	(unaligned_storesi): Likewise.
	(unaligned_storehi): Likewise.

2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68149
	* config/arm/arm.md (unaligned_loaddi): Delete.
	(unaligned_storedi): Likewise.
	* config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
	unaligned DImode memory ops.  Instead perform two back-to-back
	unaligned SImode ops.

2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
	(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.

2015-11-20  Alan Hayward  <alan.hayward@arm.com>

	PR tree-optimization/68413
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
	evolution base
	(vectorizable_reduction): Use cached base

2015-11-20  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (build_new_reduction): Fix trailing whitespace in
	dump-file string.
	(try_create_reduction_list): Same.  Fix typo in dump-file string.

2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/md.texi (Standard Names): Move entry for addptr3 around,
	add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
	glitch in entries for cbranch4 and jump.

2015-11-20  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68373
	* tree-scalar-evolution.c (final_value_replacement_loop): Factor out
	of ...
	(scev_const_prop): ... here.
	* tree-scalar-evolution.h (final_value_replacement_loop): Declare.
	* tree-parloops.c (try_create_reduction_list): Call
	final_value_replacement_loop.

2015-11-20  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/52272
	* tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
	(struct iv_common_cand_hasher): New struct.
	(iv_common_cand_hasher::hash): New function.
	(iv_common_cand_hasher::equal): New function.
	(struct ivopts_data): New fields, iv_common_cand_tab and
	iv_common_cands.
	(tree_ssa_iv_optimize_init): Initialize above fields.
	(record_common_cand, common_cand_cmp): New functions.
	(add_iv_candidate_derived_from_uses): New function.
	(add_iv_candidate_for_use): Record iv_common_cands derived from
	iv use in hash table, instead of adding candidates directly.
	(add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
	(record_important_candidates): Add important candidates to iv uses'
	related_cands.  Always keep related_cands for future use.
	(try_add_cand_for): Use iv uses' related_cands.
	(free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
	in struct ivopts_data, iv_common_cand_tab and iv_common_cands.

2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("bswaphi2"): New pattern.

2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.md (GPR1_REGNUM): New constant.
	("*trunc<BFP:mode><DFP_ALL:mode>2")
	("*trunc<DFP_ALL:mode><BFP:mode>2")
	("trunc<BFP:mode><DFP_ALL:mode>2")
	("trunc<DFP_ALL:mode><BFP:mode>2")
	("*extend<BFP:mode><DFP_ALL:mode>2")
	("*extend<DFP_ALL:mode><BFP:mode>2")
	("extend<BFP:mode><DFP_ALL:mode>2")
	("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.

2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68428
	* graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
	over basic blocks outside the scop.

2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/68341
	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
	gcc_unreachable and safely fail codegen.
	(copy_loop_close_phi_args): Do not insert merge phis in a basic
	block with loop phi nodes.
	(edge_for_new_close_phis): New.
	(copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.

2015-11-19  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
	* config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
	(nvptx_declare_objec_name): Likewise.

2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
	(get_false_edge_from_guard_bb): Move...
	* sese.c (get_false_edge_from_guard_bb)
	(get_true_edge_from_guard_bb): ... here.

2015-11-19  David Edelsohn  <dje.gcc@gmail.com>

	Revert
	2015-11-18  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
	type-limits warning.


2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* tree.h (desired_pro_or_demotion_p): New function.
	* tree-vrp.c (simplify_cond_using_ranges): Call it.

2015-11-19  Michael Matz  <matz@suse.de>

	PR rtl-optimization/68392
	* fwprop.c (update_uses): Use flag_checking instead of
	gcc_checking_assert.

2015-11-19  David Malcolm  <dmalcolm@redhat.com>

	* doc/gty.texi (Support for inheritance): Fix missing
	parentheses in example.

2015-11-19  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/68431
	* tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.

2015-11-19  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
	atomic_exchange<mode>): Input values can be immediates.

2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/61313
	* configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
	by the user.
	* configure: Regenerate.

2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/68408
	* config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
	(DTORS_SECTION_ASM_OP): Likewise.

2015-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/68376
	* ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
	encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.

2015-11-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/68117
	* tree-ssa.c (delete_tree_ssa): Revert removal of call to
	redirect_edge_var_map_destroy.

2015-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/67770
	* config/i386/i386.md (simple_return): Disable if
	ix86_static_chain_on_stack is true.

2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/68393
	* internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
	destinations.

2015-11-18  Jeff Law  <law@redhat.com>

	PR tree-optimization/68198
	* tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
	between threading a multi-way branch and a thread path that contains
	a multi-way branch.  Disallow the case where a path contains a
	multi-way branch and does not thread a multi-way branch.
	(thread_through_all_blocks): Update comment.

2015-11-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/65083
	* ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
	(atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
	(atomic_flag_clear, atomic_flag_clear_explicit): Declare as
	functions before defining as macros.

2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
	(nvptx_record_offload_symbol): Remove code compensating for lack
	of default dimension handling.
	(nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.

2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
	type to bool for early exit.
	(translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
	in case of error.
	(translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
	(add_phi_arg_for_new_expr): Enable codegen for if-block where one
	predecessor dominates the other.
	(translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
	element is not found it returns -1.
	(translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
	out early when codegen fails.
	(graphite_regenerate_ast_isl): Remove codegen region when pending
	phis could not be generated.

2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
	semicolon.
	(class translate_isl_ast_to_gimple): Indentation.
	(translate_pending_phi_nodes): Comment.
	(add_parameters_to_ivs_params): Moved from sese.c inside class
	translate_isl_ast_to_gimple.
	(get_max_schedule_dimensions): Same.
	(generate_isl_context): Same.
	(extend_schedule): Same.
	(generate_isl_schedule): Same.
	(set_options): Same.
	(scop_to_isl_ast): Same.
	(is_valid_rename): Same.
	(get_rename): Same.
	(get_rename_from_scev): Same.
	(get_def_bb_for_const): Same.
	(get_new_name): Same.
	(collect_all_ssa_names): Same.
	(copy_loop_phi_args): Same.
	(copy_loop_phi_nodes): Same.
	(copy_loop_close_phi_args): Same.
	(copy_loop_close_phi_nodes): Same.
	(copy_cond_phi_args): Same.
	(copy_cond_phi_nodes): Same.
	(graphite_copy_stmts_from_block): Same.
	(copy_bb_and_scalar_dependences): Same.
	(add_phi_arg_for_new_expr): Same.
	(rename_uses): Same.
	(set_rename): Same.
	(set_rename_for_each_def): Same.
	(gsi_insert_earliest): Same.
	(rename_all_uses): Same.
	(codegen_error_p): Same.
	(print_isl_ast_node): Same.
	(translate_isl_ast_for_loop): Call function codegen_error_p.
	(translate_isl_ast_to_gimple::translate_isl_ast): Same.
	(translate_isl_ast_node_user): Make nb_loops const and release
	iv_map before exit.
	(get_true_edge_from_guard_bb): Move all free-functions early.
	(get_false_edge_from_guard_bb): Same.
	(bb_contains_loop_close_phi_nodes): Same.
	(bb_contains_loop_phi_nodes): Same.
	(is_loop_closed_ssa_use):  Same.
	(number_of_phi_nodes): Same.
	(phi_uses_name): Same.
	(later_of_the_two): Same.
	(substitute_ssa_name):
	(get_edges): Same.
	(get_loc): Same.
	(get_loop_init_value): Same.
	(find_init_value): Same.
	(find_init_value_close_phi): Same.
	(ast_build_before_for): Same.
	(graphite_regenerate_ast_isl): Formatting changes.
	* graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
	* sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
	(set_rename): Same.
	(gsi_insert_earliest): Same.
	(collect_all_ssa_names): Same.
	(rename_all_uses): Same.
	(rename_uses): Same.
	(get_def_bb_for_const): Same.
	(copy_loop_phi_nodes): Same.
	(copy_loop_close_phi_args): Same.
	(copy_loop_close_phi_nodes): Same.
	(copy_cond_phi_args): Same.
	(copy_cond_phi_nodes): Same.
	(set_rename_for_each_def): Same.
	(graphite_copy_stmts_from_block): Same.
	(copy_bb_and_scalar_dependences): Same.
	(if_region_set_false_region): Same.
	(scev_analyzable_p): Same.
	* sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.

2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
	commit from r125920 for FreeBSD.

2015-11-18  Jason Merrill  <jason@redhat.com>

	* ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
	to be vecs of vecs.
	(add_finalizer): Split out from ggc_internal_alloc.
	(ggc_handle_finalizers): Run finalizers for the current depth.
	(init_ggc, ggc_pch_read): Reserve space for finalizers.

2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/68410
	* config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
	from || expression.

2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	* config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
	atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
	and atmega328pb.
	* doc/avr-mmcu.texi: Regenerate.

2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
	(pseudo_node_t, struct bracket, bracket_vec_t): New types.
	(struct bb_sese): New struct.
	(bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
	(BB_GET_SESE, BB_SET_SESE): Define.
	(nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
	(nvptx_find_sese): New.
	(nvptx_neuter_pars): Find SESE regions when optimizing.

2015-11-18  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
	type-limits warning.

2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/68406
	* hash-set.h (hash_set::traverse): Expand Key typedef.

2015-11-18  Martin Liska  <mliska@suse.cz>

	* config/arm/arm.c (arm_valid_target_attribute_p): Finalize
	options struct.

2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (global_lock_var): New.
	(nvptx_global_lock_addr): New.
	(nvptx_lockless_update): Recomment and adjust for clarity.
	(nvptx_lockfull_update): New.
	(nvptx_reduction_update): New.
	(nvptx_goacc_reduction_fini): Call it.

2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>

	* regrename.h (struct du_head): Add target_data_1 and target_data_2
	fields.
	* regrename.c (create_new_chain): Clear entire struct after allocating.

	* config/i386/i386.opt (mmitigate-rop): New option.
	* doc/invoke.texi (mmitigate-rop): Document.
	* config/i386/i386.c: Include "regrename.h".
	(ix86_rop_should_change_byte_p, reg_encoded_number,
	ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
	static functions.
	(ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
	* config/i386/i386.md (attr "modrm_class"): New.
	(cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
	x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
	(x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.

2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/68405
	* config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.

2015-11-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68157
	* tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
	pow_stmt or mul_stmt from stmt's uid.
	(reassociate_bb): Set uid of mul_stmt from stmt's uid.

2015-11-18  Martin Liska  <mliska@suse.cz>

	* haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.

2015-11-18  Martin Liska  <mliska@suse.cz>

	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
	Fix GNU coding style.
	(find_def_preds): Use auto_vec.
	(destroy_predicate_vecs): Change signature of the function.
	(prune_uninit_phi_opnds_in_unrealizable_paths): Use the
	new signature.
	(simplify_preds_4): Use destroy_predicate_vecs instread of
	just releasing preds vector.
	(normalize_preds): Likewise.
	(is_use_properly_guarded): Use new signature of
	destroy_predicate_vecs.
	(find_uninit_use): Likewise.

2015-11-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67790
	* tree-vect-loop.c (vect_is_simple_reduction_1): Remove
	IL rewrite for MINUS_EXPR reductions, rename back to ...
	(vect_is_simple_reduction): ... this, removing the wrapper.
	(vect_force_simple_reduction): Adjust.
	(vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
	reductions and make use if reduc_index in all places.  For
	the final reduction of MINUS_EXPR use PLUS_EXPR.

2015-11-18  Alan Modra  <amodra@gmail.com>

	* configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
	to ld.
	* configure: Regenerate.

2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.

2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
	uses of ssa_name with constant.

2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
	something changed.

2015-11-17  Tom de Vries  <tom@codesourcery.com>

	* cfgloop.h (struct loop): Add in_oacc_kernels_region field.
	* omp-low.c (mark_loops_in_oacc_kernels_region): New function.
	(expand_omp_target): Call mark_loops_in_oacc_kernels_region.

2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>

	* regrename.c (regrename_find_superclass): New function, code moved
	from ...
	(rename_chains): ... here.  Call it.
	* regrename.h (regrename_find_superclass): Declare.

	* regrename.c (record_out_operands): Terminate earlyclobbered
	operands here.

	PR target/66785
	* regrename.c (record_operand_use): Keep track of failed operands
	and stop appending if we see any.
	* regrename.h (struct operand_rr_info): Add a failed field and shrink
	n_chains to short.

2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>

	PR 48568
	* doc/extend.texi (Common Function Attributes) [visibility]:
	Add cross-references to matching variable and type attributes.
	(Common Variable Attributes) [visibility]: Add missing entry.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
	entries that map directly to optabs.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/i386.c (ix86_builtin_vectorized_function): Remove
	entries that map directly to optabs.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
	* internal-fn.c (direct_internal_fn_array): Update accordingly.
	* tree-vectorizer.h (vectorizable_function): Delete.
	* tree-vect-stmts.c: Include internal-fn.h.
	(vectorizable_internal_function): New function.
	(vectorizable_function): Inline into...
	(vectorizable_call): ...here.  Explicitly reject calls that read
	from or write to memory.  Try using an internal function before
	falling back on the old vectorizable_function behavior.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* target.def (builtin_vectorized_function): Take a combined_fn (in
	the form of an unsigned int) rather than a function decl.
	(builtin_md_vectorized_function): New.
	* targhooks.h (default_builtin_vectorized_function): Replace the
	fndecl argument with an unsigned int.
	(default_builtin_md_vectorized_function): Declare.
	* targhooks.c (default_builtin_vectorized_function): Replace the
	fndecl argument with an unsigned int.
	(default_builtin_md_vectorized_function): New function.
	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
	New hook.
	* doc/tm.texi: Regenerate.
	* tree-vect-stmts.c (vectorizable_function): Update call to
	builtin_vectorized_function, also passing internal functions.
	Call builtin_md_vectorized_function for target-specific builtins.
	* config/aarch64/aarch64-protos.h
	(aarch64_builtin_vectorized_function): Replace fndecl argument
	with an unsigned int.
	* config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
	(aarch64_builtin_vectorized_function): Update after above changes.
	Use CASE_CFN_*.
	* config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
	fndecl argument with an unsigned int.
	* config/arm/arm-builtins.c: Include case-cfn-macros.h
	(arm_builtin_vectorized_function): Update after above changes.
	Use CASE_CFN_*.
	* config/i386/i386.c: Include case-cfn-macros.h
	(ix86_veclib_handler): Take a combined_fn rather than a
	built_in_function.
	(ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
	mathfn_built_in rather than calling builtin_decl_implicit directly.
	(ix86_builtin_vectorized_function) Update after above changes.
	Use CASE_CFN_*.
	* config/rs6000/rs6000.c: Include case-cfn-macros.h
	(rs6000_builtin_vectorized_libmass): Replace fndecl argument
	with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
	than calling builtin_decl_implicit directly.
	(rs6000_builtin_vectorized_function): Update after above changes.
	Use CASE_CFN_*.  Move BUILT_IN_MD to...
	(rs6000_builtin_md_vectorized_function): ...this new function.
	(TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-patterns.c: Include internal-fn.h.
	(vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
	(BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (expand_errno_check, expand_builtin_mathfn)
	(expand_builtin_mathfn_2): Delete.
	(expand_builtin): Remove handling of functions with
	internal function equivalents.
	* internal-fn.def (SET_EDOM): New internal function.
	* internal-fn.h (set_edom_supported_p): Declare.
	* internal-fn.c (expand_SET_EDOM): New function.
	(set_edom_supported_p): Likewise.
	* tree-call-cdce.c: Include builtins.h and internal-fn.h.
	Rewrite comment at head of file.
	(is_call_dce_candidate): Rename to...
	(can_test_argument_range): ...this.  Don't check gimple_call_lhs
	or gimple_call_builtin_p here.
	(edom_only_function): New function.
	(shrink_wrap_one_built_in_call_with_conds): New function, split out
	from...
	(shrink_wrap_one_built_in_call): ...here.
	(can_use_internal_fn, use_internal_fn): New functions.
	(shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
	for calls that have an lhs.
	(pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
	(pass_call_cdce::execute): Skip blocks that are optimized for size.
	Check gimple_call_builtin_p here.  Use can_use_internal_fn for
	calls with an lhs.
	* opts.c (default_options_table): Enable -ftree-builtin-call-cdce
	at -O and above.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.h (called_as_built_in): Declare.
	* builtins.c (called_as_built_in): Make external.
	* internal-fn.h (expand_internal_call): Define a variant that
	specifies the internal function explicitly.
	* internal-fn.c (expand_load_lanes_optab_fn)
	(expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
	(expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
	(expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
	(expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
	(expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
	(expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
	(expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
	(expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
	(expand_mask_load_optab_fn, expand_mask_store_optab_fn)
	(expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
	(expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
	(expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
	(expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
	argument.
	(internal_fn_expanders): Update prototype.
	(expand_internal_call): Define a variant that specifies the
	internal function explicitly. Use it to implement the previous
	interface.
	* cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
	functions as calls to internal functions.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
	(generated_files): Likewise.
	(s-cfn-operators, cfn-operators.pd): New rules.
	(s-match): Depend on cfn-operators.pd.
	* gencfn-macros.c: Expand comment to describe -o behavior.
	(print_define_operator_list): New function.
	(main): Accept -o.  Call print_define_operator_list.
	* genmatch.c (main): Add the current directory to the include path.
	* match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
	instead.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/match-and-simplify.texi: Document the "null" identifier.
	* genmatch.c (id_base::NULL_ID): New kind.
	(null_id): New variable.
	(get_operator): Add a parameter that says whether null identifiers
	are allowed.
	(contains_id): New function.
	(lower_for): Skip substitutions that would have a null_id in
	either the match or the result.
	(parser::parse_for): Allow the null identifier to be used.
	(parser::parse_operator_list): Likewise.
	(main): Initialize null_id.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Use HYPOT and COS rather than hypot and cos.
	Use CASE_CFN_* macros.  Guard log/exp folds with
	SCALAR_FLOAT_TYPE_P.
	* genmatch.c (internal_fn): New enum.
	(fn_id::fn): Change to an unsigned int.
	(fn_id::fn_id): Accept internal_fn too.
	(add_builtin): Rename to...
	(add_function): ...this and turn into a template.
	(get_operator): Only try one variation if the original name fails.
	Only add _EXPR if the original name was all lower case.
	Try converting internal and built-in function names to their
	CFN equivalents.
	(expr::gen_transform): Use maybe_build_call_expr_loc for generic.
	(dt_simplify::gen_1): Likewise.
	(dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
	and get_call_combined_fn for generic.
	(dt_simplify::gen): Use combined_fn as the type of fn_ids.
	(decision_tree::gen): Likewise.
	(main): Use lower case in the strings for {VIEW_,}CONVERT[012].
	Use add_function rather than add_builtin.  Register internal
	functions too.
	* generic-match-head.c: Include case-cfn-macros.h.
	* gimple-fold.c (replace_stmt_with_simplification): Use
	gimple_call_combined_fn to test whether we can keep an
	existing call.
	* gimple-match.h (code_helper): Replace built_in_function
	with combined_fn.
	* gimple-match-head.c: Include fold-const-call.h, internal-fn.h
	and case-fn-macros.h.
	(gimple_resimplify1): Use fold_const_call.
	(gimple_resimplify2, gimple_resimplify3): Likewise.
	(build_call_internal, build_call): New functions.
	(maybe_push_res_to_seq): Use them.
	(gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
	rather than a built-in function.
	* tree.h (build_call_expr_internal_loc): Declare.
	(maybe_build_call_expr_loc): Likewise.
	* tree.c (build_call_expr_internal_loc_array): New function.
	(maybe_build_call_expr_loc): Likewise.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.h (mathfn_built_in): Add a variant that takes
	a combined_fn.
	* builtins.c: Include case-cfn-macros.h.
	(CASE_MATHFN): Use CASE_CFN_*.
	(CASE_MATHFN_REENT): Use CFN_ codes.
	(mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
	argument with a combined_fn.
	(mathfn_built_in): Add a variant that takes a combined_fn.
	(expand_builtin_int_roundingfn_2): Update callers accordingly.
	(fold_builtin_sincos, fold_builtin_classify): Likewise.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-patterns.c: Include case-cfn-macros.h.
	(vect_recog_pow_pattern): Use combined_fn instead of built-in codes.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-ssa-math-opts.c: Include case-cfn-macros.h.
	(execute_cse_sincos_1): Use combined_fn instead of built-in codes.
	(pass_cse_sincos::execute): Likewise.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-ssa-reassoc.c: Include case-cfn-macros.h.
	(stmt_is_power_of_op): Use combined_fn instead of built-in codes.
	(decrement_power, acceptable_pow_call): Likewise.
	(attempt_builtin_copysign): Likewise.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vrp.c: Include case-cfn-macros.h.
	(extract_range_basic): Switch on combined_fn rather than handling
	built-in functions and internal functions separately.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* fold-const.h (negate_mathfn_p): Take a combined_fn rather
	than a built_in_function.
	(tree_call_nonnegative_warnv_p): Take a combined_fn rather than
	a function decl.
	(integer_valued_real_call_p): Likewise.
	* fold-const.c: Include case-cfn-macros.h
	(negate_mathfn_p): Take a combined_fn rather than a built_in_function.
	(negate_expr_p): Update accordingly.
	(tree_call_nonnegative_warnv_p): Take a combined_fn rather than
	a function decl.
	(integer_valued_real_call_p): Likewise.
	(tree_invalid_nonnegative_warnv_p): Update accordingly.
	(integer_valued_real_p): Likewise.
	* gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
	to tree_call_nonnegative_warnv_p.
	(gimple_call_integer_valued_real_p): Likewise
	integer_valued_real_call_p.
	* gimple-ssa-backprop.c: Include case-cfn-macros.h.
	(backprop::process_builtin_call_use): Extend to combined_fn.
	(strip_sign_op_1): Likewise.
	(backprop::process_use): Don't check for built-in calls here.
	(backprop::execute): Likewise.
	(backprop::optimize_builtin_call): Update call to negate_mathfn_p.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* fold-const-call.h (fold_const_call): Replace built_in_function
	arguments with combined_fn arguments.
	* fold-const-call.c: Include case-cfn-macros.h.
	(fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
	(fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
	(fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
	built_in_function arguments with combined_fn arguments.
	* builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
	(fold_builtin_3): Update calls to fold_const_call.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* Makefile.in (HASH_TABLE_H): Add GGC_H.
	(MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
	(s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
	(build/gencfn-macros$(build_exeext): New rules.
	(genprogerr): Add cfn-macros.
	* hash-set.h (hash_set): Use the traits value_type as the key.
	* gencfn-macros.c: New file.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
	(CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
	* builtins.c (associated_internal_fn): Handle them.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.h (associated_internal_fn): Declare.
	(replacement_internal_fn): Likewise.
	* builtins.c: Include internal-fn.h
	(associated_internal_fn, replacement_internal_fn): New functions.
	* internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
	(ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
	(LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
	(RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
	(LDEXP): New functions.
	* internal-fn.c: Include recog.h.
	(unary_direct, binary_direct): New macros.
	(expand_direct_optab_fn): New function.
	(expand_unary_optab_fn): New macro.
	(expand_binary_optab_fn): Likewise.
	(direct_unary_optab_supported_p): Likewise.
	(direct_binary_optab_supported_p): Likewise.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* coretypes.h (tree_pair): New type.
	* internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
	for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
	* internal-fn.h (direct_internal_fn_info): New structure.
	(direct_internal_fn_array): Declare.
	(direct_internal_fn_p, direct_internal_fn): New functions.
	(direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
	* internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
	(mask_store_direct, store_lanes_direct): New macros.
	(direct_internal_fn_array) New array.
	(get_multi_vector_move): Return the optab handler without asserting
	that it is available.
	(expand_LOAD_LANES): Rename to...
	(expand_load_lanes_optab_fn): ...this and add an optab argument.
	(expand_STORE_LANES): Rename to...
	(expand_store_lanes_optab_fn): ...this and add an optab argument.
	(expand_MASK_LOAD): Rename to...
	(expand_mask_load_optab_fn): ...this and add an optab argument.
	(expand_MASK_STORE): Rename to...
	(expand_mask_store_optab_fn): ...this and add an optab argument.
	(direct_internal_fn_types, direct_optab_supported_p)
	(multi_vector_optab_supported_p, direct_internal_fn_supported_p)
	(direct_internal_fn_supported_p): New functions.
	(direct_mask_load_optab_supported_p): New macro.
	(direct_load_lanes_optab_supported_p): Likewise.
	(direct_mask_store_optab_supported_p): Likewise.
	(direct_store_lanes_optab_supported_p): Likewise.

2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-core.h (internal_fn): Move immediately after the definition
	of built_in_function.
	(combined_fn): New enum.
	* tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
	(internal_fn_p, as_internal_fn): New functions.
	(get_call_combined_fn, combined_fn_name): Declare.
	* tree.c (get_call_combined_fn): New function.
	(combined_fn_name): Likewise.
	* gimple.h (gimple_call_combined_fn): Declare.
	* gimple.c (gimple_call_combined_fn): New function.

2015-11-17  Martin Sebor  <msebor@redhat.com>

	PR c++/68308
	* cp/init.c (build_new_1): Check for expression constness
	the right way.

2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/53587
	* doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
	option list.
	(x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
	discussion of the Microsoft structure layout details here from
	its former home in extend.texi.
	* doc/extend.texi (x86 Variable Attributes): Replace detailed
	discussion with pointer to its new location.  Add cross-reference
	to corresponding type attributes.
	(x86 Type Attributes): Add cross-references to command-line options
	and variable attributes.

2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/68134
	* targhooks.c (default_get_mask_mode): Filter out
	scalar modes returned by mode_for_vector.

2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68143
	* config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
	offset from dstbase and use it appropriately in
	adjust_automodify_address.
	(arm_block_set_aligned_vect): Likewise.

2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
	(MULTILIB_DIRNAMES): Adjust accordingly.

2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-cores.def (cortex-a35): New.
	* config/aarch64/aarch64.c (cortexa35_tunings): New.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (-mcpu): Add Cortex-A35

2015-11-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68263
	* config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
	to 32 for IAMCU.
	* config/i386/sse.md (*mov<mode>_internal): Always enable
	AVX and SSE unaligned moves for IAMCU.

2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>

	* tree-if-conv.c: Include varasm.h
	(ref_DR_map): Define.
	(baseref_DR_map): Like wise
	(struct ifc_dr): Add new tree predicate field.
	(hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
	(memrefs_read_or_written_unconditionally): Remove.
	(write_memrefs_written_at_least_once): Remove.
	(ifcvt_memrefs_wont_trap): Use hash maps to query
	unconditional read/written information.
	(if_convertible_loop_p_1):  Initialize hash maps and predicates
	before hashing data references and delete hashmaps at the end.

2015-11-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR 56036
	* doc/invoke.texi (Optimize Options): Move @end table to the right
	place.

2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>

	PR 65129
	* doc/extend.texi (__builtin_assume_aligned): Fix formatting of
	return value.

2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
	128-bit types, just types that fit in a single vector.
	* config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.

2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/md.texi ('#' and '*' constraint modifiers): Do not include these
	in the user documentation.
	(define_peephole2, define_split): Similarly.

2015-11-16  Andris Pavenis  <andris.pavenis@iki.fi>

	* lto-streamer-out.c (write_global_references): Adjust integer type.
	(lto_output_decl_state_refs): Likewise.

2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-cores.def (cortex-a35): New.
	* config/arm/arm.c (arm_cortex_a35_tune): New.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
	* config/arm/t-aprofile: Likewise.
	* doc/invoke.texi (-mcpu): Likewise.

2015-11-16  Jim Wilson  <jim.wilson@linaro.org>

	* config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
	and qdf24xx and xgene1 to match -march=armv8-a.

2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68330
	* simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
	of LSHIFTRT by a non-zero constant integer.

2015-11-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68306
	* tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
	bogus copying from verify_data_ref_alignment and use continue
	instead of return.

2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/68277
	* config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
	operands[2].
	(*addsi3): Add another insn_and_split variant for reload.

2015-11-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/68117
	* cfgexpand.c (pass_expand::execute): Destroy the edge
	redirection var map before setting RTL CFG hooks.

2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>

	* config/i386/sse.md (reduc_splus_v8df): Rename to...
	(reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.

	(reduc_splus_v4df): Rename to...
	(reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.

	(reduc_splus_v2df): Rename to...
	(reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.

	(reduc_splus_v16sf): Rename to...
	(reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.

	(reduc_splus_v8sf): Rename to...
	(reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.

	(reduc_splus_v4sf): Rename to...
	(reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.

	(reduc_<code>_<mode>, all 3 variants): Rename each to...
	(reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.

	(reduc_umin_v8hf): Rename to...
	(reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.

2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>

	* omp-low.c (pass_omp_simd_clone::gate): If target allows - call
	without additional conditions.
	* doc/extend.texi (@item simd): New.

2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.c (first_pass_instance): Remove variable.
	(execute_todo): Remove setting of first_pass_instance.
	* tree-pass.h (first_pass_instance): Remove declaration.

2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_ccp pass instantiation.
	* tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
	instead of first_pass_instance.
	(do_ssa_ccp): Add and handle param nonzero_p.
	(pass_ccp::pass_ccp): Initialize nonzero_p.
	(pass_ccp::set_pass_param): New member function.  Set nonzero_p.
	(pass_ccp::execute): Call do_ssa_ccp with extra arg.
	(pass_ccp::nonzero_p): New private member.

2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_object_sizes pass instantiation.
	* tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
	insert_min_max_p.
	(pass_object_sizes::set_pass_param): New member function.  Set
	insert_min_max_p.
	(pass_object_sizes::insert_min_max_p): New private member.
	(pass_object_sizes::execute): Use insert_min_max_p instead of
	first_pass_instance.

2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_dominator pass instantiation.
	* tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
	of comment.
	* tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
	may_peel_loop_headers_p.
	(pass_dominator::set_pass_param): New member function.  Set
	may_peel_loop_headers_p.
	(pass_dominator::may_peel_loop_headers_p): New private member.
	(pass_dominator::execute): Use may_peel_loop_headers_p instead of
	first_pass_instance.

2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_reassoc pass instantiation.
	* tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
	(acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
	of first_pass_instance.
	(execute_reassoc): Add and handle insert_powi_p parameter.
	(pass_reassoc::insert_powi_p): New private member.
	(pass_reassoc::pass_reassoc): Initialize insert_powi_p.
	(pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
	(pass_reassoc::execute): Call execute_reassoc with extra arg.

2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
	* gen-pass-instances.awk (handle_line): Same.
	* pass_manager.h (class pass_manager): Define and undefine
	NEXT_PASS_WITH_ARG.
	* passes.c (opt_pass::set_pass_param): New function.
	(pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
	* passes.def: Add extra arg to NEXT_PASS (pass_vrp).
	* tree-pass.h (gimple_opt::set_pass_param): Declare.
	* tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
	warn_array_bounds_p parameter.
	(pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
	(pass_vrp::set_pass_param): New function.
	(pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
	(pass_vrp::warn_array_bounds_p): New private member.

2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	* config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
	an lea instruction when possible.
	(output_adjust_stack_and_probe): Rotate the loop and simplify.
	(ix86_emit_probe_stack_range): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
	Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
	with appropriate pragma GCC target.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
	__ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.

2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (cortexa57_branch_costs): New.
	(cortexa57_tunings): Use it.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-c.c (arm_cpu_builtins): Set or reset
	__ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
	(arm_pragma_target_parse): Change check for arm_cpu_builtins.
	undefine __ARM_FP.
	* config/arm/arm.c (arm_can_inline_p): Check FPUs.
	(arm_valid_target_attribute_rec): Handle -mfpu attribute target.
	* doc/invoke.texi (-mfpu=): Mention attribute and pragma.
	* doc/extend.texi (-mfpu=): Describe attribute.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
	* config/arm/arm.c (arm_valid_target_attribute_tree): Call
	arm_init_neon_builtins.
	* config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
	(arm_init_neon_builtins_internal)
	(arm_init_crypto_builtins_internal):
	Test and set neon_set_p, neon_crypto_set_p.
	(neon_set_p, neon_crypto_set_p): New static booleans.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm.c (arm_fpu_desc): Remove.
	(all_fpus): Make global.
	(arm_option_override): Use FPU TARGET accessors.
	(arm_declare_function_name): Likewise.
	* config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
	(TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
	(TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
	(TARGET_NEON): Likewise.
	(all_fpus): Declare extern.
	(TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
	(TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.

2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	PR middle-end/68366
	* sdbout.c: Include emit-rtl.h and function.h.

2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
	Remove support for FreeBSD 5 and earlier.

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* configure: Regenerate.
	* configure.ac: Always define ENABLE_OFFLOADING.
	* cgraph.c (cgraph_node::create): Adjust.
	* gcc.c (process_command): Likewise.
	* omp-low.c (create_omp_child_function): Likewise.
	(expand_omp_target): Likewise.
	* varpool.c (varpool_node::get_create): Likewise.

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
	* df-scan.c (df_get_exit_block_use_set): Adjust.
	* except.c (expand_eh_return): Likewise.

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/i386/i386.h (TARGET_PECOFF): Remove define.
	* defaults.h (TARGET_PECOFF): New default definition.
	* varasm.c (handle_vtv_comdat_section): Adjust.

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h: New definition of SDB_DEBUGGING_INFO.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Adjust.
	* final.c (rest_of_clean_state): Remove check if
	SDB_DEBUGGING_INFO is defined.
	* function.c (number_blocks): Likewise.
	* output.h: Likewise.
	* sdbout.c: Likewise.
	* toplev.c (process_options): Likewise.

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
	(enum sdb_masks): Likewise.
	* sdbout.c (plain_type_1): Likewise.
	* system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.

2015-11-14  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
	internal calls - 0 if ordered simd and 1 for ordered threads simd.
	* tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
	argument is 1, replace it with GOMP_ordered_* call instead of removing
	it.

2015-11-13  Rich Felker  <dalias@libc.org>

	* config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
	address loading hack for FDPIC targets.

2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
	    Jeff Law  <law@redhat.com>

	* Makefile.in (OBJS): Add gimple-ssa-split-paths.o
	* common.opt (-fsplit-paths): New flag controlling path splitting.
	* doc/invoke.texi (fsplit-paths): Document.
	* opts.c (default_options_table): Add -fsplit-paths to -O2.
	* passes.def: Add split_paths pass.
	* timevar.def (TV_SPLIT_PATHS): New timevar.
	* tracer.c: Include "tracer.h"
	(ignore_bb_p): No longer static.
	(transform_duplicate): New function, broken out of tail_duplicate.
	(tail_duplicate): Use transform_duplicate.
	* tracer.h (ignore_bb_p): Declare
	(transform_duplicate): Likewise.
	* tree-pass.h (make_pass_split_paths): Declare.
	* gimple-ssa-split-paths.c: New file.

2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
	    Marek Polacek  <polacek@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	* convert.c (maybe_fold_build1_loc): New.
	(maybe_fold_build2_loc): New.
	(convert_to_pointer_1): Split out from convert_to_pointer.
	(convert_to_pointer_nofold): New.
	(convert_to_real_1): Split out from convert_to_real.
	(convert_to_real_nofold): New.
	(convert_to_integer_1): Split out from convert_to_integer.
	(convert_to_integer_nofold): New.
	(convert_to_complex_1): Split out from convert_to_complex.
	(convert_to_complex_nofold): New.
	* convert.h: Declare new functions.
	* tree-complex.c (create_one_component_var): Break up line to
	avoid sequence point issues.

2015-11-13  Jason Merrill  <jason@redhat.com>

	* fold-const.c (fold_convert_const): Fold changing cv-quals on
	VECTOR_CST.

	* hash-map.h (hash_map::empty): New.

2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
	(oacc_loop_fixed_partitions): Correct return type to bool.
	(oacc_loop_auto_partitions): New.
	(oacc_loop_partition): Take mask argument, call
	oacc_loop_auto_partitions.
	(execute_oacc_device_lower): Provide mask to oacc_loop_partition.

2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (we constraint): New constraint for
	64-bit power9 vector support.
	(wL constraint): New constraint for the element in a vector that
	can be addressed by the MFVSRLD instruction.

	* config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
	declaration.
	(convert_int_to_float128): Likewise.
	(rs6000_generate_compare): Add support for ISA 3.0 (power9)
	hardware support for IEEE 128-bit floating point.
	(rs6000_expand_float128_convert): Likewise.
	(convert_float128_to_int): Likewise.
	(convert_int_to_float128): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
	ISA 3.0 hardware IEEE 128-bit floating point.
	(UNSPEC_IEEE128_MOVE): Likewise.
	(UNSPEC_IEEE128_CONVERT): Likewise.
	(FMA_F): Add support for IEEE 128-bit floating point hardware support.
	(Ff): Add support for DImode.
	(Fv): Likewise.
	(any_fix code iterator): New and updated iterators for IEEE
	128-bit floating point hardware support.
	(any_float code iterator): Likewise.
	(s code attribute): Likewise.
	(su code attribute): Likewise.
	(az code attribute): Likewise.
	(uns code attribute): Likewise.
	(neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
	floating point hardware support.
	(abs<mode>2, FLOAT128 iterator): Likewise.
	(add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
	floating point hardware.
	(sub<mode>3, IEEE128 iterator): Likewise.
	(mul<mode>3, IEEE128 iterator): Likewise.
	(div<mode>3, IEEE128 iterator): Likewise.
	(copysign<mode>3, IEEE128 iterator): Likewise.
	(sqrt<mode>2, IEEE128 iterator): Likewise.
	(neg<mode>2, IEEE128 iterator): Likewise.
	(abs<mode>2, IEEE128 iterator): Likewise.
	(nabs<mode>2, IEEE128 iterator): Likewise.
	(fma<mode>4_hw, IEEE128 iterator): Likewise.
	(fms<mode>4_hw, IEEE128 iterator): Likewise.
	(nfma<mode>4_hw, IEEE128 iterator): Likewise.
	(nfms<mode>4_hw, IEEE128 iterator): Likewise.
	(extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
	(trunc<mode>df2_hw, IEEE128 iterator): Likewise.
	(trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
	(fix_fixuns code attribute): Likewise.
	(float_floatuns code attribute): Likewise.
	(fix<uns>_<mode>si2_hw): Likewise.
	(fix<uns>_<mode>di2_hw): Likewise.
	(float<uns>_<mode>si2_hw): Likewise.
	(float<uns>_<mode>di2_hw): Likewise.
	(xscvqp<su>wz_<mode>): Likewise.
	(xscvqp<su>dz_<mode>): Likewise.
	(xscv<su>dqp_<mode): Likewise.
	(ieee128_mfvsrd): Likewise.
	(ieee128_mfvsrwz): Likewise.
	(ieee128_mtvsrw): Likewise.
	(ieee128_mtvsrd): Likewise.
	(trunc<mode>df2_odd): Likewise.
	(cmp<mode>_h): Likewise.
	(128-bit GPR splitters): Don't split a 128-bit move that is a
	direct move between GPR and vector registers using ISA 3.0 direct
	move instructions.
	(maddld4): Add support for the ISA 3.0 integer multiply-add
	instruction.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
	debugging.
	(rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
	constraint.  Disable the VSX<->GPR direct move helpers if we have
	the MFVSRLD and MTVSRDD instructions.
	(rs6000_secondary_reload_simple_move): Add support for doing
	vector direct moves directly without additional scratch registers
	if we have ISA 3.0 instructions.
	(rs6000_secondary_reload_direct_move): Update comments.
	(rs6000_output_move_128bit): Add support for ISA 3.0 vector
	instructions.

	* config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
	direct move instructions.
	(vsx_movti_64bit): Likewise.
	(vsx_extract_<mode>): Likewise.

	* config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
	macros for ISA 3.0 direct move instructions.
	(TARGET_DIRECT_MOVE_128): Likewise.
	(TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
	instruction.

	* doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
	constraints.  Update wa documentation to say not to use %x<n> on
	instructions that only take Altivec registers.

2015-11-13  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Add gcc-rich-location.o.
	* diagnostic.c (diagnostic_append_note): Pass line_table to
	rich_location ctor.
	(emit_diagnostic): Likewise.
	(inform): Likewise.
	(inform_n): Likewise.
	(warning): Likewise.
	(warning_at): Likewise.
	(warning_n): Likewise.
	(pedwarn): Likewise.
	(permerror): Likewise.
	(error): Likewise.
	(error_n): Likewise.
	(error_at): Likewise.
	(sorry): Likewise.
	(fatal_error): Likewise.
	(internal_error): Likewise.
	(internal_error_no_backtrace): Likewise.
	(source_range::debug): Likewise.
	* gcc-rich-location.c: New file.
	* gcc-rich-location.h: New file.
	* genmatch.c (fatal_at): Pass line_table to rich_location ctor.
	(warning_at): Likewise.
	* gimple.h (gimple_set_block): Use set_block function.
	* input.c (dump_line_table_statistics): Dump stats on how many
	ranges were optimized vs how many needed ad-hoc table.
	(write_digit_row): Add "map" param; use its range_bits
	to calculate the per-character offset.
	(dump_location_info): Print the range and column bits for each
	ordinary map.  Use the range bits to calculate the per-character
	offset.  Pass the map as a new param to the various calls to
	write_digit_row.  Eliminate uses of
	ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
	* print-tree.c (print_node): Print any source range information.
	* rtl-error.c (diagnostic_for_asm): Likewise.
	* toplev.c (general_init): Initialize line_table's
	default_range_bits.
	* tree-cfg.c (move_block_to_fn): Likewise.
	(move_block_to_fn): Likewise.
	* tree-inline.c (copy_phis_for_bb): Likewise.
	* tree.c (tree_set_block): Likewise.
	(get_pure_location): New function.
	(set_source_range): New functions.
	(set_block): New function.
	(set_source_range): New functions.
	* tree.h (CAN_HAVE_RANGE_P): New.
	(EXPR_LOCATION_RANGE): New.
	(EXPR_HAS_RANGE): New.
	(get_expr_source_range): New inline function.
	(DECL_LOCATION_RANGE): New.
	(set_source_range): New decls.
	(get_decl_source_range): New inline function.

2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/67682
	* tree-vect-slp.c (vect_split_slp_store_group): New.
	(vect_analyze_slp_instance): During basic block SLP, recurse on
	subgroups if vect_build_slp_tree fails after 1st vector.

2015-11-13  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm.c (arm_option_override): Move NEON check...
	(arm_option_check_internal): here
	(arm_file_start): Move .fpu print...
	(arm_declare_function_name): here
	(arm_option_print): Dump current fpu name.
	* config/arm/arm.opt (arm_fpu_index): Mark Save.

2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (subst): Don't substitute or simplify when
	handling register-wise widening multiply.
	(force_to_mode): Likewise.

2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/68264
	* tree-call-cdce.c (gen_one_condition): Update commentary.
	(gen_conditions_for_pow_int_base): Invert the sense of the tests
	passed to gen_one_condition.
	(gen_conditions_for_domain): Likewise.  Use unordered comparisons.
	(shrink_wrap_one_built_in_call): Invert the sense of the tests,
	using EDGE_FALSE_VALUE for edges to the call block and
	EDGE_TRUE_VALUE for the others.

2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
	complex types.

2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>

	* gimplify.c (oacc_default_clause): Use inform for enclosing scope.

2015-11-13  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Rename prefix_len var to
	len_of_prefix.

2015-11-13  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Add args_str variable.

2015-11-13  Martin Liska  <mliska@suse.cz>

	* graphite-poly.c (free_scop): Release scop->drs vector.
	* graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
	Release dom vector.
	(try_generate_gimple_bb): Use vNULL as a default initialization
	for vectors.

2015-11-13  Martin Liska  <mliska@suse.cz>

	PR ipa/68311
	* ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
	Replace array initialization (using a variable post-increment)
	that possible triggers multiple unsequenced modifications
	with a pair of pushes to a vector.

2015-11-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68306
	* tree-vect-data-refs.c (verify_data_ref_alignment): Move
	loop related checks ...
	(vect_verify_datarefs_alignment): ... here.
	(vect_slp_analyze_and_verify_node_alignment): Compute and
	verify alignment of the single DR that it matters.
	* tree-vect-stmts.c (vectorizable_store): Add an assert.
	(vectorizable_load): Add a comment.
	* tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
	for determining load cost.

2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-loop.c (vect_determine_vectorization_factor): Check
	mix of boolean and integer vectors in a single statement.
	* tree-vect-slp.c (vect_mask_constant_operand_p): New.
	(vect_get_constant_vectors): Use vect_mask_constant_operand_p to
	determine constant type.
	* tree-vect-stmts.c (vectorizable_comparison): Provide vectype
	for loop invariants.

2015-11-13  Alan Hayward  <alan.hayward@arm.com>

	PR tree-optimization/66558
	* tree-vect-loop.c (is_integer_induction):Add.
	(vectorizable_reduction): Add integer induction checks.

2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>

	Revert [ARM] Remove neon-testgen.ml and generated tests.

	2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>

	[ARM] Remove neon-testgen.ml and generated tests.

	* config/arm/neon-testgen.ml: Remove.

2015-11-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
	Signal fatal failure if early checks fail.
	(vect_analyze_loop): If vect_analyze_loop_2 fails fatally
	do not bother testing further vector sizes.

2015-11-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (misaligned_operand): Return true if
	operand is aligned to less than its natural alignmnet.

2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* doc/md.texi (vec_cmp@var{m}@var{n}): New item.
	(vec_cmpu@var{m}@var{n}): New item.
	(vcond@var{m}@var{n}): Specify comparison is signed.
	(vcondu@var{m}@var{n}): New item.
	(vcond_mask_@var{m}@var{n}): New item.
	(maskload@var{m}@var{n}): New item.
	(maskstore@var{m}@var{n}): New item.

2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-stmts.c (vectorizable_mask_load_store): Check
	types of stored value and storage are compatible.

2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>

	* gcc.c (POST_LINK_SPEC): Define if not already defined.
	(LINK_COMMAND_SPEC): Use post_link.
	(post_link_spec): New, initialize to POST_LINK_SPEC.
	(post_link): Initialize new static spec.
	* doc/tm.texi.in (POST_LINK_SPEC): Document.
	* doc/tm.texi: Regenerated.

2015-11-13  David Malcolm  <dmalcolm@redhat.com>

	PR driver/67613
	* Makefile.in (GCC_OBJS): Add spellcheck.o.
	(OBJS): Add spellcheck-tree.o.
	* gcc.c: Include "spellcheck.h".
	(suggest_option): New function.
	(driver::handle_unrecognized_options): Call suggest_option to
	provide a hint about misspelled options.
	* spellcheck.c: Update file comment.
	(levenshtein_distance): Convert 4-param implementation from static
	to extern scope.  Remove note about unit tests from leading
	comment for const char * implementation.  Move tree
	implementation to...
	* spellcheck-tree.c: New file.
	* spellcheck.h (levenshtein_distance):  Add 4-param decl.

2015-11-13  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Add spellcheck.o.
	* spellcheck.c: New file.
	* spellcheck.h: New file.

2015-11-13  James Bowman  <james.bowman@ftdichip.com>

	* config/ft32/ft32.md (*sne): New insn pattern.

2015-11-12  Brad Lucier  <lucier@math.purdue.edu>

	* cprop.c (is_too_expensive): Remove.
	(gcse.h): Include.
	(one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
	is_too_expensive.
	* gcse.h (gcse_or_cprop_is_too_expensive): Declare.
	* gcse.c (is_too_expensive): Rename to ...
	(gcse_or_cprop_is_too_expensive): ... this.
	Expand warning to add required size of max-gcse-memory.
	(one_pre_gcse_pass): Use it.
	(one_code_hoisting_pass): Use it.
	* params.def (max-gcse-memory): Increase from 50MB to 128MB.

2015-11-12  James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* gimple-pretty-print.c (dump_gimple_omp_target): Handle
	GF_OMP_TARGET_KIND_OACC_DECLARE.
	* gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
	(is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
	* gimplify.c (oacc_declare_returns): New.
	(gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
	(device_resident_p): New function.
	(oacc_default_clause): Handle device_resident clause.
	(gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
	(gimplify_expr): Handle OACC_DECLARE.
	* omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
	* omp-low.c (expand_omp_target): Handle
	GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
	(build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
	(lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
	GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
	(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
	* tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
	GOMP_MAP_DEVICE_RESIDENT.

2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>

	[ARM] Remove neon-testgen.ml and generated tests.

	* config/arm/neon-testgen.ml: Remove.

2015-11-12  Jim Wilson  <jim.wilson@linaro.org>

	* config/aarch64/aarch64-cores.def (qdf24xx): New.
	* config/aarch64/aarch64-tune.md: Regenerated.
	* config/arm/arm-cores.def (qdf24xx): New.
	* config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
	* doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
	(ARM Options/-mtune): Likewise.

2015-11-12  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c (ix86_valid_target_attribute_p):
	Finalize options at the of the function.
	* gcc.c (driver_get_configure_time_options): Call newly
	introduced init_opts_obstack.
	* lto-wrapper.c (main): Likewise.
	* opts.c (init_opts_obstack): New function.
	(init_options_struct): Call newly introduced init_opts_obstack.
	* opts.h (init_options_struct): Declare.

2015-11-12  Martin Liska  <mliska@suse.cz>

	PR ipa/68035
	* ipa-icf.c (void sem_item::set_hash): New function.
	(sem_function::get_hash): Use renamed m_hash member variable.
	(sem_item::update_hash_by_addr_refs): Utilize get_hash.
	(sem_item::update_hash_by_local_refs): Likewise.
	(sem_variable::get_hash): Use renamed m_hash member variable.
	(sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
	(sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
	(sem_item_optimizer::build_graph): As the hash value of an item
	is lazy initialized, force the calculation.
	* ipa-icf.h (set_hash): Declare new function and rename hash member
	variable to m_hash.

2015-11-12  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
	Rename to vect_slp_analyze_instance_dependence.
	* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
	Remove WAR special-case.
	(vect_slp_analyze_node_dependences): Instead add more specific
	code here, not relying on other instances being vectorized.
	(vect_slp_analyze_instance_dependence): Adjust accordingly.
	* tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
	vertical space in dump files.
	(vect_print_slp_tree): Likewise.
	(vect_analyze_slp_instance): Dump a header for the final SLP tree.
	(vect_slp_analyze_bb_1): Delay computing relevant stmts and
	not vectorized stmts until after dependence analysis removed
	instances.  Merge alignment and dependence checks.
	* tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
	flag on all stmts.

2015-11-12  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64-protos.h (tune_params): Add new members
	"max_case_values" and "cache_line_size".
	* config/aarch64/aarch64.c (aarch64_case_values_threshold): New
	function.
	(aarch64_override_options_internal): Tune heuristics based on new
	members in "tune_params".
	(TARGET_CASE_VALUES_THRESHOLD): Define macro.

2015-11-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68306
	* tree-vect-data-refs.c (verify_data_ref_alignment): Remove
	relevant and vectorizable checks here.
	(vect_verify_datarefs_alignment): Add relevant check here.

2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>

	* gimplify.c (oacc_default_clause): New.
	(omp_notice_variable): Call it.

2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR tree-optimization/68305
	* tree-vect-slp.c (vect_get_constant_vectors): Support
	COND_EXPR with SSA_NAME as a condition.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium-protos.h (notice_update_cc): Delete.
	(print_operand): Likewise.
	(print_operand_address): Likewise.

2015-11-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove.
	* config/alpha/alpha-protos.h (function_value): Remove.
	* config/alpha/alpha.c (function_value): Rename to...
	(alpha_function_value_1): ... this.  Make static.
	(alpha_function_value, alpha_libcall_value,
	alpha_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.

2015-11-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/alpha/alpha.c (alpha_memory_latency): Make static.
	(alpha_register_move_cost, alpha_memory_move_cost): New functions.
	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/67265
	* config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
	assertion on the CFA register.

2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* expr.c (do_store_flag): Expand vector comparison as
	VEC_COND_EXPR if vector comparison is not supported by target.

2015-11-12  Renlin Li  <renlin.li@arm.com>

	* config/arm/arm.md (addsi3_compare_op2): Make the order of
	assembly pattern consistent with constraint order.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Simplify match regexp.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Simplify init of
	postfix_starts_at.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Rename var where to
	call_starts_at.

2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (gen_compare_reg): Swap operands also when we
	do not expand to rtl.

2015-11-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58497
	* tree-vect-generic.c: Include gimplify.h.
	(tree_vec_extract): Lookup constant/constructor DEFs.
	(do_cond): Unshare cond.

2015-11-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_legitimate_combined_insn): Reject
	combined insn if the alignment of vector mode memory operand
	is less than ssememalign.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Print parentheses and
	pass_name explicitly.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Add pass_num, prefix
	and postfix vars.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Add comments.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Rename len_of_end to
	len_of_close.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Add len_of_call variable.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Restructure using early-out.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Unify semicolon use.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk (handle_line): Remove unused var line_length.

2015-11-12  Tom de Vries  <tom@codesourcery.com>

	* gen-pass-instances.awk: Add emacs indent setting.

2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
	to match.pd.
	Move Convert A/(B/C) to (A/B)*C to match.pd.
	Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
	Move Optimize (X & (-A)) / A where A is a power of 2, to
	X >> log2(A) to match.pd.

	* match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
	(rdiv @0 (rdiv:s @1 @2)): New simplifier.
	(div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
	New simplifier.
	(rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.

2015-11-12  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
	variable.
	(neon_vst2_lane<mode>): Likewise.
	(neon_vld3_lane<mode>): Likewise.
	(neon_vst3_lane<mode>): Likewise.
	(neon_vld4_lane<mode>): Likewise.
	(neon_vst4_lane<mode>): Likewise.

2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
	New member codegen_error
	(translate_isl_ast_for_loop): Remove call to single_succ_edge and
	early return.
	(translate_isl_ast_node_user): Early return in case of error.
	(translate_isl_ast_to_gimple::translate_isl_ast): Same.
	(translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
	(add_parameters_to_ivs_params): Remove macro.
	(graphite_regenerate_ast_isl): Add if_region pointer to region.
	* graphite-poly.c (new_poly_dr): Remove macro.
	(print_pdr): Same.
	(new_gimple_poly_bb): Same.
	(free_gimple_poly_bb): Same.
	(print_scop_params): Same.
	* graphite-poly.h (struct poly_dr): Same.
	(struct poly_bb): Add new_bb.
	(gbb_from_bb): Remove dead code.
	(pbb_from_bb): Same.
	* graphite-scop-detection.c (parameter_index_in_region_1): Same.
	(parameter_index_in_region): Same.
	(find_scop_parameters): Same.
	(build_cross_bb_scalars_def): New.
	(build_cross_bb_scalars_use): New.
	(graphite_find_cross_bb_scalar_vars): New
	(try_generate_gimple_bb): Reads and Writes.
	(build_alias_set): Move.
	(gather_bbs::before_dom_children): Gather bbs visited.
	(build_scops): call build_alias_set.
	* graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
	(remove_simple_copy_phi): Delete.
	(remove_invariant_phi): Delete.
	(simple_copy_phi_p): Delete.
	(reduction_phi_p): Delete.
	(isl_id_for_dr): Remove unused param.
	(parameter_index_in_region_1): Remove macro usage.
	(set_scop_parameter_dim): Same.
	(add_param_constraints): Same.
	(add_conditions_to_constraints): Same
	(build_scop_iteration_domain): Same.
	(pdr_add_alias_set): Comment.
	(add_scalar_version_numbers): New.
	(build_poly_dr): ISL id.
	(build_scop_drs): Move.
	(build_poly_sr_1): Same.
	(insert_stmts): Remove.
	(build_poly_sr): New.
	(new_pbb_from_pbb): Delete.
	(insert_out_of_ssa_copy_on_edge): Delete.
	(create_zero_dim_array): Delete.
	(scalar_close_phi_node_p): Delete.
	(propagate_expr_outside_region): Delete.
	(rewrite_close_phi_out_of_ssa): Delete.
	(rewrite_phi_out_of_ssa): Delete.
	(rewrite_degenerate_phi): Delete.
	(rewrite_reductions_out_of_ssa): Delete.
	(rewrite_cross_bb_scalar_dependence): Delete.
	(handle_scalar_deps_crossing_scop_limits):
	(rewrite_cross_bb_scalar_deps): Delete.
	(build_poly_scop): Remove calls to out-of-ssa functions.
	* graphite.c (graphite_transform_loops): Early return in case of
	codegen error.
	* sese.c (debug_rename_map_1): Delete.
	(debug_rename_map): Delete.
	(sese_record_loop): Remove macro.
	(build_sese_loop_nests): Same.
	(new_sese_info): Same.
	(free_sese_info): Same.
	(sese_insert_phis_for_liveouts):
	(is_loop_closed_ssa_use): New.
	(number_of_phi_nodes): New.
	(bb_contains_loop_close_phi_nodes): New.
	(bb_contains_loop_phi_nodes): New.
	(phi_uses_name): New.
	(is_valid_rename):
	(get_rename): Add old_bb and loop_phi for more precise matching of
	exprs.
	(set_rename): Pass region.
	(later_of_the_two): New.
	(gsi_insert_earliest): New.
	(collect_all_ssa_names): New.
	(substitute_ssa_name): New.
	(rename_all_uses): New.
	(get_rename_from_scev): New.
	(rename_uses): Pass old_bb for more precise matching of exprs.
	(get_def_bb_for_const): New.
	(get_new_name): New.
	(get_loc): New.
	(get_edges): New.
	(copy_loop_phi_args): New.
	(copy_loop_phi_nodes): New.
	(get_loop_init_value): New.
	(find_init_value): New.
	(find_init_value_close_phi): New.
	(copy_loop_close_phi_args): New.
	(copy_loop_close_phi_nodes): New.
	(add_phi_arg_for_new_expr): New.
	(copy_cond_phi_args): New.
	(copy_cond_phi_nodes): New.
	(copy_phi_nodes): New.
	(should_copy_to_new_region): New.
	(set_rename_for_each_def): New.
	(graphite_copy_stmts_from_block): Early return in case of error.
	(copy_bb_and_scalar_dependences): Same.
	* sese.h (vec_find): New.
	(SESE_PARAMS): Delete.
	(SESE_LOOPS): Delete.
	(SESE_LOOP_NEST): Delete.
	(sese_contains_loop): Remove macro usage.
	(sese_nb_params): Same.
	(struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.

2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>

	* graphite-sese-to-poly.c (build_scop_original_schedule): Call
	isl_union_map_add_map on every pbb->schedule.

2015-11-11  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (create_parallel_loop): Return void.

2015-11-11  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
	block only when needed.

2015-11-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha-protos.h (print_operand): Remove.
	(print_operand_address): Remove.
	* config/alpha/alpha.h (PRINT_OPERAND): Remove.
	(PRINT_OPERAND_ADDRESS): Remove.
	(PRINT_OPERAND_PUNCT_VALID_P): Remove.
	* config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
	(TARGET_PRINT_OPERAND_ADDRESS): New hook define.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
	(print_operand_address): Rename to...
	(alpha_print_operand_address): ...this and make static.
	(print_operand): Rename to...
	(alpha_print_operand): ...this and make static.
	(alpha_print_operand_punct_valid_p): New static function.

2015-11-11  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
	Declare.
	(vect_analyze_data_refs_alignment): Make loop vect specific.
	(vect_verify_datarefs_alignment): Likewise.
	* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
	Add missing continue.
	(vect_compute_data_ref_alignment): Export.
	(vect_compute_data_refs_alignment): Merge into...
	(vect_analyze_data_refs_alignment): ... this.
	(verify_data_ref_alignment): Split out from ...
	(vect_verify_datarefs_alignment): ... here.
	(vect_slp_analyze_and_verify_node_alignment): New function.
	(vect_slp_analyze_and_verify_instance_alignment): Likewise.
	* tree-vect-slp.c (vect_supported_load_permutation_p): Remove
	misplaced checks on alignment.
	(vect_slp_analyze_bb_1): Add fatal output parameter.  Do
	alignment analysis after SLP discovery and do it per instance.
	(vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
	bother to re-try using different vector sizes.

2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* gimplify.c (enum omp_region_type): Add ORT_ACC,
	ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
	(gimple_add_tmp_var): Add ORT_ACC checks.
	(gimplify_var_or_parm_decl): Likewise.
	(omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
	(omp_add_variable): Look in outer contexts for openacc and allow
	reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
	(omp_notice_variable, omp_is_private, omp_check_private): Add
	ORT_ACC checks.
	(gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
	Permit private openacc reductions.
	(gimplify_oacc_cache): Specify ORT_ACC.
	(gimplify_omp_workshare): Adjust OpenACC region types.
	(gimplify_omp_target_update): Likewise.
	* omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
	(lower-rec_input_clauses): Don't handle openacc firstprivate
	references here.
	(lower_omp_target): Emit initializers for openacc firstprivate vars.

2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/67265
	* ira.c (ira_setup_eliminable_regset): Do not necessarily create the
	frame pointer for stack checking if non-call exceptions aren't used.
	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.

2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
	[LA]SHIFTRT.

2015-11-11  Martin Liska  <mliska@suse.cz>
	    Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/68287
	* lra-lives.c (lra_create_live_ranges_1): Reserve the right
	number of elements.

2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>

	* config/mips/mips.c (mips_breakable_sequence_p): New function.
	(mips_break_sequence): New function.
	(mips_reorg_process_insns): Use them. Use compact branches in selected
	situations.

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

	* fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.

2015-11-11  Jiong Wang  <jiong.wang@arm.com>
	    Jim Wilson  <wilson@gcc.gnu.org>

	PR target/67305
	* config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
	be true and eliminable registers mentioned.

2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>

	* common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
	options.
	* config/arc/arc-opts.h: Add ARCv2 CPUs.
	* config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
	* config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
	situation, and store instructions with large offsets.
	(arc_secondary_reload_conv): New function.
	(arc_init): Add ARCv2 options.
	(arc_conditional_register_usage): Select the proper register usage
	for ARCv2 processors.
	(arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
	architecture.
	(arc_compute_function_type): Likewise.
	(arc_print_operand): Handle new ARCv2 punctuation characters.
	(arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
	(workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
	function.
	(arc_reorg, arc_hazard): Use it.
	* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
	(ASM_SPEC): Add ARCv2 options.
	(TARGET_NORM): ARC HS has norm instructions by default.
	(TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
	(TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
	(TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
	(SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
	Likewise.
	(TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
	(TARGET_LP_WR_INTERLOCK): Likewise.
	* config/arc/arc.md
	(commutative_binary_mult_comparison_result_used, movsicc_insn)
	(mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
	(umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
	(umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
	Use it for ARCv2.
	(mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
	(umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
	(prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
	(arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
	(extzvsi): New pattern.
	* config/arc/arc.opt: New ARCv2 options.
	* config/arc/arcEM.md: New file.
	* config/arc/arcHS.md: Likewise.
	* config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
	values.
	(Cm2): A signed 9-bit integer constant constraint.
	(C62): An unsigned 6-bit integer constant constraint.
	(C16): A signed 16-bit integer constant constraint.
	* config/arc/predicates.md (mult_operator): Add ARCv2 processort.
	(short_const_int_operand): New predicate.
	* config/arc/t-arc-newlib: Add ARCv2 multilib options.
	* doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
	-mcode-density and -mdiv-rem.

2015-11-11  Julia Koval  <julia.koval@intel.com>

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

2015-11-11  Julia Koval  <julia.koval@intel.com>

	* config/i386/i386.c: Handle "skylake" and "skylake-avx512".

2015-11-11  Martin Liska  <mliska@suse.cz>

	* gimple-ssa-strength-reduction.c (create_phi_basis):
	Use auto_vec.
	* passes.c (release_dump_file_name): New function.
	(pass_init_dump_file): Used from this function.
	(pass_fini_dump_file): Likewise.
	* tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
	* var-tracking.c (vt_initialize): Use pool_allocator.

2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
	    Jiong Wang	    <jiong.wang@arm.com>

	PR tree-optimization/68234
	* tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
	node which estimiated to be VR_VARYING initially.

2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>

	* regname.c (scan_rtx_reg): Check the matching number of consecutive
	registers when tying chains.
	(build_def_use): Move terminated_this_insn earlier in the function.

2015-11-10  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Use = with test and not ==.
	* configure: Regenerated.

2015-11-11  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
	machine asserts.  Update defines for 64 bit.

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

	PR target/63870
	* config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
	lane number.
	(neon_vst1_lane<mode>): Likewise.
	(neon_vld2_lane<mode>): Likewise.
	(neon_vst2_lane<mode>): Likewise.
	(neon_vld3_lane<mode>): Likewise.
	(neon_vst3_lane<mode>): Likewise.
	(neon_vld4_lane<mode>): Likewise.
	(neon_vst4_lane<mode>): Likewise.

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

	PR target/63870
	* config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
	qualifier_struct_load_store_lane_index.
	(arm_storestruct_lane_qualifiers) Likewise.
	* config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
	big-endian.
	(neon_vst1_lane<mode>) Likewise.
	(neon_vld2_lane<mode>) Likewise.
	(neon_vst2_lane<mode>) Likewise.
	(neon_vld3_lane<mode>) Likewise.
	(neon_vst3_lane<mode>) Likewise.
	(neon_vld4_lane<mode>) Likewise.
	(neon_vst4_lane<mode>) Likewise.

2015-11-11  Charles Baylis  <charles.baylis@linaro.org>

	PR target/63870
	* config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
	qualifier_struct_load_store_lane_index.
	(builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
	(arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
	argument qualifiers.
	(arm_expand_neon_builtin): Handle new NEON argument qualifier.
	* config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.

2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.opt (moptimize): New flag.
	* config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
	default.
	(nvptx_optimize_inner): New.
	(nvptx_process_pars): Call it when optimizing.
	* doc/invoke.texi (Nvidia PTX Options): Document -moptimize.

2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
	Remove redundant code.

2015-11-10  Jeff Law  <law@redhat.com>

	* config/ft32/ft32.c (ft32_print_operand): Supply mode to
	call to output_address.
	* config/moxie/moxie.c (moxie_print_operand_address): Similarly.
	Add unnamed machine_mode argument.

2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
	default to 64-bit.

2015-11-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movabs<mode>_1): Add explicit
	size directives for -masm=intel.
	(*movabs<mode>_2): Ditto.

2015-11-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_print_operand): Remove dead code that
	tried to avoid (%rip) for call operands.

2015-11-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
	argument.  Do not use RIP relative addressing when no_rip is set.
	(ix86_print_operand): Update call to ix86_print_operand_address_as.
	(ix86_print_operand_address): Ditto.
	* config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
	absolute movabs operand 0.  Add square braces for -masm=intel.
	(*movabs<mode>_2): Ditto for operand 1.

2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
	combine_vcvtf2i pattern.

2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (neon_valid_immediate): Remove integer
	CONST_DOUBLE handling.  It should never occur.

2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/atomics.md (unspecv): Move to iterators.md.
	(ATOMIC_LDOP): Likewise.
	(atomic_ldop): Likewise.
	* config/aarch64/iterators.md (unspecv): Moved from atomics.md.
	(ATOMIC_LDOP): Likewise.
	(atomic_ldop): Likewise.

2015-11-10  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h (allocate_raw): New function.
	(operator new (size_t, object_allocator<T> &a)): Use the
	function instead of object_allocator::allocate).

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/sse.md (HALFMASKMODE): New attribute.
	(DOUBLEMASKMODE): New attribute.
	(vec_pack_trunc_qi): New.
	(vec_pack_trunc_<mode>): New.
	(vec_unpacks_lo_hi): New.
	(vec_unpacks_lo_si): New.
	(vec_unpacks_lo_di): New.
	(vec_unpacks_hi_hi): New.
	(vec_unpacks_hi_<mode>): New.

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* optabs.c (expand_binop_directly): Allow scalar mode for
	vec_pack_trunc_optab.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Skip
	boolean vector producers from pattern sequence when computing VF.
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
	vect_recog_mask_conversion_pattern.
	(search_type_for_mask): Choose the smallest
	type if different size types are mixed.
	(build_mask_conversion): New.
	(vect_recog_mask_conversion_pattern): New.
	(vect_pattern_recog_1): Allow scalar mode for boolean vectype.
	* tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
	load with pattern.
	(vectorizable_conversion): Support boolean vectors.
	(free_stmt_vec_info): Allow patterns for statements with no lhs.
	* tree-vectorizer.h (NUM_PATTERNS): Increase to 14.

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
	* config/i386/i386.c (ix86_expand_sse_movcc): Make public.
	Cast mask to FP mode if required.
	* config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
	(vcond_mask_<mode><avx512fmaskmodelower>): New.
	(vcond_mask_<mode><sseintvecmodelower>): New.
	(vcond_mask_<mode><sseintvecmodelower>): New.
	(vcond_mask_v2div2di): New.
	(vcond_mask_<mode><sseintvecmodelower>): New.
	(vcond_mask_<mode><sseintvecmodelower>): New.

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* optabs-query.h (get_vcond_mask_icode): New.
	* optabs-tree.c (expand_vec_cond_expr_p): Use
	get_vcond_mask_icode for VEC_COND_EXPR with mask.
	* optabs.c (expand_vec_cond_mask_expr): New.
	(expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
	* optabs.def (vcond_mask_optab): New.
	* tree-vect-patterns.c (vect_recog_bool_pattern): Don't
	generate redundant comparison for COND_EXPR.
	* tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
	as a condition.
	(vectorizable_condition): Likewise.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
	cond_exp with no embedded comparison.
	(vect_build_slp_tree_1): Likewise.

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/sse.md (maskload<mode>): Rename to ...
	(maskload<mode><sseintvecmodelower>): ... this.
	(maskstore<mode>): Rename to ...
	(maskstore<mode><sseintvecmodelower>): ... this.
	(maskload<mode><avx512fmaskmodelower>): New.
	(maskstore<mode><avx512fmaskmodelower>): New.

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
	(expand_MASK_STORE): Adjust to maskstore optab changes.
	* optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
	 Adjust to maskload, maskstore optab changes.
	* optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
	* optabs.def (maskload_optab): Transform into convert optab.
	(maskstore_optab): Likewise.
	* tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
	can_vec_mask_load_store_p signature change.
	(predicate_mem_writes): Use boolean mask.
	* tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
	can_vec_mask_load_store_p signature change.  Allow invariant masks.
	(vectorizable_operation): Ignore type precision for boolean vectors.

2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
	(const_vector_mask_from_tree): New.
	(const_vector_from_tree): Use const_vector_mask_from_tree
	for boolean vectors.
	* optabs-query.h (get_vec_cmp_icode): New.
	* optabs-tree.c (expand_vec_cmp_expr_p): New.
	* optabs-tree.h (expand_vec_cmp_expr_p): New.
	* optabs.c (vector_compare_rtx): Add OPNO arg.
	(expand_vec_cond_expr): Adjust to vector_compare_rtx change.
	(expand_vec_cmp_expr): New.
	* optabs.def (vec_cmp_optab): New.
	(vec_cmpu_optab): New.
	* optabs.h (expand_vec_cmp_expr): New.
	* tree-vect-generic.c (expand_vector_comparison): Add vector
	comparison optabs check.
	* tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
	operations for VF.  Add mask type computation.
	* tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
	(vectorizable_comparison): New.
	(vect_analyze_stmt): Add vectorizable_comparison.
	(vect_transform_stmt): Likewise.
	(vect_init_vector): Support boolean vector invariants.
	(vect_get_vec_def_for_operand): Add VECTYPE arg.
	(vectorizable_condition): Directly provide vectype for invariants
	used in comparison.
	* tree-vectorizer.h (get_mask_type_for_scalar_type): New.
	(enum vect_var_kind): Add vect_mask_var.
	(enum stmt_vec_info_type): Add comparison_vec_info_type.
	(vectorizable_comparison): New.
	(vect_get_vec_def_for_operand): Add VECTYPE arg.
	* tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
	(vect_create_destination_var): Likewise.
	* tree-vect-patterns.c (check_bool_pattern): Check fails
	if we can vectorize comparison directly.
	(search_type_for_mask): New.
	(vect_recog_bool_pattern): Support cases when bool pattern check fails.
	* tree-vect-slp.c (vect_build_slp_tree_1): Allow
	comparison statements.
	(vect_get_constant_vectors): Support boolean vector constants.
	* config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
	(ix86_expand_int_vec_cmp): New.
	(ix86_expand_fp_vec_cmp): New.
	* config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
	op_true and op_false.
	(ix86_int_cmp_code_to_pcmp_immediate): New.
	(ix86_fp_cmp_code_to_pcmp_immediate): New.
	(ix86_cmp_code_to_pcmp_immediate): New.
	(ix86_expand_mask_vec_cmp): New.
	(ix86_expand_fp_vec_cmp): New.
	(ix86_expand_int_sse_cmp): New.
	(ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
	(ix86_expand_int_vec_cmp): New.
	(ix86_get_mask_mode): New.
	(TARGET_VECTORIZE_GET_MASK_MODE): New.
	* config/i386/sse.md (avx512fmaskmodelower): New.
	(vec_cmp<mode><avx512fmaskmodelower>): New.
	(vec_cmp<mode><sseintvecmodelower>): New.
	(vec_cmpv2div2di): New.
	(vec_cmpu<mode><avx512fmaskmodelower>): New.
	(vec_cmpu<mode><sseintvecmodelower>): New.
	(vec_cmpuv2div2di): New.

2015-11-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68240
	* tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
	properly.
	(visit_phi): For PHIs with just a single executable edge
	take its value directly.
	(expressions_equal_p): Handle VN_TOP properly.

2015-11-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
	Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
	conservatively.

2015-11-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56118
	* tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
	cost favor vectorized version.

2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
	* config/aarch64/iterators.md (NEG_NOT): New code iterator.
	(neg_not_op): New code attribute.

2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (noce_try_inverse_constants): New function.
	(noce_process_if_block): Call it.
	* optabs.h (emit_conditional_neg_or_complement): Declare prototype.
	* optabs.def (negcc_optab, notcc_optab): Declare.
	* optabs.c (emit_conditional_neg_or_complement): New function.
	* doc/tm.texi (Standard Names): Document negcc, notcc names.

2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68236
	* haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
	if insn_queue doesn't exist.
	(haifa_sched_finish): Reset insn_queue to NULL.

2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>

	* regrename.c (create_new_chain): Initialize renamed and tied_chain.
	(build_def_use): Initialize terminated_this_insn.
	(find_best_rename_reg): Pick and check register from the tied chain.
	(regrename_do_replace): Mark head as renamed.
	(struct du_head *terminated_this_insn). New static variable.
	(scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
	* regrename.h (struct du_head): Add tied_chain, renamed members.

2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR bootstrap/68256
	* config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
	Return false.

2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/57845
	* config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
	not promote the mode for aggregate types.

2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
	* omp-low.c (build_oacc_routine_dims): New.

2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (wF constraint): New constraints
	for power9/toc fusion.
	(wG constraint): Likewise.

	* config/rs6000/predicates.md (u6bit_cint_operand): New
	predicate, recognize 0..63.
	(upper16_cint_operand): New predicate for power9 and toc fusion.
	(fpr_reg_operand): Likewise.
	(toc_fusion_or_p9_reg_operand): Likewise.
	(toc_fusion_mem_raw): Likewise.
	(toc_fusion_mem_wrapped): Likewise.
	(fusion_gpr_addis): If power9 fusion, allow fusion for a larger
	address range.
	(fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
	instead.
	(fusion_addis_mem_combo_load): Add support for power9 fusion of
	floating point loads, floating point stores, and gpr stores.
	(fusion_addis_mem_combo_store): Likewise.
	(fusion_offsettable_mem_operand): Likewise.

	* config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
	(emit_fusion_load_store): Likewise.
	(fusion_p9_p): Likewise.
	(expand_fusion_p9_load): Likewise.
	(expand_fusion_p9_store): Likewise.
	(emit_fusion_p9_load): Likewise.
	(emit_fusion_p9_store): Likewise.
	(fusion_wrap_memory_address): Likewise.

	* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
	elements for power9 fusion.
	(rs6000_debug_print_mode): Rework debug information to print more
	information about fusion.
	(rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
	(rs6000_legitimate_address_p): Recognize toc fusion as a valid
	offsettable memory address.
	(rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
	(emit_fusion_gpr_load): Move most of the code from
	emit_fusion_gpr_load into emit_fusion-addis that handles both
	power8 and power9 fusion.
	(emit_fusion_addis): Likewise.
	(emit_fusion_load_store): Likewise.
	(fusion_wrap_memory_address): Add support for TOC fusion.
	(fusion_split_address): Likewise.
	(fusion_p9_p): Add support for power9 fusion.
	(expand_fusion_p9_load): Likewise.
	(expand_fusion_p9_store): Likewise.
	(emit_fusion_p9_load): Likewise.
	(emit_fusion_p9_store): Likewise.

	* config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
	new instructions in ISA 3.0.
	(TARGET_CTZ): Likewise.
	(TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
	(TARGET_TOC_FUSION_FP): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
	fusion unspecs.
	(UNSPEC_FUSION_ADDIS): Likewise.
	(QHSI mode iterator): New iterator for power9 fusion.
	(GPR_FUSION): Likewise.
	(FPR_FUSION): Likewise.
	(mod<mode>3): Add support for ISA 3.0 modulus instructions.
	(umod<mode>3): Likewise.
	(divmod peephole): Likewise.
	(udivmod peephole): Likewise.
	(ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
	instructions.
	(ctz<mode>2_h): Likewise.
	(ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
	(ashdi3_extswsli_dot): Likewise.
	(ashdi3_extswsli_dot2): Likewise.
	(power9 fusion splitter): New power9/toc fusion support.
	(toc_fusionload_<mode>): Likewise.
	(toc_fusionload_di): Likewise.
	(fusion_gpr_load_<mode>): Update predicate function.
	(power9 fusion peephole2s): New power9/toc fusion support.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
	(fusion_p9_<mode>_constant): Likewise.

2015-11-09  Steve Ellcey  <sellcey@imgtec.com>

	* optabs.c (prepare_libcall_arg): New function.
	(expand_fixed_convert): Add call to prepare_libcall_arg.

2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>

	* sched-int.h (dump_rgn_dependencies_dot): Declare
	* sched-rgn.c (dump_rgn_dependencies_dot): New function
	* print-rtl.h (print_insn): Add prototype

	* haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
	* common.opt (-fsched-verbose): Set default value to 1.
	* invoke.texi (-fsched-verbose): Update the option's description.

2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Likewise.
	(PRINT_OPERAND_ADDRESS): Likewise.
	* config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
	to...
	(visium_print_operand_punct_valid_p): ...this.  New function.
	(TARGET_PRINT_OPERAND): Define to...
	(print_operand): Rename to...
	(visium_print_operand): ...this.
	(TARGET_PRINT_OPERAND_ADDRESS): Define to...
	(visium_output_address): Rename to...
	(visium_print_operand_address): ...this.
	(print_operand_address): Delete.

2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/68259
	* tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
	Check that the type of the first operand is an aggregate type.

2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c: Fix some OpenACC comment typos.
	(lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
	* omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
	BUILT_IN_GOACC_GET_NUM_THREADS): Delete.

2015-11-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*strmovqi_1): Fix insn enable condition.

2015-11-09  Jeff Law  <law@redhat.com>

	* tree-ssanames.c (verify_ssaname_freelists): Simplify check for
	being in gimple/ssa form.  Remove redundant check for SSA_NAME.
	Fix comment typo.

2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
	ISA 3.0 (power9).
	(-mpower9-vector): Likewise.
	(-mpower9-dform): Likewise.
	(-mpower9-minmax): Likewise.
	(-mtoc-fusion): Likewise.
	(-mmodulo): Likewise.
	(-mfloat128-hardware): Likewise.

	* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
	mask for ISA 3.0 (power9).
	(POWERPC_MASKS): Add new ISA 3.0 switches.
	(power9 cpu): Add power9 cpu.

	* config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
	(ASM_CPU_SPEC): Likewise.
	(EXTRA_SPECS): Likewise.

	* config/rs6000/rs6000-opts.h (enum processor_type): Add
	PROCESSOR_POWER9.

	* config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
	(rs6000_debug_reg_global): Add support for power9 fusion.
	(rs6000_setup_reg_addr_masks): Cache mode size.
	(rs6000_option_override_internal): Until real power9 tuning is
	added, use -mtune=power8 for -mcpu=power9.
	(rs6000_setup_reg_addr_masks): Do not allow pre-increment,
	pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
	of Altivec registers.
	(rs6000_option_override_internal): Add support for ISA 3.0 switches.
	(rs6000_loop_align): Add support for power9 cpu.
	(rs6000_file_start): Likewise.
	(rs6000_adjust_cost): Likewise.
	(rs6000_issue_rate): Likewise.
	(insn_must_be_first_in_group): Likewise.
	(insn_must_be_last_in_group): Likewise.
	(force_new_group): Likewise.
	(rs6000_register_move_cost): Likewise.
	(rs6000_opt_masks): Likewise.

	* config/rs6000/rs6000.md (cpu attribute): Add power9.
	* config/rs6000/rs6000-tables.opt: Regenerate.

	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	_ARCH_PWR9 if power9 support is available.

	* config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
	* config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.

	* configure.ac: Determine if the assembler supports the ISA 3.0
	instructions.
	* config.in (HAVE_AS_POWER9): Likewise.
	* configure: Regenerate.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
	switches.

2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
	Remove integer CONST_DOUBLE handling.  It should never occur.

2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68129
	* config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
	* config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
	Delete VOIDmode case.  Assert that mode is not VOIDmode.
	* config/aarch64/predicates.md (const0_operand): Remove const_double
	match.

2015-11-09  Martin Liska  <mliska@suse.cz>

	* ipa-inline-analysis.c (estimate_function_body_sizes): Call
	body_info release function.
	* ipa-prop.c (ipa_release_body_info): New function.
	(ipa_analyze_node): Call the function.
	(ipa_node_params::~ipa_node_params): Release known_csts.
	* ipa-prop.h (ipa_release_body_info): Declare.

2015-11-09  Martin Liska  <mliska@suse.cz>

	* gcc.c (record_temp_file): Release name string.
	* ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
	* lra-lives.c (free_live_range_list): Utilize
	lra_live_range_pool for allocation and deallocation.
	(create_live_range): Likewise.
	(copy_live_range): Likewise.
	(lra_merge_live_ranges): Likewise.
	(remove_some_program_points_and_update_live_ranges): Likewise.
	(lra_create_live_ranges_1): Release point_freq_vec that can
	be not freed from previous iteration of the function.
	* tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
	* tree-sra.c (sra_deinitialize): Release all vectors in
	base_access_vec.
	* tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
	Release edge_info for a removed edge.
	(thread_through_all_blocks): Free region vector.
	* tree-ssa.h (free_dom_edge_info): Declare function extern.

2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* optabs.c (expand_vec_cond_expr): Always get sign from type.
	* tree.c (wide_int_to_tree): Support negative values for boolean.
	(build_nonstandard_boolean_type): Use signed type for booleans.

2015-11-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68248
	* tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.

2015-11-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56118
	* tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
	* tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
	function.
	(vect_slp_analyze_data_ref_dependences): Instead of computing
	all dependences of the region DRs just analyze the code motions
	SLP vectorization will perform.  Remove SLP instances that
	cannot have their store/load motions applied.
	(vect_analyze_data_refs): Allow DRs without a vectype
	in BB vectorization.

2015-11-09  Julian Brown  <julian@codesourcery.com>

	* final.c (output_asm_insn): Pass VOIDmode to output_address.
	(output_address): Add MODE argument. Pass to print_operand_address
	hook.
	* targhooks.c (default_print_operand_address): Add MODE argument.
	* targhooks.h (default_print_operand_address): Update prototype.
	* output.h (output_address): Update prototype.
	* target.def (print_operand_address): Add MODE argument.
	* config/vax/vax.c (print_operand_address): Pass VOIDmode to
	output_address.
	(print_operand): Pass access mode to output_address.
	* config/mcore/mcore.c (mcore_print_operand_address): Add MODE
	argument.
	(mcore_print_operand): Update calls to mcore_print_operand_address.
	* config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
	output_address.
	* config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
	output_address.
	* config/tilegx/tilegx.c (output_memory_reference_mode): Remove
	global.
	(tilegx_print_operand): Don't set above global. Update calls to
	output_address.
	(tilegx_print_operand_address): Add MODE argument. Use instead of
	output_memory_reference_mode global.
	* config/frv/frv.c (frv_print_operand_address): Add MODE argument.
	(frv_print_operand): Pass mode to frv_print_operand_address calls.
	* config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
	output_address.
	* config/cris/cris.c (cris_print_operand_address): Add MODE argument.
	(cris_print_operand): Pass mode to output_address calls.
	* config/spu/spu.c (print_operand): Pass mode to output_address calls.
	* config/aarch64/aarch64.h (aarch64_print_operand)
	(aarch64_print_operand_address): Remove prototypes.
	* config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
	global.
	(aarch64_print_operand): Make static. Update calls to output_address.
	(aarch64_print_operand_address): Add MODE argument. Use instead of
	aarch64_memory_reference_mode global.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
	hooks.
	* config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
	Delete macro definitions.
	* config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
	* config/xtensa/xtensa.c (print_operand): Pass mode in
	output_address calls.
	* config/h8300/h8300.c (h8300_print_operand_address): Add MODE
	argument.
	(h83000_print_operand): Update calls to h8300_print_operand_address
	and output_address.
	* config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
	* config/tilepro/tilepro.c (output_memory_reference_mode): Delete
	global.
	(tilepro_print_operand): Pass mode to output_address.
	(tilepro_print_operand_address): Add MODE argument. Use instead of
	output_memory_reference_mode.
	* config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
	(nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
	to output_address calls.
	(nvptx_print_operand_address): Add MODE argument.
	* config/alpha/alpha.c (print_operand): Pass mode argument in
	output_address calls.
	* config/m68k/m68k.c (print_operand): Pass mode argument in
	output_address call.
	* config/avr/avr.c (avr_print_operand_address): Add MODE argument.
	(avr_print_operand): Update calls to avr_print_operand_address.
	* config/sparc/sparc.c (sparc_print_operand_address): Add MODE
	argument. Update calls to output_address.
	(sparc_print_operand): Pass mode to output_address.
	* config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
	argument.
	(iq2000_print_operand): Pass mode in output_address calls.
	* config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
	MODE argument.
	(xstormy16_print_operand): Pass mode to
	xstormy16_print_operand_address calls.
	* config/mips/mips.c (mips_print_operand): Update calls to
	output_address.
	(mips_print_operand_address): Add MODE argument.
	* config/epiphany/epiphany.c (epiphany_print_operand): Update calls
	to output_address.
	(epiphany_print_operand_address): Add MODE argument. Add FIXME note.
	* config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
	output_address.
	* config/rx/rx.c (rx_print_operand_address): Add MODE argument.
	(rx_print_operand): Update calls to output_address,
	rx_print_operand_address.
	* config/nds32/nds32.c (nds32_print_operand): Update calls to
	output_address.
	(nds32_print_operand_address): Add MODE argument.
	* config/rs6000/rs6000.c (print_operand): Pass mem mode to
	output_address calls.
	* config/c6x/c6x.c (print_address_offset): Pass mem mode to
	output_address call.
	(c6x_print_address_operand): Update calls to output_address.
	(c6x_print_operand_address): Pass mode to above.
	* config/v850/v850.c (v850_print_operand_address): Add MODE argument.
	(v850_print_operand): Pass mode to v850_print_operand_address,
	output_address.
	* config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
	(mmix_print_operand): Pass mode in output_address calls.
	* config/sh/sh.c (sh_print_operand_address): Add MODE argument.
	(sh_print_operand): Pass mem mode to output_address,
	sh_print_operand_address.
	* config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
	(cr16_print_operand): Pass mode to output_address,
	cr16_print_operand_address.
	* config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
	output_address.
	* config/microblaze/microblaze.c (print_operand): Pass mode to
	output_address.
	* config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
	output_address.
	(nios2_print_operand_address): Add MODE argument. Update call to
	nios2_print_operand_address.
	* config/s390/s390.c (print_operand): Pass mode to output_address.
	* config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
	* config/arc/arc.c (arc_print_operand): Pass VOIDmode to
	output_address.
	* config/arm/arm.c (arm_print_operand_address): Add MODE argument.
	Use instead of output_memory_reference_mode.
	(output_memory_reference_mode): Delete global.
	(arm_print_operand): Pass mem mode to output_address.
	* config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
	(m32r_print_operand): Pass mode to output_address.
	* config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
	argument.
	(msp430_print_operand): Pass mode to msp430_print_operand_addr.
	* config/i386/i386.c (ix86_print_operand): Pass mode to
	output_address calls.
	(ix86_print_operand_address): Add MODE argument.

2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/68251
	* tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
	* tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
	* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.

2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/67749
	* ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
	case before emitting the two blocks.  Instead modify the register
	in the corresponding final insn of the basic block.

2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
	assembler syntax.
	Support Solaris ld.
	Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.

	* config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
	HAVE_INITFINI_ARRAY_SUPPORT.
	* config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.

	* configure.ac (gcc_cv_as_sparc_nobits): Remove.
	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
	Don't check HAVE_AS_SPARC_NOBITS.
	Heed SECTION_NOTYPE.

	* configure: Regenerate.
	* config.in: Regenerate.

2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/68253
	* fold-const.c (fold_truth_andor_1): Initialize new variables to 0.

2015-11-09  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
	__SEG_GS, __SEG_TLS.
	(ix86_register_pragmas): Register address spaces __seg_fs,
	__seg_gs, __seg_tls.
	* config/i386/i386-protos.h (enum ix86_address_seg): Remove.
	(ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
	(struct ix86_address): Use addr_space_t instead of ix86_address_seg.
	* config/i386/i386.c (ix86_decompose_address): Likewise.
	(ix86_legitimate_address_p): Likewise.
	(memory_address_length): Likewise.  Check mem address space too.
	(ix86_print_operand): Use ix86_print_operand_address_as.
	(ix86_print_operand_address_as): Rename from
	ix86_print_operand_address, add new addr_space_t parameter.
	Validate that either the parameter or the ix86_address segment
	is default address space.  Handle ADDR_SPACE_SEG_TLS.
	(ix86_print_operand_address): New.
	(ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
	(ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
	(ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
	(ix86_addr_space_zero_address_valid): New.
	(TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
	* config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
	* config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
	* config/i386/predicates.md (address_no_seg_operand): Likewise.
	(vsib_address_operand): Likewise.
	(address_mpx_no_base_operand): Likewise.
	(address_mpx_no_index_operand): Likewise.
	* doc/extend.texi (x86 Named Address Spaces): New section.

	* config/i386/i386.c (ix86_check_no_addr_space): New.
	(decide_alg): Add have_as parameter.
	(alg_usable_p): Likewise; disable rep algorithms if set.
	(ix86_expand_set_or_movmem): Notice if either MEM has a
	non-default address space.
	(ix86_expand_strlen): Likewise.
	* config/i386/i386.md (strmov, strset): Likewise.
	(*strmovdi_rex_1): Use ix86_check_no_addr_space.
	(*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
	*strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
	*rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
	*cmpstrnqi_1, *strlenqi_1): Likewise.

	* config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
	(*movabs<mode>_2): Likewise.

	* dwarf2out.c (modified_type_die): Pass the address space number
	through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
	* target.def (TARGET_ADDR_SPACE_DEBUG): New.
	* targhooks.c (default_addr_space_debug): New.
	* targhooks.h (default_addr_space_debug): Declare.
	* doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
	* doc/tm.texi: Rebuild.

	* gimple.c (check_loadstore): Return false when 0 is a valid address.
	* fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
	null when 0 is valid in the source address space.
	* target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
	* targhooks.c (default_addr_space_zero_address_valid): New.
	* targhooks.h (default_addr_space_zero_address_valid): Declare.
	* doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
	* doc/tm.texi: Rebuild.

	* cselib.c (add_mem_for_addr): Compare address spaces when
	matching memories.
	(cselib_lookup_mem): Likewise.
	* fold-const.c (operand_equal_p): Check address spaces of
	pointer types before checking integer constants.

	PR tree-opt/66768
	* tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
	the correct type for the base.

2015-11-09  Jeff Law  <law@redhat.com>

	* tree-into-ssa.c (names_to_release): No longer static.
	* tree-into-ssa.h (names_to_release): Declare.
	* tree-ssanames.c (verify_ssaname_freelists): New debug function.
	(release_free_names_and_compact_live_names): New function extracted
	from pass_release_ssa_names::execute.
	(pass_release_ssa_names::execute): Use it.

2015-11-09  Alan Modra  <amodra@gmail.com>

	* gensupport.c (add_mnemonic_string): Make len param a size_t.
	(gen_mnemonic_setattr): Make "size" var a size_t.  Use
	obstack_blank_fast to shrink obstack.  Cast obstack_next_free
	return value.

2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68182
	* bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
	branch with only one successor just like unconditional branches.

2015-11-08  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
	non-FSM path has no edges marked with EDGE_DFS_BACK.
	(ssa_redirect_edges): No longer call mark_loop_for_removal.
	(thread_single_edge, def_split_header_continue_p): Remove.
	(bb_ends_with_multiway_branch): Likewise.
	(thread_through_loop_header): Remove cases of threading from
	latch through the header.  Simplify knowing we won't thread
	the latch.
	(thread_through_all_blocks): Simplify knowing that only the FSM
	threader needs to handle backedges.

2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/extend.texi (type attributes): Document scalar_storage_order.
	(Structure-Packing Pragmas): Rename into...
	(Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
	* doc/invoke.texi (C Dialect Options): Document -fsso-struct
	(Warnings): Document -Wno-scalar-storage-order.
	* flag-types.h (enum scalar_storage_order_kind): New enumeration.
	* calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
	extract_bit_field and store_bit_field.
	(initialize_argument_information): Adjust call to store_expr.
	(load_register_parameters): Adjust call to extract_bit_field.
	* expmed.c (check_reverse_storage_order_support): New function.
	(check_reverse_float_storage_order_support): Likewise.
	(flip_storage_order): Likewise.
	(store_bit_field_1): Add REVERSE parameter.  Flip the storage order
	of the value if it is true.  Pass REVERSE to recursive call after
	adjusting the target offset.
	Do not use extraction or movstrict instruction if REVERSE is true.
	Pass REVERSE to store_fixed_bit_field.
	(store_bit_field): Add REVERSE parameter and pass to it to above.
	(store_fixed_bit_field): Add REVERSE parameter and pass to it to
	store_split_bit_field and store_fixed_bit_field_1.
	(store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
	order of the value if it is true and adjust the target offset.
	(store_split_bit_field): Add REVERSE parameter and pass it to
	store_fixed_bit_field.  Adjust the target offset if it is true.
	(extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
	of the value if it is true.  Pass REVERSE to recursive call after
	adjusting the target offset.
	Do not use extraction or subreg instruction if REVERSE is true.
	Pass REVERSE to extract_fixed_bit_field.
	(extract_bit_field): Add REVERSE parameter and pass to it to above.
	(extract_fixed_bit_field): Add REVERSE parameter and pass to it to
	extract_split_bit_field and extract_fixed_bit_field_1.
	(extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
	order of the value if it is true and adjust the target offset.
	(extract_split_bit_field): Add REVERSE parameter and pass it to
	extract_fixed_bit_field.  Adjust the target offset if it is true.
	* expmed.h (flip_storage_order): Declare.
	(store_bit_field): Adjust prototype.
	(extract_bit_field): Likewise.
	* expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
	(emit_group_store): Adjust call to store_bit_field.
	(copy_blkmode_from_reg): Likewise.
	(copy_blkmode_to_reg): Likewise.
	(write_complex_part): Likewise.
	(read_complex_part): Likewise.
	(optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
	that it isn't true if the target is a register.
	<PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
	and flip the storage order of the value.
	<BIT_IOR_EXPR>: Flip the storage order of the value.
	(get_bit_range): Adjust call to get_inner_reference.
	(expand_assignment): Adjust calls to get_inner_reference, store_expr,
	optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
	with reverse storage order.
	(store_expr_with_bounds): Add REVERSE parameter and pass it to
	recursive calls and call to store_bit_field.  Force the value into a
	register if it is true and then flip the storage order of the value.
	(store_expr): Add REVERSE parameter and pass it to above.
	(categorize_ctor_elements_1): Adjust call to
	initializer_constant_valid_p.
	(store_constructor_field): Add REVERSE parameter and pass it to
	recursive calls and call to store_field.
	(store_constructor): Add REVERSE parameter and pass it to calls to
	store_constructor_field and store_expr.  Set it to true for an
	aggregate type with TYPE_REVERSE_STORAGE_ORDER.
	(store_field): Add REVERSE parameter and pass it to recursive calls
	and calls to store_expr and store_bit_field.  Temporarily flip the
	storage order of the value with record type and integral mode and
	adjust the shift if it is true.
	(get_inner_reference): Add PREVERSEP parameter and set it to true
	upon encoutering a reference with reverse storage order.
	(expand_expr_addr_expr_1): Adjust call to get_inner_reference.
	(expand_constructor): Adjust call to store_constructor.
	(expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
	of the union type to store_expr in the MEM case and assert that it
	isn't set in the REG case.  Adjust call to store_field.
	(expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
	<normal_inner_ref>: Add REVERSEP variable and adjust calls to
	get_inner_reference and extract_bit_field. Temporarily flip the
	storage order of the value with record type and integral mode and
	adjust the shift if it is true.  Flip the storage order of the value
	at the end if it is true.
	<VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
	get_inner_reference.  Do not fetch an inner reference if it is true.
	* expr.h (store_expr_with_bounds): Ajust prototype.
	(store_expr): Likewise.
	* fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
	REF_REVERSE_STORAGE_ORDER on the reference according to it.
	(optimize_bit_field_compare): Deal with reverse storage order.
	Adjust calls to get_inner_reference and make_bit_field_ref.
	(decode_field_reference): Add PREVERSEP parameter and adjust call to
	get_inner_reference.
	(fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
	to decode_field_reference and make_bit_field_ref.
	(fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
	<VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
	(fold_comparison): Adjust call to get_inner_reference.
	(split_address_to_core_and_offset): Adjust call to
	get_inner_reference.
	* gimple-expr.c (useless_type_conversion_p): Return false for array
	types with different TYPE_REVERSE_STORAGE_ORDER flag.
	* gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
	REF_REVERSE_STORAGE_ORDER flag.
	* lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
	* output.h (assemble_real): Adjust prototype.
	* print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
	* stor-layout.c (finish_record_layout): Propagate the
	TYPE_REVERSE_STORAGE_ORDER flag to the variants.
	* tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
	(TYPE_SATURATING): Adjust.
	(REF_REVERSE_STORAGE_ORDER): Document.
	* tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
	set it to true upon encoutering a reference with reverse storage order.
	* tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
	* tree-inline.c (remap_gimple_op_r): Propagate the
	REF_REVERSE_STORAGE_ORDER flag.
	(copy_tree_body_r): Likewise.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
	store_expr.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
	TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
	* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
	* tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
	REF_REVERSE_STORAGE_ORDER flag.
	(verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
	(gimple_canonical_types_compatible_p): Likewise.
	* tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
	(TYPE_SATURATING): Adjust.
	(REF_REVERSE_STORAGE_ORDER): New flag.
	(reverse_storage_order_for_component_p): New inline predicate.
	(storage_order_barrier_p): Likewise.
	(get_inner_reference): Adjust prototype.
	* varasm.c: Include expmed.h.
	(assemble_variable_contents): Adjust call to output_constant.
	(assemble_real): Add REVERSE parameter.  Flip the storage
	order of the value if REVERSE is true.
	(compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
	(assemble_constant_contents): Adjust call to output_constant.
	(output_constant_pool_2): Adjust call to assemble_real.
	(initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
	TYPE_REVERSE_STORAGE_ORDER.
	(initializer_constant_valid_p): Add REVERSE parameter.
	(output_constant): Add REVERSE parameter.
	<INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
	<REAL_TYPE>: Adjust call to assemble_real.
	<COMPLEX_TYPE>: Pass it to recursive calls.
	<ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
	<RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
	(struct oc_local_state): Add REVERSE field.
	(output_constructor_array_range): Adjust calls to output_constant.
	(output_constructor_regular_field): Likewise.
	(output_constructor_bitfield): Adjust call to output_constructor.
	Flip the storage order of the value if REVERSE is true.
	(output_constructor): Add REVERSE parameter.  Set it to true for an
	aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
	output_constructor_bitfield.
	* varasm.h (initializer_constant_valid_p): Default REVERSE to false.
	* asan.c (instrument_derefs): Adjust call to get_inner_reference.
	* builtins.c (get_object_alignment_2): Likewise.
	* cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
	and get_ref_base_and_extent.
	* dbxout.c (dbxout_expand_expr): Likewise.
	* dwarf2out.c (add_var_loc_to_decl): Likewise.
	(loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
	(loc_list_from_tree): Likewise.
	(fortran_common): Likewise.
	* gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
	get_ref_base_and_extent.
	(get_base_constructor): Likewise.
	(fold_const_aggregate_ref_1): Likewise.
	* gimple-laddress.c (pass_laddress::execute): Adjust call to
	get_inner_reference.
	* gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
	get_inner_reference and bail out on reverse storage order.
	* ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
	* ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
	build_ref_for_offset.
	* ipa-polymorphic-call.c (set_by_invariant): Adjust call to
	get_ref_base_and_extent.
	(ipa_polymorphic_call_context): Likewise.
	(extr_type_from_vtbl_ptr_store): Likewise.
	(check_stmt_for_type_change): Likewise.
	(get_dynamic_type): Likewise.
	* ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
	get_ref_base_and_extent.
	(compute_complex_assign_jump_func): Likewise.
	(get_ancestor_addr_info): Likewise.
	(compute_known_type_jump_func): Likewise.
	(determine_known_aggregate_parts): Likewise.
	(ipa_get_adjustment_candidate): Likewise.
	(ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
	* ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
	(build_ref_for_offset): Adjust prototype.
	* simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
	get_inner_reference.
	* tree-affine.c (tree_to_aff_combination): Adjust call to
	get_inner_reference.
	(get_inner_reference_aff): Likewise.
	* tree-data-ref.c (split_constant_offset_1): Likewise.
	(dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
	* tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
	get_inner_reference.
	* tree-sra.c (struct access): Add REVERSE and move WRITE around.
	(dump_access): Print new fields.
	(create_access): Adjust call to get_ref_base_and_extent and set the
	REVERSE flag according to the result.
	(completely_scalarize_record): Set the REVERSE flag.
	(scalarize_elem): Add REVERSE parameter.
	(build_access_from_expr_1): Preserve storage order barriers.
	(build_accesses_from_assign): Likewise.
	(build_ref_for_offset): Add REVERSE parameter and set the
	REF_REVERSE_STORAGE_ORDER flag accordingly.
	(build_ref_for_model): Adjust call to build_ref_for_offset and clear
	the REF_REVERSE_STORAGE_ORDER flag if there are components.
	(analyze_access_subtree): Likewise.
	(create_artificial_child_access): Set the REVERSE flag.
	(get_access_for_expr): Adjust call to get_ref_base_and_extent.
	(turn_representatives_into_adjustments): Propagate REVERSE flag.
	(ipa_sra_check_caller): Adjust call to get_inner_reference.
	* tree-ssa-alias.c (ao_ref_base): Adjust call to
	get_ref_base_and_extent.
	(aliasing_component_refs_p): Likewise.
	(stmt_kills_ref_p_1): Likewise.
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
	Return true if reverse storage order.
	<BIT_FIELD_REF>: Likewise.
	<COMPONENT_REF>: Likewise.
	<ARRAY_REF>: Likewise.
	<ARRAY_RANGE_REF>: Likewise.
	(split_address_cost): Likewise.  Bail out if reverse storage order.
	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
	get_inner_reference.  Bail out if reverse storage order.
	(bswap_replace): Adjust call to get_inner_reference.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
	the REF_REVERSE_STORAGE_ORDER flag.
	<BIT_FIELD_REF>: Likewise.
	* tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
	barriers.
	(copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
	to the REF_REVERSE_STORAGE_ORDER flag.
	<BIT_FIELD_REF>: Likewise.
	<VIEW_CONVERT_EXPR>: Set it for storage order barriers.
	(contains_storage_order_barrier_p): New predicate.
	(vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
	Punt on storage order barriers if necessary.
	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
	* tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
	call to get_ref_base_and_extent.
	(do_structure_copy): Likewise.
	* tree-vect-data-refs.c (vect_check_gather): Adjust call to
	get_inner_reference.
	(vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
	* tsan.c (instrument_expr): Adjust call to get_inner_reference.
	* ubsan.c (instrument_bool_enum_load): Likewise.
	(instrument_object_size): Likewise.
	* var-tracking.c (track_expr_p): Adjust call to
	get_ref_base_and_extent.
	* config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
	get_inner_reference.
	* config/s390/s390.c (s390_expand_atomic): Adjust call to
	store_bit_field.
	* config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
	extract_bit_field.
	* config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.

2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.opt (mfix-at697f): Add final period.

2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67864
	* common/config/i386/i386-common.c (ix86_option_optimization_table)
	<OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
	at -Os and up.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
	internal functions.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
	* builtins.c, genmatch.c, tree-core.h: Don't undef them here.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* internal-fn.def: #undef DEF_INTERNAL_FN at the end.
	* internal-fn.c: Don't undef it here.
	* tree-core.h: Likewise.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_nan): Delete.
	(fold_builtin_memcmp): Remove case where both arguments are constant.
	(fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
	(fold_builtin_strspn, fold_builtin_strcspn): Likewise.
	(fold_builtin_1): Remove BUILT_IN_NAN* handling.
	* fold-const-call.c: Include fold-const.h.
	(host_size_t_cst_p): New function.
	(build_cmp_result, fold_const_builtin_nan): Likewise.
	(fold_const_call_1): New function, split out from...
	(fold_const_call): ...here (for all three interfaces).  Handle
	constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
	(fold_builtin_1): Don't call them.
	* fold-const-call.c: Include tm.h.
	(fold_const_call_ss): New variant for integer-to-integer folds.
	(fold_const_call): Call it.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_classify): Move constant cases to...
	* fold-const-call.c (fold_const_call_ss): ...here.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.h (c_getstr): Move to...
	* fold-const.h (c_getstr): ...here.
	* builtins.c (c_getstr): Move to...
	* fold-const.c (c_getstr): ...here.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
	ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
	the dominance info; free it if we can't.
	(pass_call_cdce::execute): Don't free the dominance info here.

2015-11-06  Jeff Law  <law@redhat.com>

	* tree-ssa-threadedge.c (dummy_simplify): Remove.
	(thread_around_empty_blocks): Remove backedge_seen_p argument.
	If we thread to a backedge, then return false.  Update recursive
	call to eliminate backedge_seen_p argument.
	(thread_through_normal_block): Remove backedge_seen_p argument.
	Remove backedge_seen_p argument from calls to
	thread_around_empty_blocks.  Remove checks on backedge_seen_p.
	If we thread to a backedge, then return 0.
	(thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
	pass it to thread_through_normal_block or thread_through_empty_blocks.
	For joiner handling, if we see a backedge, do not try normal
	threading.

2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>

	* graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
	* graphite-poly.c (new_scop): Initialize original_schedule.
	(free_scop): Free original_schedule.
	* graphite-poly.h (struct scop): Add field original_schedule.
	* graphite-sese-to-poly.c (build_scop_original_schedule): New.
	(build_poly_scop): Call build_scop_original_schedule.

2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>

	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
	(build_pbb_minimal_scattering_polyhedrons): New.
	(build_scop_scattering): Remove.
	(build_scop_minimal_scattering): New.
	(build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
	(build_poly_scop): Call build_scop_minimal_scattering.

2015-11-06  Jeff Law  <law@redhat.com>

	* cfg-flags.def (IGNORE): New edge flag.
	* tree-vrp.c (identify_jump_threads): Mark and clear edges
	scheduled for removal with EDGE_IGNORE around call into
	jump threader.  Do no thread across edges with EDGE_IGNORE,
	but do allow threading across those with EDGE_DFS_BACK.

2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/md.texi (multi-alternative constraints): Don't document
	alternatives inherently tied to reload for the user documentation.

2015-11-06  Michael Collison  <michael.collison@linaro.org>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	Revert:
	2015-08-01  Michael Collison  <michael.collison@linaro.org
		    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/arm.md (*arm_smin_cmp): New pattern.
	(*arm_umin_cmp): Likewise.

2015-11-06  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
	* omp-low.c (check_omp_nesting_restrictions): Update for the
	various new OpenMP 4.5 nesting restrictions, clarified
	nesting glossary, closely nested region relationship clarified
	to mean explicit or implicit parallel regions (target/teams),
	use %</%> or %qs where appropriate.

2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (loop_is_valid_scop): Call
	optimize_loop_nest_for_speed_p.

2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-optimize-isl.c (optimize_isl): Call
	isl_options_set_schedule_maximize_band_depth.

2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (scop_detection::merge_sese): Entry
	and exit edges should not be a part of irreducible loop.
	(scop_detection::can_represent_loop_1): Loops should not be
	irreducible.
	(scop_detection::harmful_stmt_in_region): All the basic block
	should belong to reducible loops.

2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/aarch64/aarch64-simd-builtins.def: Update builtins
	tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
	* config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
	(aarch64_tbl3<mode>) ... this, which supports v16qi too.
	(aarch64_tbx4v8qi): Rename to...
	aarch64_tbx4<mode>): ... this.
	(aarch64_qtbl3<mode>): New pattern.
	(aarch64_qtbx3<mode>): New pattern.
	(aarch64_qtbl4<mode>): New pattern.
	(aarch64_qtbx4<mode>): New pattern.
	* config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
	(vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
	(vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
	(vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
	(vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
	(vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
	(vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
	(vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
	functions.

2015-11-06  Mike Stump  <mikestump@comcast.net>

	PR debug/66728
	* dwarf2out.c (get_full_len): Return a value based upon the actual
	precision needed for the value.
	(add_const_value_attribute): Use a maximal wide-int for
	CONST_WIDE_INTs, not VOIDmode.
	(output_die): Don't ever output NULL with printf.

	* rtl.h (get_precision of rtx_mode_t): Ensure we never process
	BLKmode nor VOIDmode values.

2015-11-06  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
	and "range2".
	(parse_gcc_colors): Update comment to describe default GCC_COLORS.
	* diagnostic-core.h (warning_at_rich_loc): New declaration.
	(error_at_rich_loc): New declaration.
	(permerror_at_rich_loc): New declaration.
	(inform_at_rich_loc): New declaration.
	* diagnostic-show-locus.c (adjust_line): Delete.
	(struct point_state): New struct.
	(class colorizer): New class.
	(class layout_point): New class.
	(class layout_range): New class.
	(struct line_bounds): New.
	(class layout): New class.
	(colorizer::colorizer): New ctor.
	(colorizer::~colorizer): New dtor.
	(layout::layout): New ctor.
	(layout::print_source_line): New method.
	(layout::print_annotation_line): New method.
	(layout::get_state_at_point): New method.
	(layout::get_x_bound_for_row): New method.
	(diagnostic_show_locus): Reimplement in terms of class layout.
	(diagnostic_print_caret_line): Delete.
	* diagnostic.c (diagnostic_initialize): Replace
	MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
	(diagnostic_set_info_translated): Convert param from location_t
	to rich_location *.  Eliminate calls to set_location on the
	message in favor of storing the rich_location ptr there.
	(diagnostic_set_info): Convert param from location_t to
	rich_location *.
	(diagnostic_build_prefix): Break out array into...
	(diagnostic_kind_color): New variable.
	(diagnostic_get_color_for_kind): New function.
	(diagnostic_report_diagnostic): Colorize the option_text
	using the color for the severity.
	(diagnostic_append_note): Update for change in signature of
	diagnostic_set_info.
	(diagnostic_append_note_at_rich_loc): New function.
	(emit_diagnostic): Update for change in signature of
	diagnostic_set_info.
	(inform): Likewise.
	(inform_at_rich_loc): New function.
	(inform_n): Update for change in signature of diagnostic_set_info.
	(warning): Likewise.
	(warning_at): Likewise.
	(warning_at_rich_loc): New function.
	(warning_n): Update for change in signature of diagnostic_set_info.
	(pedwarn): Likewise.
	(permerror): Likewise.
	(permerror_at_rich_loc): New function.
	(error): Update for change in signature of diagnostic_set_info.
	(error_n): Likewise.
	(error_at): Likewise.
	(error_at_rich_loc): New function.
	(sorry): Update for change in signature of diagnostic_set_info.
	(fatal_error): Likewise.
	(internal_error): Likewise.
	(internal_error_no_backtrace): Likewise.
	(source_range::debug): New function.
	* diagnostic.h (struct diagnostic_info): Eliminate field
	"override_column".  Add field "richloc".
	(struct diagnostic_context): Add field "colorize_source_p".
	(diagnostic_override_column): Delete.
	(diagnostic_set_info): Convert param from location_t to
	rich_location *.
	(diagnostic_set_info_translated): Likewise.
	(diagnostic_append_note_at_rich_loc): New function.
	(diagnostic_num_locations): New function.
	(diagnostic_expand_location): Get the location from the
	rich_location.
	(diagnostic_print_caret_line): Delete.
	(diagnostic_get_color_for_kind): New declaration.
	* genmatch.c (linemap_client_expand_location_to_spelling_point): New.
	(error_cb): Update for change in signature of "error" callback.
	(fatal_at): Likewise.
	(warning_at): Likewise.
	* input.c (linemap_client_expand_location_to_spelling_point): New.
	* pretty-print.c (text_info::set_range): New method.
	(text_info::get_location): New method.
	* pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
	(struct text_info): Eliminate "locations" array in favor of
	"m_richloc", a rich_location *.
	(textinfo::set_location): Add a "caret_p" param, and reimplement
	in terms of a call to set_range.
	(textinfo::get_location): Eliminate inline implementation in favor of
	an out-of-line reimplementation.
	(textinfo::set_range): New method.
	* rtl-error.c (diagnostic_for_asm): Update for change in signature
	of diagnostic_set_info.
	* tree-diagnostic.c (default_tree_printer): Update for new
	"caret_p" param for textinfo::set_location.
	* tree-pretty-print.c (percent_K_format): Likewise.

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	Properly apply.
	2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	* config/aarch64/aarch64.c
	(aarch64_can_use_per_function_literal_pools_p): New.
	(aarch64_use_blocks_for_constant_p): Adjust declaration
	and use aarch64_can_use_function_literal_pools_p.
	(aarch64_select_rtx_section): Update.

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
	* config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
	(arm_output_multireg_pop): Likewise.
	(output_move_double):  Likewise.
	(output_move_quad):  Likewise.
	(output_return_instruction): Likewise.
	(arm_print_operand): Remove support for %( and %. print modifiers.
	(arm_output_shift): Make unified asm.
	(arm_declare_function_name): Likewise.
	* config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
	(ASM_APP_OFF): Adjust.
	(ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
	(ASM_OUTPUT_REG_POP): Likewise.
	* config/arm/arm.md: Adjust uses of %., %(, %)
	* config/arm/sync.md: Likewise.
	* config/arm/thumb2.md: Likewise.
	* config/arm/ldmstm.md: Regenerate.
	* config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
	* doc/invoke.texi (masm-unified-syntax): Update documentation.

2015-11-06  David Malcolm  <dmalcolm@redhat.com>

	* input.c (dump_line_table_statistics): Dump stats on adhoc table.

2015-11-07  Jan Hubicka  <hubicka@ucw.cz>

	* tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
	add OEP_MATCH_SIDE_EFFECTS.
	* fold-const.c (operand_equal_p): Update documentation; handle
	OEP_MATCH_SIDE_EFFECTS.
	* tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
	OEP_MATCH_SIDE_EFFECTS.

2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
	* config/aarch64/aarch64-protos.h: Declare.
	* config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
	frsqrts.
	* config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
	* config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
	code when applicable.
	* config/aarch64/aarch64.md: Added enum entries.
	* config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.

2015-11-07  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/68057
	PR ipa/68220
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
	issue when offset is out of range.
	(contains_type_p): Fix out of range check, clear dynamic flag.

2015-11-06  Arnout Vandecappelle  <arnout@mind.be>

	* config.gcc (e6500): Fix cpu_is_64bit typo.

2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-sra.c (completely_scalarize): Properly handle negative array
	indices using offset_int.

2015-11-06  Richard Biener  <rguenther@suse.de>

	* alloc-pool.h (object_allocator::allocate): Default-initialize
	object.

2015-11-06  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
	* lra.c (init_reg_info): Truncate copy_vec instead of
	re-allocating a new one and leaking the old.
	* ipa-inline-analysis.c (estimate_function_body_sizes): Free
	bb_infos vec.
	* sched-deps.c (sched_deps_finish): Free the dn/dl pools.
	* postreload-gcse.c (free_mem): Free modify_mem_list and
	canon_modify_mem_list.

2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR tree-optimization/68145
	* tree-vect-stmts.c (vectorizable_operation): Fix
	determination for booleans.

2015-11-06  Tom de Vries  <tom@codesourcery.com>

	* tree-cfg.c (gimple_split_block_before_cond_jump): Split before
	cond_jump, instead of split after last nondebug insn before cond_jump.
	* tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
	returning.

2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68088
	* config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
	subregs from accumulator and make sure it's a register.

2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>

	* config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
	low part to scalar.
	(reduc_uplus_<mode>): Remove.
	(reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
	loongson_extract_lo_<mode>.
	(reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
	reduc_smax_<mode>, reduc_smax_<mode>, use vec
	loongson_extract_lo_<mode>.
	(reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.

2015-11-06  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
	members.
	(vect_stmt_in_region_p): Declare.
	* tree-vect-slp.c (new_bb_vec_info): Work on a region.
	(destroy_bb_vec_info): Likewise.
	(vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
	(vect_get_and_check_slp_defs): Likewise.
	(vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
	(vect_slp_bb): Likewise.
	* tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
	in terms of vect_stmt_in_region_p.
	(vect_pattern_recog): Iterate over the BB region.
	* tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
	* tree-vectorizer.c (vect_stmt_in_region_p): New function.
	(pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
	* config/i386/i386.c: Include gimple-iterator.h.
	* config/aarch64/aarch64.c: Likewise.

2015-11-06  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/67753
	PR rtl-optimization/64164
	* function.c (assign_parm_setup_block): Avoid allocating a
	stack slot if we don't have an ABI-reserved one.  Emit the
	copy to target_reg in the conversion seq if the copy from
	entry_parm is in it too.  Don't use the conversion seq to copy
	a PARALLEL to a REG or a CONCAT.

2015-11-06  Richard Biener  <rguenther@suse.de>

	* tree-hash-traits.h (tree_operand_hash): Provide equal, not
	equal_keys.

2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>


	* gimplify.c (gimplify_scan_omp_clauses): Add support for
	OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
	(gimplify_adjust_omp_clauses): Likewise.
	* omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
	* tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
	(omp_clause_code_name): Likewise.
	(walk_tree_1): Handle OMP_CLAUSE_TILE.
	* tree.h (OMP_TILE_LIST): New macro.

2015-11-05  Martin Sebor  <msebor@redhat.com>

	PR c++/67942
	* doc/invoke.texi (-Wplacement-new): Document new option.

2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/65963
	* tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
	LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.

2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
	(noce_convert_multiple_sets): Likewise.
	(noce_process_if_block): Call them.

2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>

	* gimple-fold.c: Include omp-low.h.
	(fold_internal_goacc_dim): New.
	(gimple_fold_call): Call it.

2015-11-05  Jakub Jelinek  <jakub@redhat.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* builtin-types.def
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
	SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
	(struct cgraph_simd_clone_arg): Adjust comment.
	* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
	to GOMP_target_ext.  Add num_teams and thread_limit arguments.
	(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
	to GOMP_target_data_ext.
	(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
	to GOMP_target_update_ext.
	(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
	BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
	* tree-core.h (enum omp_clause_schedule_kind): Add
	OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
	OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
	OMP_CLAUSE_SCHEDULE_LAST value.
	* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
	OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
	* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
	OMP_FOR_CHECK.  Remove comment.
	* tree-pretty-print.c (dump_omp_clause): Handle
	GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
	Simplify.  Print schedule clause modifiers.
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
	SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
	cases.
	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
	(omp_default_clause): Tweak for
	private/firstprivate/is_device_ptr variables on target
	construct and use_device_ptr on target data.
	(omp_check_private): Likewise.
	(omp_notice_variable): For references check whether what it refers
	to has mappable type, rather than the reference itself.
	(omp_is_private): Diagnose linear iteration variables on non-simd
	constructs.
	(omp_no_lastprivate): Return true only for Fortran.
	(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
	GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
	Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
	GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
	based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
	lastprivate and linear when combined with distribute.  Gimplify
	variable low-bound for array reduction.  Look through
	POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
	reductions.
	(gimplify_adjust_omp_clauses_1): For implicit references to
	variables with reference type and when not ref to scalar or
	ref to pointer, map what they refer to using tofrom and
	use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
	(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
	from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
	Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
	Diagnose the same var on both firstprivate and lastprivate on
	distribute construct.
	(gimplify_omp_for): Fix up handling of predetermined
	lastprivate or linear iter vars when combined with distribute.
	(find_omp_teams, computable_teams_clause, optimize_target_teams): New
	functions.
	(gimplify_omp_workshare): Call optimize_target_teams.
	* omp-low.c (struct omp_region): Add sched_modifiers field.
	(struct omp_for_data): Likewise.
	(omp_any_child_fn_dumped): New variable.
	(extract_omp_for_data): Fill in sched_modifiers, and mask out
	OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
	from sched_kind.
	(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
	bits of OMP_CLAUSE_SCHED_KIND.
	(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
	drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
	for array section reductions.
	(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
	for distribute parallel for, if there are lastprivate clauses on the
	for.
	(lower_rec_input_clauses): Handle non-zero low-bound on array
	section reductions.
	(lower_reduction_clauses): Likewise.
	(lower_send_clauses): Look through POINTER_PLUS_EXPR
	for array section reductions.
	(expand_parallel_call): Use nonmonotonic entrypoints for
	nonmonotonic: dynamic/guided.
	(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
	child_fn if current_function_decl has assembler name set, but child_fn
	does not.  Dump the header and IL of the child function when not in SSA
	form.
	(expand_omp_target): Likewise.  Pass num_teams and thread_limit
	arguments to BUILT_IN_GOMP_TARGET.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
	Initialize the extra _looptemp_ clause to fd->loop.n2.
	(expand_omp_for): Use nonmonotonic entrypoints for
	nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
	(expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
	again if we have dumped any child functions.
	(lower_omp_for_lastprivate): Determine the right count variable
	for distribute simd, or distribute parallel for{, simd}.
	(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
	and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
	support.
	(simd_clone_clauses_extract): Handle variable step
	for references and arguments passed by reference.
	(simd_clone_mangle): Mangle ref/uval/val variable steps.
	(simd_clone_adjust_argument_types): Handle
	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
	(simd_clone_linear_addend): New function.
	(simd_clone_adjust): Handle variable step like similarly
	to constant step, use simd_clone_linear_addend to determine
	the actual step at runtime.

2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>

	* target.def (goacc.dim_limit): New hook.
	* targhooks.h (default_goacc_dim_limit): Declare.
	* doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
	* doc/tm.texi: Rebuilt.
	* omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
	* omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
	(default_goacc_dim_limit): New.
	* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
	(nvptx_goacc_dim_limit) New.
	(TARGET_GOACC_DIM_LIMIT): Override.
	* tree-vrp.c: Include omp-low.h, target.h.
	(extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
	IFN_GOACC_DIM_POS.

2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-generic.c (do_compare): Use -1 for true
	result instead of 1.

2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_can_use_per_function_literal_pools_p): New.
	(aarch64_use_blocks_for_constant_p): Adjust declaration
	and use aarch64_can_use_function_literal_pools_p.
	(aarch64_select_rtx_section): Update.

2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* targhooks.c (default_get_mask_mode): Use BLKmode in
	case target doesn't support required vector mode.
	* stor-layout.c (layout_type); Check for BLKmode.

2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* 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.

2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
	(translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
	* graphite-scop-detection.c (dot_all_scops_1): Moved out of
	anonymous namespace.
	* graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
	(isl_id_for_pbb): Use a buffer of size 10.
	(isl_id_for_ssa_name): Same.
	* sese.c (set_rename): Add more dumps.

2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (struct omp_context): Remove reduction_map field.
	(lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
	(new_omp_context, delete_omp_context, scan_omp_target): Remove
	reduction_map handling.
	(lower_omp_target): Remove obsolete openacc reduction handling.

2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.

2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* config/nvptx/nvptx.c: Include gimple headers.
	(worker_red_size, worker_red_align, worker_red_name,
	worker_red_sym): New.
	(nvptx_option_override): Initialize worker reduction buffer.
	(nvptx_file_end): Write out worker reduction buffer var.
	(nvptx_expand_shuffle, nvptx_expand_worker_addr,
	nvptx_expand_cmp_swap): New builtin expanders.
	(enum nvptx_builtins): New.
	(nvptx_builtin_decls): New.
	(nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
	(PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
	(nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
	nvptx_lockless_update): New helpers.
	(nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
	nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
	(nvptx_goacc_reduction): New.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
	TARGET_BUILTIN_DECL): Override.
	(TARGET_GOACC_REDUCTION): Override.

2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* internal-fn.def (GOACC_REDUCTION): New.
	* internal-fn.h (enum ifn_goacc_reduction_kind): New.
	* internal-fn.c (expand_GOACC_REDUCTION): New.
	* target.def (goacc.reduction): New OpenACC hook.
	* targhooks.h (default_goacc_reduction): Declare.
	* doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
	* doc/tm.texi: Rebuilt.
	* omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
	scan_sharing_clauses): Remove oacc reduction handling here.
	(lower_rec_input_clauses): Don't handle OpenACC reductions here.
	(oacc_lower_reduction_var_helper): Delete.
	(lower_oacc_reductions): New.
	(lower_reduction_clauses): Don't handle OpenACC reductions here.
	(lower_oacc_head_tail): Call lower_oacc_reductions.
	(oacc_gimple_assign, oacc_init_reduction_array,
	oacc_initialize_reduction_data, oacc_finalize_reduction_data,
	oacc_process_reduction_data): Delete.
	(lower_omp_target): Remove old OpenACC reduction handling.  Insert
	dummy OpenACC gang reduction for reductions at outer level.
	(oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
	(default_goacc_reduction): New.
	(execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.

2015-11-04  Martin Liska  <mliska@suse.cz>

	* cgraphunit.c (cgraph_node::expand_thunk): Call
	allocate_struct_function before init_function_start.
	(cgraph_node::expand): Use push_cfun and pop_cfun.
	* config/i386/i386.c (ix86_code_end): Call
	allocate_struct_function before init_function_start.
	* config/rs6000/rs6000.c (rs6000_code_end): Likewise.
	* function.c (init_function_start): Move preamble to all
	callers.
	* passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
	(execute_one_pass): Handle newly added TODO_discard_function.
	(execute_pass_list_1): Terminate if cfun equals to NULL.
	(execute_pass_list): Do not push and pop cfun, expect that
	cfun is set.
	* tree-pass.h (TODO_discard_function): Define.

2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>

	* cfganal.c (inverted_post_order_compute): Remove conditional
	compilation, use flag_checking.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove ENABLE_CHECKING.
	* genconditions.c: Do not #undef ENABLE_CHECKING.
	* sese.h (bb_in_region): Comment out broken check.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
	conditional compilation, use flag_checking.

2015-11-04  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67742
	* tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
	field.
	(push_fields_onto_fieldstack): Handle restrict_pointed_type field.
	(create_variable_info_for_1): Add and handle handle_param parameter.
	Add restrict handling.
	(create_variable_info_for): Call create_variable_info_for_1 with extra
	arg.
	(make_param_constraints): Drop restrict_name parameter.  Ignore
	vi->only_restrict_pointers.
	(intra_create_variable_infos): Call create_variable_info_for_1 with
	extra arg.  Remove restrict handling.  Call make_param_constraints with
	one fewer arg.

2015-11-04  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
	variable.

2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/arm/coff.h: Remove.

2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
	check for aggregate types and beef up comment for mode check.

2015-11-03  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
	data references here.
	* tree-vect-loop.c: Include cgraph.h.
	(vect_analyze_loop_2): Collect data references here.
	* tree-vect-slp.c (find_bb_location): Inline ...
	(vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
	Factor in vect_slp_transform_bb.
	(vect_slp_transform_bb): Removed.
	(vect_slp_analyze_bb_1): Collect data references here.
	* tree-vectorizer.c (pass_slp_vectorize::execute): Call
	vect_slp_bb.
	* tree-vectorizer.h (vect_slp_bb): Declare.
	(vect_slp_analyze_bb): Remove.
	(vect_slp_transform_bb): Remove.
	(find_bb_location): Remove.
	(vect_analyze_data_refs): Remove stmt count reference parameter.

2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>

	* multiple_target.c (create_dispatcher_calls): Add target check
	on ifunc.
	(create_target_clone): Change assembler name for versioned declarations.

2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
	* omp-low.c (check_omp_nesting_restrictions): Allow
	GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
	contexts.

2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (fmulx): New.
	* config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
	* config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
	builtin.
	(vmulxq_f32): Likewise.
	(vmulx_f64): New.
	(vmulxq_f64): Rewrite to call fmulx builtin.
	(vmulxs_f32): Likewise.
	(vmulxd_f64): Likewise.
	(vmulx_lane_f32): Remove.
	* config/aarch64/iterators.md (UNSPEC): Add fmulx.

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

	* config/aarch64/aarch64.md (*movhf_aarch64): Use
	aarch64_reg_or_fp_zero for second operand.

2015-11-03  Alexandre Oliva  <aoliva@redhat.com>

	* gimple-expr.c: Include hash-set.h and rtl.h.
	(mark_addressable_queue): New var.
	(mark_addressable): Factor actual marking into...
	(mark_addressable_1): ... this.  Queue it up during expand.
	(mark_addressable_2): New.
	(flush_mark_addressable_queue): New.
	* gimple-expr.h (flush_mark_addressable_queue): Declare.
	* cfgexpand.c: Include gimple-expr.h.
	(pass_expand::execute): Flush mark_addressable queue.

2015-11-02  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
	bb_no_side_effects_p tests...
	(tree_ssa_ifcombine_bb): ... here.

	PR tree-optimization/68083
	* tree-ssa-ifcombine.c: Include tree-ssa.h.
	(bb_no_side_effects_p): Test for undefined uses too.
	* tree-ssa.c (gimple_uses_undefined_value_p): New.
	* tree-ssa.h (gimple_uses_undefined_value_p): Declare.

2015-11-02  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
	cases where the loop latch edge is in the middle of an FSM path.

2015-11-03  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
	(make_param_constraints): ... this.  Add and handle restrict_name
	parameter.  Handle is_full_var case.
	(intra_create_variable_infos): Use make_param_constraints.

2015-11-03  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (make_restrict_var_constraints): Replace
	make_copy_constraint call with make_constraint_from call.

2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
	PIE executables.

2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.h (fold_fma): Move to fold-const-call.h.
	* builtins.c: Include fold-const-call.h.
	(mathfn_built_in_2): New function, split out from...
	(mathfn_built_in_1): ...here.
	(do_real_to_int_conversion, fold_const_builtin_pow)
	(fold_const_builtin_logb, fold_const_builtin_significand)
	(fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
	(do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
	(fold_builtin_sincos): Use fold_const_call to handle constants.
	(fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
	checks for ERROR_MARK.  Use fold_const_call to handle constant
	folds for math functions.
	(fold_fma): Move to fold-const-call.c.
	* fold-const.c: Include fold-const-call.h.
	* Makefile.in (OBJS): Add fold-const-call.o.
	(PLUGIN_HEADERS): Add fold-const-call.h.
	* realmpfr.h (real_from_mpfr): Allow the format to be specified
	directly.
	* realmpfr.c (real_from_mpfr): Likewise.
	* fold-const-call.h, fold-const-call.c: New files.

2015-11-02  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
	brackets and semicolon.

2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>

	Revert:
	2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/65963
	* tree-scalar-evolution.c (interpret_rhs_expr): Handle some
	LSHIFT_EXPRs as equivalent MULT_EXPRs.

2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/68166
	* fold-const.c: Include "md5.h".

2015-11-01  Jeff Law  <law@redhat.com>

	* vmsdbgout.c: Revert unused header file reduction patch.

	* config/mcore/mcore.c: Include regs.h.

2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.

2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
	same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
	live as for using it elsewhere, for TARGET_MINIMAL_TOC.

2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* ggc-common.c: Restore needed header for checking=release.

2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.

2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
	existing varinfo for arguments.

2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
	create_function_info_for.  Dump constraints generated during
	create_function_info_for. Move intra_create_variable_infos call and
	function-return-values-escape bit to ...
	(create_function_info_for): ... here, and merge
	intra_create_variable_infos call with argument loop.  Add and handle
	nonlocal_p parameter.

2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
	updating is alap, and seperated from preceding code.  Make sure
	insert_vi_for_tree is seperated from surrounding code.

2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.

2015-10-30  Jeff Law  <law@redhat.com>
	    Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
	args.
	(MOVE_MAX): Set to 8.

2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>

	* cgraph.c: Include context.h for offloading.
	* varpool.c: Include context.h and omp-low.h.

2015-10-30  Anatoly Sokolov  <aesok@post.ru>

	* rtl.h (contains_symbol_ref_p): Declare.
	(SYMBOL_REF_P): Define.
	* rtlanal.c (contains_symbol_ref_p: New function.
	* lra-constraints.c (contains_symbol_ref_p): Remove.
	* var-tracking.c (contains_symbol_ref): Remove.
	(track_expr_p): Use contains_symbol_ref_p instead of
	contains_symbol_ref.

2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>

	* gimple-fold.c (fold_array_ctor_reference): Move searching code to:
	* fold-const.c (get_array_ctor_element_at_index): New.
	(fold): Remove binary-search through CONSTRUCTOR, call previous.

	* fold-const.h (get_array_ctor_element_at_index): New.

2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>

	* Makefile.in (OBJS): Add multiple_target.o.
	* attrib.c (make_attribute): Moved from config/i386/i386.c
	* config/i386/i386.c (make_attribute): Deleted.
	* multiple_target.c (create_dispatcher_calls): New.
	(get_attr_len): Ditto.
	(get_attr_str): Ditto.
	(separate_attrs): Ditto.
	(is_valid_asm_symbol): Ditto.
	(create_new_asm_name): Ditto.
	(create_target_clone): Ditto.
	(expand_target_clones): Ditto.
	(ipa_target_clone): Ditto.
	(ipa_dispatcher_calls): Ditto.
	* passes.def (pass_target_clone): Two new ipa passes.
	* tree-pass.h (make_pass_target_clone): Ditto.
	* doc/extend.texi (target_clones): New attribute description.

2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68106
	* lra-remat.c (input_regno_present_p): Process hard regs
	explicitly present in machine description insns.
	(call_used_input_regno_present_p): Ditto.
	(calculate_gen_cands): Ditto.
	(do_remat): Ditto.

2015-10-30  Jim Wilson  <jim.wilson@linaro.org>

	* config/arm/neon-testgen.ml: Fix comment typo.

2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* rtlanal.c (reg_set_p): Expand function comment.

2015-10-30  Andrew MacLeod  <amacleod@redhat.com>

	* alias.c: Remove unused headers.
	* asan.c: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* bitmap.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* ccmp.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* cppbuiltin.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* debug.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dfp.c: Likewise.
	* dojump.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* double-int.c: Likewise.
	* dse.c: Likewise.
	* dumpfile.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcse.c: Likewise.
	* generic-match-head.c: Likewise.
	* ggc-common.c: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-expr.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-match-head.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple-walk.c: Likewise.
	* gimple.c: Likewise.
	* gimplify-me.c: Likewise.
	* gimplify.c: Likewise.
	* godump.c: Likewise.
	* graph.c: Likewise.
	* graphds.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* ifcvt.c: Likewise.
	* init-regs.c: Likewise.
	* internal-fn.c: Likewise.
	* ipa-chkp.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* lists.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* optabs.c: Likewise.
	* opts-global.c: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* real.c: Likewise.
	* realmpfr.c: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regrename.c: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl-chkp.c: Likewise.
	* rtl-error.c: Likewise.
	* rtlanal.c: Likewise.
	* rtlhooks.c: Likewise.
	* sanopt.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* statistics.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* stringpool.c: Likewise.
	* symtab.c: Likewise.
	* target-globals.c: Likewise.
	* targhooks.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-scopedtables.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* ubsan.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vmsdbgout.c: Likewise.
	* vtable-verify.c: Likewise.
	* web.c: Likewise.
	* wide-int-print.cc: Likewise.
	* wide-int.cc: Likewise.
	* xcoffout.c: Likewise.

2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
	between pass numbering and execution order.

2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
	check for dependencies.

2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
	CDI_DOMINATORS.

2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (format_helper): New.
	(real_convert, exact_real_truncate, real_from_string3, real_to_target)
	(real_from_target, real_nan, real_2expN, real_value_truncate)
	(significand_size, real_from_string2, exact_real_inverse)
	(exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
	(real_round, real_isinteger, real_from_integer): Replace
	machine_mode arguments with format_helper arguments.
	* real.c (exact_real_inverse, real_from_string2, real_from_string3)
	(real_from_integer, real_nan, real_2expN, real_convert)
	(real_value_truncate, exact_real_truncate, real_to_target)
	(real_from_target, significand_size, real_powi, real_trunc)
	(real_floor, real_ceil, real_round, real_isinteger): Replace
	machine_mode arguments with format_helper arguments.
	(real_to_target_fmt, real_from_target_fmt): Delete.
	* dfp.h (decimal_real_convert): Replace mode argument with real_format.
	* dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
	argument with real_format.
	* builtins.c (do_real_to_int_conversion): Update type of fn argument.

2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>

	* fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
	(fixed_to_decimal, fixed_convert_from_real)
	(real_convert_from_fixed): Fix mode arguments to real_2expN.

2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
	SCALAR_FLOAT_MODE_P.

2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
	(completely_scalarize): Comment zero-length arrays.
	(get_access_replacement): Correct comment re. precondition.

2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/i386.c (get_builtin_code_for_version): Set priority
	for PROCESSOR_ZNVER1.
	(enum processor_model): Add M_AMDFAM17H_znver1.
	(struct arch_names_table): Likewise.
	* doc/extend.texi: ADD znver1.

2015-10-30  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_assign): Do not dispatch to
	fold () on single RHSs.  Allow CONSTRUCTORS with trailing
	zeros to be folded to VECTOR_CSTs.
	* tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
	* fold-const.c (fold): Use build_vector_from_ctor.

2015-10-30  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
	"mov %0.h[0], %1.h[0] to "neon_move".
	(*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
	(*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
	"mov_imm".
	(*cmovsi_insn_uxtw): Likewise.

2015-10-30  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
	unsigned, and initialize, and use initial value instead of hardcoded
	constant.  Add generic constraints dumping section.  Don't dump global
	initializers constraints dumping section if empty.  Don't update
	variable from if unused.

2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>

	* config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
	flag_checking and/or CHECKING_P to eliminate conditional compilation
	on ENABLE_CHECKING.
	* config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
	* config/bfin/bfin.c (hwloop_optimize): Likewise.
	* config/i386/i386.c (ix86_print_operand_address): Likewise.
	(output_387_binary_op): Likewise.
	* config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
	* config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
	* config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
	Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/visium/visium.c (visium_setup_incoming_varargs): Likewise.

2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.opt (mfdpic): Add missing period.

2015-08-29  Anatoly Sokolov  <aesok@post.ru>

	* config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
	BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
	GO_IF_LEGITIMATE_ADDRESS): Remove macros.
	* config/mcore/mcore.c (mcore_reg_ok_for_base_p,
	mcore_base_register_rtx_p, mcore_legitimate_index_p,
	mcore_legitimate_address_p): New functions.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.

2015-10-29  Jeff Law  <law@redhat.com>

	* tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
	method.
	* tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Remove
	backedge_seen argument and associated code which invalidated
	equivalences based on the value of that argument.
	(thread_through_normal_block): Corresponding changes.

2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
	function earlier in the file.
	(first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
	df_regs_ever_live_p.

2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>

	* lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
	by ignoring it.

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.

2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
	setup into 3 functions: init_float128_ibm, init_float128_ieee, and
	rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
	of the traditional names that TFmode uses for handling IEEE
	extended double. If -mfloat128, add KFmode functions for all of
	the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
	make TFmode use the same emulation functions as KFmode.
	(init_float128_ibm): Likewise.
	(init_float128_ieee): Likewise.
	(rs6000_generate_compare): For IEEE 128-bit floating point
	comparisons, call the unordered comparison function instead of the
	ordered comparison function.
	(rs6000_expand_float128_convert): Deal with operands that are
	memory operands. Restructure the code to use a switch statement on
	the mode. Add support for TFmode defaulting to either IBM extended
	double or IEEE 128-bit floating point. If the underlying types are
	the same, use a move instead of a conversion function.
	(TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
	use for IEEE 128-bit floating point constants with -mfloat128.
	(rs6000_c_mode_for_suffix): Likewise.
	(TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
	128-bit floating point with IBM extended double floating point.
	(rs6000_invalid_binary_op): Likewise.
	(rs6000_gen_le_vsx_permute): On little endian systems generate a
	ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
	types that can go in vector registers.
	(chain_contains_only_swaps): Properly swap IEEE 128-bit floating
	point types that can go in vector registers on little endian
	PowerPC systems.
	(mark_swaps_for_removal): Likewise.
	(rs6000_analyze_swaps): Likewise.
	(rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.

	* config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
	rework IEEE 128-bit floating point insns to deal with TFmode being
	either IBM extended double or IEEE 128-bit floating point.
	(IFKF): Likewise.
	(IBM128): Update iterator to add condition that the mode is IBM
	extended double.
	(IEEE128): New iterator for IEEE 128-bit floating point.
	(TFIFKF): Rename TFIFKF iterator to FLOAT128.
	(FLOAT128): Likewise.
	(signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
	iterator.
	(neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
	for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
	instead of hard coding TFmode or KFmode.
	(negtf2_internal): Likewise.
	(neg<mode>2_internal): Likewise.
	(abs<mode>2): Likewise.
	(abstf2_internal): Likewise.
	(abs<mode>2_internal): Likewise.
	(ieee_128bit_neg<mode>2): Likewise.
	(ieee_128bit_neg<mode>2_internal): Likewise.
	(ieee_128bit_abs<mode>2): Likewise.
	(ieee_128bit_abs<mode>2_internal): Likewise.
	(ieee_128bit_nabs<mode>2): Likewise.
	(ieee_128bit_nabs<mode>2_internal): Likewise.
	(extendiftf2): Add explicit conversions between 128-bit floating
	point types. Drop the old conversions that had become unwieldy.
	(extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
	(extendifkf2): Likewise.
	(trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
	(extendtfkf2): Likewise.
	(fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
	(trunciftf2): Likewise.
	(fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
	(truncifkf2): Likewise.
	(float<SDI:mode><IFKF:mode>2): Likewise.
	(trunckftf2): Likewise.
	(floatuns<SDI:mode><IFKF:mode>2): Likewise.
	(trunctfif2): Likewise.
	(FP iterator): Allow TFmode to be IEEE 128-bit floating point.
	(extenddftf2): Rework 128-bit floating point conversions to
	properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
	KFmode expanders into one function.
	(extenddf<mode>2): Likewise.
	(extenddftf2_fprs): Likewise.
	(extenddf<mode>2_fprs): Likewise.
	(extenddftf2_vsx): Likewise.
	(extenddf<mode>2_vsx): Likewise.
	(extendsftf2): Likewise.
	(extendsf<mode>2): Likewise.
	(trunctfdf2): Likewise.
	(trunc<mode>df2): Likewise.
	(trunctfdf2_internal1): Likewise.
	(trunc<mode>df2_internal1): Likewise.
	(trunctfdf2_internal2): Likewise.
	(trunc<mode>df2_internal2): Likewise.
	(trunctfsf2): Likewise.
	(trunc<mode>sf2): Likewise.
	(trunctfsf2_fprs): Likewise.
	(trunc<mode>sf2_fprs): Likewise.
	(floatsit2f): Likewise.
	(floatsi<mode>2): Likewise.
	(fix_trunc_helper): Likewise.
	(fix_trunc_helper<mode>): Likewise.
	(fix_trunctfsi2): Likewise.
	(fix_trunc<mode>si2): Likewise.
	(fix_trunctfsi2_fprs): Likewise.
	(fix_trunc<mode>si2_fprs): Likewise.
	(fix_trunctfsi2_internal): Likewise.
	(fix_trunc<mode>si2_internal): Likewise.
	(fix_trunctfdi2): Likewise.
	(fix_trunc<mode>di2): Likewise.
	(fixuns_trunctf<mode>2): Likewise.
	(fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
	(floatditf2): Likewise.
	(floatdi<mode>2): Likewise.
	(floatuns<mode>tf2): Likewise.
	(floatuns<SDI:mode><IEEE128:mode>): Likewise.
	(cmptf_internal1): Use a mode iterator to add support for both
	types (IFmode, TFmode) that support IBM extended double.
	(cmp<mode>_internal1): Likewise.
	(cmptf_internal2): Likewise.
	(cmp<mode>_internal2): Likewise.

	* doc/extend.texi (Floating Types): Document __ibm128 and
	__float128 on PowerPC.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mfloat128 and -mno-float128.

2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
	floating point modes that can go in vector registers.
	(MODES_TIEABLE_P): Move tests for vector modes before tests for
	scalar floating point, so that IEEE 128-bit floating point that
	can go in vector registers bind with vectors and not FP.
	(struct rs6000_args): Add libcall field.

	* config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
	and -mfloat128-software switches.  Replace them with a binary
	-mfloat128 switch.
	(-mfloat128): Likewise.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
	128-bit floating point types in GPRs, even if the appropriate
	option enabling the type was not used.
	(rs6000_debug_reg_global): Remove -mfloat128-{software,none}
	debugging.
	(rs6000_setup_reg_addr_masks): Do not allow pre-increment and
	pre-decrement on IEEE 128-bit floating point values.
	(rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
	is IEEE 128-bit floating point.
	(rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
	128-bit floating point types that can go in vector registers.
	(rs6000_option_override_internal): Change -mfloat128-none and
	-mfloat128-software to -mfloat128, and move code to be near other
	VSX option handling.
	(rs6000_option_override_internal): Disable -mfloat128 if we don't
	have the Altivec ABI.
	(rs6000_init_builtins): Don't make TFmode use either IFmode or
	KFmode floating point nodes. Instead, have three separate nodes.
	(rs6000_scalar_mode_supported_p): Add support for IFmode to allow
	eventually moving the long double default to IEEE 128-bit floating
	point.
	(rs6000_opt_masks): Add -mfloat128.
	(struct rs6000_opt_var): Fix typo in comment.
	(init_cumulative_args): Initialize libcall field in
	CUMULATIVE_ARGS.
	(rs6000_function_arg): Treat library functions as if they had
	prototypes to prevent IEEE 128-bit support functions from passing
	arguments in both GPRs and vector registers.
	(rs6000_arg_partial_bytes): Likewise.

	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
	an option that can be turned on via -mcpu=<xxx>.

	* config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
	longer used.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
	double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
	double is IBM extended double.

	* config/rs6000/predicates.md (reg_or_indexed_operand): Allow
	SUBREGs.

2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>

	* genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
	* genconditions.c: Define CHECKING_P in the generated code.
	* genextract.c: Use flag_checking in insn_extract.
	* gengtype.c (main): Remove conditional compilation.
	* gengtype.h: Likewise.

2015-10-29  Jeff Law  <law@redhat.com>

	PR tree-optimization/67892
	* tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
	in comment.
	(thread_through_normal_block): If we have seen a backedge, then
	do nothing.  No longer call find_jump_threads_backwards here.
	(thread_across_edge): Use find_jump_threads_backwards to find
	jump threads if the old style threader was not successful.
	* tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
	gsi_last_nondebug_bb.  Return NULL if the block does not end
	with a control statement.
	(find_jump_threads_backwards): Setup code moved here from
	tree-ssa-threadedge.c::thread_through_normal_block.  Accept
	single edge argument instead of name & block.
	* tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
	prototype.

2015-10-29  Tom de Vries  <tom@codesourcery.com>

	* fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
	types.

2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (lower_omp_target): Remove unreachable code & merge
	ifs.

2015-10-29  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.

2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
	guard_bb0 and use guard_bb throughout.

2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
	unnecessary label.

2015-10-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/68142
	* fold-const.c (extract_muldiv_1): Avoid introducing undefined
	overflow.

2015-10-29  Andrew MacLeod  <amacleod@redhat.com>

	* alias.c: Reorder #include statements and remove duplicates.
	* asan.c: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* ccmp.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* cppbuiltin.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* debug.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dfp.c: Likewise.
	* dojump.c: Likewise.
	* dominance.c: Likewise.
	* double-int.c: Likewise.
	* dse.c: Likewise.
	* dumpfile.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcse.c: Likewise.
	* generic-match-head.c: Likewise.
	* ggc-common.c: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-expr.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-match-head.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple-walk.c: Likewise.
	* gimple.c: Likewise.
	* gimplify-me.c: Likewise.
	* gimplify.c: Likewise.
	* godump.c: Likewise.
	* graph.c: Likewise.
	* graphite-poly.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* ifcvt.c: Likewise.
	* incpath.c: Likewise.
	* init-regs.c: Likewise.
	* internal-fn.c: Likewise.
	* ipa-chkp.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* lists.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* opts-global.c: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* real.c: Likewise.
	* realmpfr.c: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regrename.c: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl-chkp.c: Likewise.
	* rtl-error.c: Likewise.
	* rtlanal.c: Likewise.
	* rtlhooks.c: Likewise.
	* sanopt.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sese.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* statistics.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* stringpool.c: Likewise.
	* symtab.c: Likewise.
	* target-globals.c: Likewise.
	* targhooks.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-scopedtables.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* ubsan.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vtable-verify.c: Likewise.
	* web.c: Likewise.
	* wide-int-print.cc: Likewise.
	* wide-int.cc: Likewise.
	* xcoffout.c: Likewise.

2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (NO_PIE_CFLAGS): New.
	(NO_PIE_FLAG): Likewise.
	(NO_PIE_CFLAGS_FOR_BUILD): Likewise.
	(NO_PIE_FLAG_FOR_BUILD): Likewise.
	(BUILD_NO_PIE_CFLAGS): Likewise.
	(BUILD_NO_PIE_FLAG): Likewise.
	(COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
	(LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
	(BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
	$(BUILD_NO_PIE_CFLAGS).
	(BUILD_CXXFLAGS): Likewise.
	(BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
	$(BUILD_NO_PIE_FLAG).
	* configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
	(BUILD_NO_PIE_FLAG): Likewise.
	(NO_PIE_CFLAGS_FOR_BUILD): Likewise.
	(NO_PIE_FLAG_FOR_BUILD): Likewise.
	* configure: Regenerated.

2015-10-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/56956
	* fold-const.c (fold_cond_expr_with_comparison): Do not fold
	unsigned conditonal negation to ABS_EXPR.

2015-10-29  Richard Biener  <rguenther@suse.de>

	* gimple-match-head.c (gimple_simplify): Remove premature checking
	of builtin_decl_implicit of function calls we simplify.

2015-10-29  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
	(get_computation_cost_at): Ditto.
	(determine_use_iv_cost_address): Pass NULL for arguments depends_on
	and inv_expr_id.

2015-10-28  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Remove
	superfluous code.

2015-10-28  Jason Merrill  <jason@redhat.com>

	* Makefile.in (TAGS): Include libcpp and libiberty.

2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
	(extract_omp_for_data): Remove OpenACC special handling of
	chunking.

	* config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
	(struct parallel): Update comment.
	(nvptx_reorg): Likewise.
	(nvptx_neuter): Cleanup whitespace.

2015-10-28  Richard Henderson  <rth@redhat.com>

	* tree-eh.c (mark_reachable_handlers): Fix typo in assert.

2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR target/67839
	* config/avr/predicates.md (low_io_address_operand): Don't
	consider MODE when computing upper bound.
	(io_address_operand): Likewise.

2015-10-28  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Do not verify that types are
	compatible for MEM_REFs.

2015-10-28  Richard Biener  <rguenther@suse.de>

	* gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
	in simplifying VEC_COND_EXPR conditions.

2015-10-28  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
	into vi_next of a full_var.

2015-10-28  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (new_var_info, make_heapvar)
	(make_constraint_from_restrict, make_constraint_from_global_restrict)
	(create_function_info_for, create_variable_info_for_1)
	(create_variable_info_for): Add and handle add_id parameter.
	(get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
	(init_base_vars): Add extra argument to calls to new_var_info.
	(get_vi_for_tree): Add extra argument to call to
	create_variable_info_for.
	(process_constraint, do_deref, process_all_all_constraints): Add extra
	argument to calls to new_scalar_tmp_constraint_exp.
	(handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
	argument to calls to make_heapvar.
	(make_restrict_var_constraints): Add extra argument to call to
	make_constraint_from_global_restrict.
	(intra_create_variable_infos): Add extra argument to call to
	create_variable_info_for_1.
	(ipa_pta_execute): Add extra argument to call to
	create_function_info_for.

2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
	(sibcall_value): Likewise.

2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.h (struct machine_function): Add
	axis_predicate.
	* config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
	nvptx_expand_oacc_join): Declare.
	* config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
	(UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
	UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
	(UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
	UNSPECV_JOINING, UNSPECV_JOIN): New.
	(BITS, BITD): New mode iterators.
	(br_true_uni, br_false_uni): New.
	(*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
	(oacc_dim_size, oacc_dim_pos): New.
	(nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
	(oacc_fork, oacc_join): New.
	(nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
	(worker_load<mode>, worker_store<mode>): New.
	(nvptx_barsync): New.
	* config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
	(SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
	(worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
	worker_bcast_sym): New.
	(nvptx_option_override): Initialize worker broadcast buffer.
	(nvptx_emit_forking, nvptx_emit_joining): New.
	(nvptx_init_axis_predicate): New.
	(nvptx_declare_function_name): Init axis predicates.
	(nvptx_expand_call): Add fork/join markers around routine call.
	(nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
	(nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
	(nvptx_gen_vcast): New.
	(struct wcast_data_t): New.
	(enum propagate_mask): New.
	(nvptx_gen_wcast): New.
	(nvptx_print_operand): Add 'S' case.
	(struct parallel): New.
	(parallel::parallel, parallel::~parallel): New.
	(bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
	(nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
	nvptx_find_par, nvptx_discover_pars): New.
	(nvptx_propagate): New.
	(vprop_gen, nvptx_vpropagate): New.
	(wprop_gen, nvptx_wpropagate): New.
	(nvptx_wsync): New.
	(nvptx_single, nvptx_skip_par): New.
	(nvptx_process_pars, nvptx_neuter_pars): New.
	(ntptx_reorg): Split blocks, generate parallel structure, apply
	neutering.
	(nvptx_cannot_copy_insn_p): New.
	(nvptx_file_end): Emit worker broadcast decl.
	(nvptx_goacc_fork_join): New.
	(TARGET_CANNOT_COPY_INSN_P): Override.
	(TARGET_GOACC_FORK_JOIN): Override.

2015-10-28  Richard Biener  <rguenther@suse.de>

	* fold-const.c (negate_expr_p): Adjust the division case to
	properly avoid introducing undefined overflow.
	(fold_negate_expr): Likewise.

2015-10-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65962
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Avoid creating loop carried dependences also for outer loops
	of the loop a use to replace is in.

2015-10-28  Richard Biener  <rguenther@suse.de>

	* common.opt (fchecking): New flag controlling flag_checking.
	* passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
	* timevar.c (timer::print): Adjust output.
	* doc/invoke.texi (fchecking): Document.

2015-10-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/68067
	* fold-const.c (negate_expr_p): We cannot negate plus or minus
	if overflow is not wrapping.  Likewise multiplication unless
	one operand is constant and not power of two.
	(fold_negate_expr): Adjust accordingly.

2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (struct omp_context): Remove gwv_below, gwv_this
	fields.
	(is_oacc_parallel, is_oacc_kernels): New.
	(enclosing_target_ctx): May return NULL.
	(ctx_in_oacc_kernels_region): New.
	(check_oacc_kernel_gwv): New.
	(oacc_loop_or_target_p): Delete.
	(scan_omp_for): Don't calculate gwv mask.  Check parallel clause
	operands.  Strip reductions fro kernels.
	(scan_omp_target): Don't calculate gwv mask.
	(lower_oacc_head_mark, lower_oacc_loop_marker,
	lower_oacc_head_tail): New.
	(struct oacc_collapse): New.
	(expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
	Remove OpenACC handling.
	(expand_oacc_for): New.
	(expand_omp_for): Call expand_oacc_for.
	(lower_omp_for): Call lower_oacc_head_tail.

2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>

	* attribs.c (check_attribute_tables): New function, broken out from...
	(init_attributes): Use it.
	* cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
	gcc_checking_assert and checking_* functions to eliminate
	ENABLE_CHECKING conditionals.
	* cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
	(pass_expand::execute): Likewise.
	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
	* cgraphunit.c (mark_functions_to_output): Likewise.
	(cgraph_node::expand_thunk): Likewise.
	(symbol_table::compile): Likewise.
	* ddg.c (add_cross_iteration_register_deps): Likewise.
	(create_ddg_all_sccs): Likewise.
	* df-core.c (df_finish_pass, df_analyze): Likewise.
	* diagnostic-core.h: Likewise.
	* diagnostic.c (diagnostic_report_diagnostic): Likewise.
	* dominance.c (calculate_dominance_info): Likewise.
	* dwarf2out.c (add_AT_die_ref): Likewise.
	(const_ok_for_output_1, mem_loc_descriptor): Likewise.
	(loc_list_from_tree, gen_lexical_block_die): Likewise.
	gen_type_die_with_usage, gen_type_die): Likewise.
	(dwarf2out_decl): Likewise.
	* emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
	* except.c (duplicate_eh_regions): Likewise.
	* fwprop.c (register_active_defs, update_df_init): Likewise.
	(fwprop_init, fwprop_done): Likewise.
	(update_uses): Likewise.
	* ggc-page.c (ggc_grow): Likewise.
	* gimplify.c (gimplify_body): Likewise.
	(gimplify_hasher::equal): Likewise.
	* graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
	Likewise.
	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
	* hash-table.h (::find_empty_slot_for_expand): Likewise.
	* ifcvt.c (if_convert): Likewise.
	* ipa-cp.c (ipcp_propagate_stage): Likewise.
	* ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
	(odr_type_p, odr_types_equivalent_p): Likewise.
	(add_type_duplicate, get_odr_type): Likewise.
	* ipa-icf.c (sem_item_optimizer::execute): Likewise.
	(sem_item_optimizer::subdivide_classes_by_equality): Likewise.
	(sem_item_optimizer::verify_classes): Likewise.
	(sem_item_optimizer::traverse_congruence_split): Likewise.
	(sem_item_optimizer::checking_verify_classes): New.
	* ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
	method.
	* cfgrtl.c (commit_edge_insertions): Likewise.
	(fixup_reorder_chain, cfg_layout_finalize): Likewise.
	(rtl_flow_call_edges_add): Likewise.
	* cgraph.c (symbol_table::create_edge): Likewise.
	(cgraph_edge::redirect_call_stmt_to_callee): Likewise.
	* cgraph.h (symtab_node): Likewise.
	(symtab_node::checking_verify_symtab_nodes): Define.
	(cgraph_node::checking_verify_cgraph_nodes): Define.
	* cfghooks.h (checking_verify_flow_info): Define.
	* cfgloop.h (checking_verify_loop_structure): Define.
	* dominance.h (checking_verify_dominators): Define.
	* et-forest.c: Fix comment.
	* ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
	CHECKING_P gcc_checking_assert and checking_* functions to eliminate
	ENABLE_CHECKING conditionals.
	* ipa-inline-transform.c (save_inline_function_body): Likewise.
	* ipa-inline.c (inline_small_functions): Likewise.
	(early_inliner): Likewise.
	* ipa-inline.h (estimate_edge_growth): Likewise.
	* ipa-visibility.c (function_and_variable_visibility): Likewise.
	* ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
	(ipa_single_use): Likewise.
	* ira-int.h: Likewise.
	* ira.c (ira): Likewise.
	* loop-doloop.c (doloop_optimize_loops): Likewise.
	* loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
	* loop-invariant.c (move_loop_invariants): Likewise.
	* lra-assigns.c (lra_assign): Likewise.
	* lra-constraints.c (lra_constraints): Likewise.
	* lra-eliminations.c (lra_eliminate): Likewise.
	* lra-int.h (struct lra_reg): Likewise.
	* lra-lives.c (check_pseudos_live_through_calls): Likewise.
	(lra_create_live_ranges_1): Likewise.
	* lra-remat.c (create_remat_bb_data): Likewise.
	* lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
	(lra): Likewise.
	(check_rtl): Always define. Remove incorrect guard around
	extract_constrain_insn call.
	* lto-cgraph.c (input_cgraph_1: Use flag_checking,
	CHECKING_P gcc_checking_assert and checking_* functions to eliminate
	ENABLE_CHECKING conditionals.
	* lto-streamer-out.c (DFS::DFS): Likewise.
	(lto_output): Likewise.
	* lto-streamer.c (lto_streamer_init): Likewise.
	* omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
	expand_omp_target, execute_expand_omp): Likewise.
	(lower_omp_target): Likewise.
	* passes.c (execute_function_todo): Likewise.
	(execute_todo, execute_one_pass): Likewise.
	(verify_curr_properties): Always define.
	* predict.c (tree_estimate_probability: Use flag_checking,
	CHECKING_P gcc_checking_assert and checking_* functions to eliminate
	ENABLE_CHECKING conditionals.
	(propagate_freq): Likewise.
	* pretty-print.c (pp_format): Likewise.
	* real.c (real_to_decimal_for_mode): Likewise.
	* recog.c (split_all_insns): Likewise.
	* regcprop.c (kill_value_one_regno): Likewise.
	(copy_value): Likewise.
	(validate_value_data): Define unconditionally.
	* reload.c: Fix comment.
	* timevar.c: Include options.h
	* tree-ssa.h (checking_verify_ssa): Define.
	* tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
	* sched-deps.c (CHECK): Remove unused macro.
	(add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
	gcc_checking_assert and checking_* functions to eliminate
	ENABLE_CHECKING conditionals.
	* sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
	* sel-sched.c (struct moveop_static_params): Likewise.
	(find_best_reg_for_expr, move_cond_jump): Likewise.
	(move_op_orig_expr_not_found): Likewise.
	(code_motion_process_successors, move_op): Likewise.
	* ssa-iterators.h (first_readonly_imm_use): Likewise.
	(next_readonly_imm_use): Likewise.
	* store-motion.c (compute_store_table): Likewise.
	* symbol-summary.h (function_summary::function_summary): Likewise.
	* target.h (cumulative_args_t): Likewise.
	(get_cumulative_args, pack_cumulative_args): Likewise.
	* timevar.c: (timer::print): Likewise.
	* trans-mem.c (ipa_tm_execute): Likewise.
	* tree-cfg.c (move_stmt_op): Likewise.
	(move_sese_region_to_fn): Likewise.
	(gimple_flow_call_edges_add): Likewise.
	* tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
	Likewise.
	* tree-eh.c (remove_unreachable_handlers): Likewise.
	* tree-if-conv.c (pass_if_conversion::execute): Likewise.
	* tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
	* tree-into-ssa.c (update_ssa): Likewise.
	* tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
	* tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
	* tree-parloops.c (pass_parallelize_loops::execute): Likewise.
	* tree-predcom.c (suitable_component_p): Likewise.
	* tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
	* tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
	* tree-ssa-live.c (verify_live_on_entry): Likewise.
	* tree-ssa-live.h (register_ssa_partition): Likewise.
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
	* tree-ssa-loop-manip.c (add_exit_phi): Likewise.
	(tree_transform_and_unroll_loop): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-propagate.c (replace_exp_1): Likewise.
	* tree-ssa-structalias.c (rewrite_constraints): Likewise.
	* tree-ssa-ter.c (free_temp_expr_table): Likewise.
	* tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
	* tree-ssanames.c (release_ssa_name_fn): Likewise.
	* tree-stdarg.c (expand_ifn_va_arg): Likewise.
	* tree-vect-loop-manip.c
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(slpeel_checking_verify_cfg_after_peeling): Likewise.
	(vect_do_peeling_for_loop_bound): Likewise.
	(vect_do_peeling_for_alignment): Likewise.
	* tree-vrp.c (supports_overflow_infinity): Likewise.
	(set_value_range): Likewise.
	* tree.c (free_lang_data_in_cgraph): Likewise.
	* value-prof.c (gimple_remove_histogram_value): Likewise.
	(free_hist): Likewise.
	* var-tracking.c (canonicalize_values_star): Likewise.
	(compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.

2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>

	* internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
	IFN_GOACC_LOOP): New.
	* internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
	IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
	IFN_UNIQUE_OACC_TAIL_MARK.
	(enum ifn_goacc_loop_kind): New.
	* internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
	IFN_UNIQUE_OACC_JOIN cases.
	(expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
	(expand_GOACC_LOOP): New.
	* target-insns.def (oacc_dim_pos, oacc_dim_size): New.
	* omp-low.c: Include gimple-pretty-print.h.
	(struct oacc_loop): New.
	(enum oacc_loop_flags): New.
	(oacc_thread_numbers): New.
	(oacc_xform_loop): New.
	(new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
	new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
	(dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
	(oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
	oacc_loop_discovery): New.
	(oacc_loop_xform_head_tail, oacc_loop_xform_loop,
	oacc_loop_process): New.
	(oacc_loop_fixed_partitions, oacc_loop_partition): New.
	(execute_oacc_device_lower): Discover & process loops.  Process
	internal fns.
	* target.def (goacc.fork_join): Change sense of hook, clarify
	documentation.
	* doc/tm.texi: Regenerated.

2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>

	* target-insns.def (oacc_fork, oacc_join): Define.
	* target.def (goacc.validate_dims): Adjust doc to avoid warning.
	(goacc.fork_join): New GOACC hook.
	* targhooks.h (default_goacc_fork_join): Declare.
	* omp-low.c (default_goacc_forkjoin): New.
	* doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
	* doc/tm.texi: Regenerate.

2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (oacc_init_rediction_array): New.
	(oacc_initialize_reduction_data): Initialize array.

2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (pass_oacc_device_lower::execute): Ignore errors.

2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>

	* internal-fn.c (expand_UNIQUE): New.
	* internal-fn.h (enum ifn_unique_kind): New.
	* internal-fn.def (IFN_UNIQUE): New.
	* target-insns.def (unique): Define.
	* gimple.h (gimple_call_internal_unique_p): New.
	* gimple.c (gimple_call_same_target_p): Check internal fn
	uniqueness.
	* tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts): Likewise.
	* tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.

2015-10-27  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/67609
	* config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
	narrowing subregs on SSE and MMX registers.
	* doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
	appear to be sub-words of multi-register pseudos must be rejected.
	* doc/tm.texi: Regenerate.

2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68102
	* config/aarch64/aarch64.md (*movsi_aarch64): Check that
	operands[0] is a reg before taking its REGNO in split condition.
	(*movdi_aarch64): Likewise.

2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
	Handle floating point inner modes properly.

2015-10-27  Alan Hayward  <alan.hayward@arm.com>

	* tree-vect-looop.c
	(vectorizable_live_operation): Change iterator.

2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
	    Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-optimize-isl.c (get_schedule_for_node_st): New callback
	  function to schedule based on isl_schedule_node.
	(get_schedule_map_st): New schedule optimizer based on
	isl_schedule_node.
	(scop_get_domains): New. Return the isl_union_set containing the
	domains of all the pbbs.
	(optimize_isl): Call the new function get_schedule_map_st for isl-0.15

2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67215
	* calls.c (prepare_call_address): Don't handle -fno-plt here.
	* config/i386/i386.c (ix86_expand_call): Generate indirect call
	via GOT for -fno-plt.  Support indirect call via GOT for x32.
	* config/i386/predicates.md (sibcall_memory_operand): Allow
	GOT memory operand.

2015-10-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68104
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
	strided access check ...
	(vect_compute_data_refs_alignment): ... here.

2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Andrew Stubbs  <ams@codesourcery.com>
	    Rich Felker  <dalias@libc.org>

	* config.gcc: Handle --enable-fdpic.
	* config/sh/constraints.md (Ccl): New constraint.
	* config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
	* config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
	__SH_FDPIC__.
	* config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
	library functions.
	* config/sh/sh-protos.h (function_symbol_result): New struct.
	(function_symbol): Return function_symbol_result.
	(sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
	declarations.
	* config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
	target hook.
	(TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
	(sh_option_override): Force -fPIC if FDPIC is in effect.
	(sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
	UNSPEC_GOTOFFFUNCDESC cases.
	(prepare_move_operands): Use FDPIC initial GOT register for
	TLS-related GOT access; inhibit cross-section address offset constants
	for FDPIC.
	(sh_assemble_integer): New function.
	(sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
	PC-relative call sites.
	(expand_ashiftrt): Adapt invocation of function_symbol.
	(sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
	(nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
	UNSPEC_GOTOFFFUNCDESC.
	(legitimize_pic_address): Resolve function symbols to function
	descriptors for FDPIC.  Do not use GOT-relative addressing for local
	data that may be read-only on FDPIC.
	(sh_emit_storesi, sh_emit_storehi): New functions.
	(sh_trampoline_init): Generate FDPIC trampolines.
	(sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
	(sh_expand_sym_label2reg): Don't assume sibcalls are local.
	(sh_output_mi_thunk): Generate FDPIC call.
	(function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
	FDPIC, generate call site labels to use PC-relative addressing rather
	than GOT-relative addressing.
	(sh_conditional_register_usage): Make PIC register fixed and call used
	when FDPIC is in effect.
	(sh_legitimate_constant_p): Impose FDPIC constant constraints.
	(sh_cannot_force_const_mem_p, sh_load_function_descriptor,
	sh_get_fdpic_reg_initial_val): New functions.
	* config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
	Handle -mfdpic.
	(FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
	PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
	SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
	(DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
	FDPIC_SELF_SPECS.
	(TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
	(ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
	* config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
	constants.
	(calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
	sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
	sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
	sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
	(udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
	*divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
	ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
	call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
	sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
	sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
	block_move_real, block_lump_real, block_move_real_i4,
	block_lump_real_i4): Add support for FDPIC calls.
	(mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
	call_value_pop): Adjust for new function_symbol signature.
	* config/sh/sh.opt (-mfdpic): New option.
	* doc/install.texi (Options specification): Document --enable-fdpic.
	* doc/invoke.texi (SH Options): Document -mfdpic.


2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/65963
	* tree-scalar-evolution.c (interpret_rhs_expr): Handle some
	LSHIFT_EXPRs as equivalent MULT_EXPRs.

2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/67929
	* config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
	* config/arm/constraints.md (Dp): Update callsite.
	* config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_load_exponent): Rename to...
	(fold_const_builtin_load_exponent): ...this and only handle
	constant arguments.
	(fold_builtin_2): Update accordingly.
	* match.pd: Add rules previously handled by fold_builtin_load_exponent.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_logb): Rename to...
	(fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
	(fold_builtin_significand): Rename to...
	(fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
	(fold_builtin_1): Update accordingly.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_fmin_fmax): Delete.
	(fold_builtin_2): Handle constant fmin and fmax arguments here.
	* match.pd: Add rules previously handled by fold_builtin_fmin_fmax.

2015-10-27  Evandro Menezes  <e.menezes@samsung.com>

	* config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
	for register extension into sign and zero register extension.
	* config/aarch64/aarch64.c (generic_addrcost_table): Infer values
	for sign and zero register extension.
	(cortexa57_addrcost_table): Likewise.
	(xgene1_addrcost_table): Likewise.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* fold-const.c (fold_minmax): Delete.
	(fold_binary_loc): Don't call it.
	* match.pd: Add rules previously handled by fold_minmax.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_fma): Remove constant handling.
	(fold_builtin_3): Handle constant fma arguments here.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_fabs): Remove constant handling.
	(fold_builtin_abs): Likewise.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_copysign): Delete.
	(fold_builtin_2): Handle constant copysign arguments here.
	* match.pd: Add rules previously handled by fold_builtin_copysign.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_signbit): Delete.
	(fold_builtin_2): Handle constant signbit arguments here.
	* match.pd: Add rules previously handled by fold_builtin_signbit.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Handle sqrt(x) cmp 0 specially.

2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-generic.c (expand_vector_operations_1): Check
	optab type before using it.

2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-protos.h
	(struct tune_params): Add autoprefetcher_model field.
	* config/aarch64/aarch64.c: Include params.h
	(generic_tunings): Specify autoprefetcher_model value.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(cortexa72_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
	(aarch64_override_options_internal): Set
	PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_exponent): Delete.
	(fold_builtin_2): Handle constant expN arguments here.
	* match.pd: Fold expN(logN(x)) -> x.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_powi): Delete.
	(fold_builtin_2): Handle constant powi arguments here.
	* match.pd: Add rules previously handled by fold_builtin_powi.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_pow): Delete in favor of...
	(fold_const_builtin_pow): ...this new function.  Only handle constant
	arguments.
	(fold_builtin_2): Update accordingly.
	* match.pd: Add rules previously handled by fold_builtin_pow.

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_hypot): Delete.
	(fold_builtin_2): Handle constant hypot arguments here.
	* match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
	hypot(x, x) to fabs(x)*sqrt(2).

2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
	instead of make_ssa_name if not yet in SSA form.

2015-10-27  Richard Biener  <rguenther@suse.de>

	* cfg.c (free_edge): Add function argument and use it instead of cfun.
	(clear_edges): Likewise.
	* cfg.h (clear_edges): Adjust prototype.
	* cfgexpand.c (pass_expand::execute): Adjust.
	* cfgloop.c (release_recorded_exits): Add function argument and use
	it instead of cfun.
	* cfgloop.h (release_recorded_exits): Adjust prototype.
	(loops_state_satisfies_p): Add overload with function argument.
	(loops_state_set): Likewise.
	(loops_state_clear): Likewise.
	(struct loop_iterator): Add function argument to constructor
	and iterator and use it instead of cfun.
	(FOR_EACH_LOOP_FN): New macro.
	(loop_optimizer_finalize): Add overload with function argument.
	* loop-init.c (loop_optimizer_init): Adjust.
	(fix_loop_structure): Likewise.
	(loop_optimizer_finaliz): Add function argument and use it
	instead of cfun.
	* tree-cfg.c (delete_tree_cfg_annotations): Likewise.
	* tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
	* cgraph.c (release_function_body): Do not push/pop cfun.
	* final.c (rest_of_clean_state): Adjust.
	* graphite.c (graphite_finalize): Likewise.
	* tree-ssa-copy.c (fini_copy_prop): Likewise.
	* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
	(tree_unroll_loops_completely): Likewise.
	(pass_complete_unrolli::execute): Likewise.
	* tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
	Add function argument and use it instead of cfun.
	* tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
	Adjust prototype.
	* tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
	* tree-ssa.c (delete_tree_ssa): Add function argument and use it
	instead of cfun.
	* tree-ssa.h (delete_tree_ssa): Adjust prototype.
	* tree-ssanames.c (fini_ssanames): Add function argument and use it
	instead of cfun.
	* tree-ssanames.c (fini_ssanames): Adjust prototype.
	* tree-vrp.c (execute_vrp): Adjust.
	* value-prof.c (free_histograms): Add function argument and use it
	instead of cfun.
	* value-prof.h (free_histograms): Adjust prototype.

2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>

	* tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
	(OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
	(OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.

2015-10-27  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
	field_type.

2015-10-27  Bin Cheng  <bin.cheng@arm.com>

	* loop-invariant.c (struct def): New field can_prop_to_addr_uses.
	(inv_can_prop_to_addr_use): New function.
	(record_use): Call can_prop_to_addr_uses, set the new field.
	(get_inv_cost): Count cost if inv can't be propagated into its
	address uses.

2015-10-26  Doug Evans  <dje@google.com>

	* config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.

2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>

	* match.pd (fold_widened_comparison): Apply simplifications to all
	integral types.

2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>

	* target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
	* doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
	* doc/tm.texi: Regenerated.
	* reorg.c (dbr_schedule): Use new hook.
	* config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.

2015-10-26  Jeff Law  <law@redhat.com>

	PR tree-optimization/68013
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Make sure the first block in the path is in VISITED_BBs.

2015-10-26  Richard Biener  <rguenther@suse.de>
	Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR middle-end/67443
	* alias.c (ao_ref_from_mem): Remove promoted subreg handling.
	Properly prune ref->ref for accesses outside of ref.

2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* gimple-fold.c (replace_stmt_with_simplification): Don't allow
	new statements to be inserted if inplace.  Allow calls to have
	nonempty sequences.

2015-10-26  Richard Biener  <rguenther@suse.de>

	* tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
	(do_valueize): New function.
	(pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
	replace_uses_by.
	* tree-ssa-threadedge.c: Remove builtins.h include, include
	gimple-fold.h
	(fold_assignment_stmt): Remove.
	(threadedge_valueize): New function.
	(record_temporary_equivalences_from_stmts): Use
	gimple_fold_stmt_to_constant_1, note additional cleanup
	opportunities.

2015-10-26  Richard Biener  <rguenther@suse.de>

	* match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
	( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.

2015-10-26  Alan Hayward  <alan.hayward@arm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
	VEC_COND_EXPR types.

2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* auto-inc-dec.c (insert_move_insn_before): Delete.
	(attempt_change): Remember to cost the simple move in the
	FORM_PRE_ADD and FORM_POST_ADD cases.

2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/68091
	* config/sh/sh.c (sh_vector_mode_supported_p): Use
	TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.

2015-10-26  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (make_restrict_var_constraints): New function,
	factored out of ...
	(intra_create_variable_infos): ... here.

2015-10-26  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Add
	restrict_pointer_p and recursive_restrict_p variables.

2015-10-26  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Inline
	get_vi_for_tree call.

2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR middle-end/67989
	* optabs.c (expand_atomic_compare_and_swap): Handle case when
	ptarget_oval or ptarget_bool are const0_rtx.

2015-10-26  Christian Bruel  <christian.bruel@st.com>

	* function.h (MINIMUM_METHOD_BOUNDARY): New macro.
	* cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
	* cp/method.c (implicitly_declare_fn): Likewise.
	* cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
	* java/class.c (add_method_1): Likewise.

2015-10-26  Richard Biener  <rguenther@suse.de>

	* alloc-pool.h (base_pool_allocator): Use placement new.
	(base_pool_allocator::remove): Likewise.  Compute size outside of
	flag_checking.

2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (do_real_to_int_conversion): New function.
	(fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
	(fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
	arguments here.
	* match.pd: Add rules previously handled by fold_fixed_mathfn
	and fold_builtin_int_roundingfn.

2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Use macros to define built-in operator lists.

2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
	    Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_simplify::gen): Skip captures that are
	part of the result.
	(parser::parse_expr): Allow captures in results too.
	* builtins.c (fold_builtin_cexp): Delete.
	(fold_builtin_1): Handle constant cexp arguments here.
	* match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).

2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>

	* alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
	conditional compilation.
	(base_pool_allocator::remove): Use flag_checking.

2015-10-25  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.

	PR middle-end/68079
	* dojump.c (do_compare_and_jump): Canonicalize both function and
	method types.

2015-10-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68084
	* config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
	for =@ccae.

2015-10-23  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/pr67600
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
	instance offset with offset of outer type.

2015-10-23  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.

2015-10-23  Caroline Tice  <cmtice@google.com>

	(from Richard Biener
	* tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
	call to iterative_hash_host_wide_int.

2015-10-23  David Edelsohn  <dje.gcc@gmail.com>

	* config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
	Define as yes.

2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-generic.c (expand_vector_operations_1): Check
	optab exists before use it.

2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-generic.c (expand_vector_condition): Avoid
	uninitialized variable warning.

2015-10-23  Jeff Law  <law@redhat.com>

	* passes.c (execute_function_todo): Do not call flush_ssaname_freelist
	here.  Instead...
	(execute_todo): Call it here.
	* tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
	statistics
	(pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.

2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config.gcc (enable_secureplt): Add *-linux*-musl*.

2015-10-23  Jeff Law  <law@redhat.com>

	PR tree-optimization/67830
	* match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
	Explicitly verify the mask has no bits outside the type of
	the innermost operands.

2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
	(MUSL_DYNAMIC_LINKER64): Define.
	(GNU_USER_DYNAMIC_LINKER32): Update.
	(GNU_USER_DYNAMIC_LINKER64): Update.
	(CHOOSE_DYNAMIC_LINKER): Update.

	* config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
	(MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
	(INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
	(INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
	(INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
	(CHOOSE_DYNAMIC_LINKER): Update.
	(INCLUDE_DEFAULTS): Redefine.

	* config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.

2015-10-23  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
	comparing addresses.

2015-10-23  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Handle matching of vector
	constructors.

2015-10-23  David Edelsohn  <dje.gcc@gmail.com>

	* doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.

2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
	    Andrew Pinski  <apinski@cavium.com>

	PR rtl-optimization/67736
	* combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
	of gen_lowpart.

2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/68066
	* tree.c (build_truth_vector_type): Support BLK mode
	returned for boolean vector.

2015-10-23  Alan Hayward  <alan.hayward@arm.com>

	PR tree-optimization/65947
	* tree-vect-loop.c
	(vect_is_simple_reduction_1): Find condition reductions.
	(vect_model_reduction_cost): Add condition reduction costs.
	(get_initial_def_for_reduction): Add condition reduction initial var.
	(vect_create_epilog_for_reduction): Add condition reduction epilog.
	(vectorizable_reduction): Condition reduction support.
	* tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
	* doc/sourcebuild.texi (Vector-specific attributes): Document
	vect_max_reduc

2015-10-23  Richard Biener  <rguenther@suse.de>

	* Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
	and builtins.def.

2015-10-23  Richard Biener  <rguenther@suse.de>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
	into (A ^ B) - B to match.pd
	Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.

	* match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
	New simplifier.
	(minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
	New simplifier.
	(minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
	New simplifier.
	(bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
	New simplifier.
	(bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
	INTEGER_CST@1)): New simplifier.

2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (integer_valued_real_p): Move to fold-const.c.
	(fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
	(fold_builtin_ceil, fold_builtin_round): Delete.
	(fold_builtin_1): Handle constant trunc, floor, ceil and round
	arguments here.
	* convert.c (convert_to_real): Remove narrowing of rounding
	functions.
	* fold-const.h (integer_valued_real_unary_p)
	(integer_valued_real_binary_p, integer_valued_real_call_p)
	(integer_valued_real_single_p, integer_valued_real_p): Declare.
	* fold-const.c (tree_single_nonnegative_warnv_p): Move
	name_registered_for_update_p check to SSA_NAME case statement.
	Don't call tree_simple_nonnegative_warnv_p for SSA names.
	(integer_valued_real_unary_p, integer_valued_real_binary_p)
	(integer_valued_real_call_p, integer_valued_real_single_p)
	(integer_valued_real_invalid_p): New functions.
	(integer_valued_real_p): Move from fold-const.c and rework
	to call the functions above.  Handle SSA names.
	* gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
	* gimple-fold.c (gimple_assign_integer_valued_real_p)
	(gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
	(gimple_stmt_integer_valued_real_p): New functions.
	* match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
	Fold f(x)->x for the same f if x is known to be integer-valued.
	Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
	the result.  Canonicalize floor(x) as trunc(x) if x is
	nonnegative.

2015-10-23  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Use
	make_constraint_from.

2015-10-23  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (create_variable_info_for_1): Add missing
	setting of is_full_var in case of a single field.

2015-10-22  Martin Sebor  <msebor@redhat.com>

	PR driver/68043
	* config/i386/i386.opt: Add missing periods to the ends of sentences.
	* config/msp430/msp430.opt: Same.

2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.exp (Global Register Variables): Rewrite.

2015-10-22  Jeff Law  <law@redhat.com>

	* genattrtab.c (main): If we do not have any annul-true or annul-false
	slots, then write out a dummy eligible_for_annul_true or
	eligible_for_annul_false as needed.

2015-10-22  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.opt: Add -msilicon-errata and
	-msilicon-errata-warn.
	* config/msp430/msp430.h (ASM_SPEC): Pass new options on to
	assembler.
	* doc/invoke.texi: Document new options.

2015-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58497
	* tree-vect-generic.c (ssa_uniform_vector_p): New helper.
	(expand_vector_operations_1): Use it.  Lower operations on
	all uniform vectors to scalar operations if the HW supports it.

2015-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/19049
	PR tree-optimization/65962
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
	to strided accesses if single-element interleaving doesn't work.

2015-10-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/68046
	PR middle-end/61893
	* optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
	(expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
	(expand_unop): Likewise.

2015-10-22  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_addr_of_array_ref_difference): Properly
	convert operands before folding a MINUS_EXPR.
	(fold_binary_loc): Move simplification of MINUS_EXPR on
	converted POINTER_PLUS_EXPRs ...
	* match.pd: ... here.

2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_tan): Delete.
	(fold_builtin_1): Handle constant tan arguments here.
	* match.pd: Simplify (tan (atan x)) to x.

2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_cproj): Delete.
	(fold_builtin_1): Handle constant arguments here.
	(build_complex_cproj): Move and rename to...
	* tree.c: (build_complex_inf): ...this.
	* tree.h (build_complex_inf): Declare.
	* match.pd: Fold cproj(x)->x if x has no infinity.
	Use build_complex_inf for existing cproj rules.

2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/68015
	* config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
	already have a comparison result.

2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/63304
	* config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
	(aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
	(aarch64_classify_address): Likewise.
	(aarch64_secondary_reload): Likewise.
	(aarch64_override_options_after_change_1): Adjust.
	* config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
	Use aarch64_nopcrelative_literal_loads.
	(aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
	Declare.

2015-10-21  Martin Sebor  <msebor@redhat.com>

	PR driver/68043
	* opts.c (undocumented_msg, use_diagnosed_msg): New globals.
	(print_filtered_help): Reference aliased option's name and encourage
	readers to use it in preference to the alias if the former is not
	documented.  Mention when using an option is diagnosed.
	* gcc.c (display_help): End each sentence with a period.

	* common.opt: End each sentence that describes an option with
	a period.
	* config/aarch64/aarch64.opt: Same.
	* config/alpha/alpha.opt: Same.
	* config/arc/arc.opt: Same.
	* config/arm/arm.opt: Same.
	* config/avr/avr.opt: Same.
	* config/bfin/bfin.opt: Same.
	* config/c6x/c6x.opt: Same.
	* config/cr16/cr16.opt: Same.
	* config/cris/cris.opt: Same.
	* config/cris/linux.opt: Same.
	* config/darwin.opt: Same.
	* config/epiphany/epiphany.opt: Same.
	* config/fr30/fr30.opt: Same.
	* config/frv/frv.opt: Same.
	* config/ft32/ft32.opt: Same.
	* config/g.opt: Same.
	* config/h8300/h8300.opt: Same.
	* config/i386/cygming.opt: Same.
	* config/i386/djgpp.opt: Same.
	* config/i386/i386.opt: Same.
	* config/i386/interix.opt: Same.
	* config/i386/mingw-w64.opt: Same.
	* config/i386/mingw.opt: Same.
	* config/ia64/ia64.opt: Same.
	* config/ia64/ilp32.opt: Same.
	* config/iq2000/iq2000.opt: Same.
	* config/linux.opt: Same.
	* config/lm32/lm32.opt: Same.
	* config/lynx.opt: Same.
	* config/m32c/m32c.opt: Same.
	* config/m32r/m32r.opt: Same.
	* config/m68k/ieee.opt: Same.
	* config/m68k/m68k.opt: Same.
	* config/mcore/mcore.opt: Same.
	* config/mep/mep.opt: Same.
	* config/microblaze/microblaze.opt: Same.
	* config/mips/mips.opt: Same.
	* config/mmix/mmix.opt: Same.
	* config/mn10300/mn10300.opt: Same.
	* config/moxie/moxie.opt: Same.
	* config/msp430/msp430.opt: Same.
	* config/nios2/elf.opt: Same.
	* config/nios2/nios2.opt: Same.
	* config/nvptx/nvptx.opt: Same.
	* config/pa/pa-hpux.opt: Same.
	* config/pa/pa-hpux1010.opt: Same.
	* config/pa/pa-hpux1111.opt: Same.
	* config/pa/pa-hpux1131.opt: Same.
	* config/pa/pa.opt: Same.
	* config/pa/pa64-hpux.opt: Same.
	* config/pdp11/pdp11.opt: Same.
	* config/rl78/rl78.opt: Same.
	* config/rs6000/476.opt: Same.
	* config/rs6000/aix64.opt: Same.
	* config/rs6000/darwin.opt: Same.
	* config/rs6000/linux64.opt: Same.
	* config/rs6000/rs6000.opt: Same.
	* config/rs6000/sysv4.opt: Same.
	* config/s390/s390.opt: Same.
	* config/s390/tpf.opt: Same.
	* config/sh/sh.opt: Same.
	* config/sol2.opt: Same.
	* config/sparc/long-double-switch.opt: Same.
	* config/sparc/sparc.opt: Same.
	* config/spu/spu.opt: Same.
	* config/stormy16/stormy16.opt: Same.
	* config/tilegx/tilegx.opt: Same.
	* config/tilepro/tilepro.opt: Same.
	* config/v850/v850.opt: Same.
	* config/vax/vax.opt: Same.
	* config/visium/visium.opt: Same.
	* config/vms/vms.opt: Same.
	* config/vxworks.opt: Same.
	* config/xtensa/xtensa.opt: Same.

2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (parameter_index_in_region): Update call to
	invariant_in_sese_p_rec.
	* graphite-sese-to-poly.c (extract_affine): Same.
	* sese.c (invariant_in_sese_p_rec): Pass in an extra
	parameter has_vdefs.
	(scalar_evolution_in_region): Return chrec_dont_know when the scalar
	variable depends on virtual definitions in the current region.
	* sese.h (invariant_in_sese_p_rec): Update declaration.

2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (build_scops): Do not handle scops
	with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
	* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.

2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>

	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (CHECKING_P): Define.
	* system.h: Use CHECKING_P.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/67056
	* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
	is negative we don't know the type.
	(check_stmt_for_type_change): Skip constructors of non-polymorphic
	types as those won't help devirutalization.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Add code matching empty constructors.

2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
	comments.
	(TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
	Add comments on sign of the result.
	* fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
	Recurse on operand #1 instead of operand #0.
	<CEIL_MOD_EXPR>: Do not recurse.
	<ROUND_MOD_EXPR>: Likewise.

2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cfgrtl.c (pass_free_cfg::execute): Adjust.
	* final.c (dbr_sequence_length): Always define.
	(shorten_branches): Adjust.
	* genattr-common.c (main): Always define DELAY_SLOTS.
	* genattr.c (main): Unconditionally declare functions and define
	macros related to delay slots.
	* genattrtab.c (write_eligible_delay): Adjust.
	(main): Always write out delay slot functions.
	* opts.c (default_options_table): Adjust.
	* reorg.c (redirect_with_delay_slots_safe_p): Likewise.
	(redirect_with_delay_list_safe_p): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(make_return_insns): Likewise.
	(dbr_schedule): Likewise.
	(rest_of_handle_delay_slots): Likewise.
	(pass_delay_slots::gate): Likewise.
	* toplev.c (process_options): Likewise.

2015-10-21  Richard Henderson  <rth@redhat.com>

	* targhooks.c (default_addr_space_pointer_mode): Remove check
	for generic address space.
	(default_addr_space_address_mode): Likewise.
	(default_addr_space_valid_pointer_mode): Likewise.
	(default_addr_space_legitimate_address_p): Likewise.
	(default_addr_space_legitimize_address): Likewise.
	* target.def (addr_space.pointer_mode): Update documentation
	of default behavior.
	(addr_space.address_mode): Likewise.
	* tm.texi: Update.

	* expr.c (expand_expr_real_2): Use convert_modes on disjoint
	address spaces.

2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_cabs): Delete.
	(fold_builtin_1): Update accordingly.  Handle constant arguments here.
	* match.pd: Add rules previously handled by fold_builtin_cabs.

2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>

	* fold-const.h (fold_strip_sign_ops): Delete.
	* fold-const.c (fold_strip_sign_ops): Likewise.
	(fold_unary_loc, fold_binary_loc): Remove calls to it.
	* builtins.c (fold_builtin_cos, fold_builtin_cosh)
	(fold_builtin_ccos): Delete.
	(fold_builtin_pow): Don't call fold_strip_sign_ops.
	(fold_builtin_hypot, fold_builtin_copysign): Likewise.
	Remove fndecl argument.
	(fold_builtin_1): Update calls accordingly.  Handle constant
	cos, cosh, ccos and ccosh here.

2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
	* Makefile.in (OBJS): Add gimple-ssa-backprop.o.
	* common.opt (fssa-backprop): New option.
	* fold-const.h (negate_mathfn_p): Declare.
	* fold-const.c (negate_mathfn_p): Make public.
	* timevar.def (TV_TREE_BACKPROP): New.
	* tree-pass.h (make_pass_backprop): Declare.
	* passes.def (pass_backprop): Add.
	* gimple-ssa-backprop.c: New file.

2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
	Do not call create_empty_if_region_on_edge when cond_expr is true.
	(translate_isl_ast_node_for): Check whether a guard has been generated.

2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-poly.h (struct dr_info): Added invalid_alias_set number.
	(operator=): Removed.
	(dr_info): Make alias_set number the last argument with default
	value of invalid_alias_set.
	* graphite-sese-to-poly.c (build_scop_drs): Update constructor
	of dr_info.
	(rewrite_reductions_out_of_ssa): Iterate only through the
	basic blocks which are inside region.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	* sese.h (struct sese_l): Removed assignment operator.
	(split_region_for_bb): Removed dead code.

2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-poly.h (struct dr_info): Removed conversion constructor.
	(struct scop): Renamed scop::region to scop::scop_info
	(scop_set_region): Same.
	(SCOP_REGION): Removed
	(SCOP_CONTEXT): Removed.
	(POLY_SCOP_P): Removed.
	* graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
	Rename scop->region to scop->scop_info.
	(add_parameters_to_ivs_params): Same.
	(graphite_regenerate_ast_isl): Same.
	* graphite-poly.c (new_scop): Same.
	(free_scop): Same.
	(print_scop_params): Same.
	* graphite-scop-detection.c (scop_detection::remove_subscops): Same.
	(scop_detection::remove_intersecting_scops): Use pointer to sese_l.
	(dot_all_scops_1): Rename scop->region to scop->scop_info.
	(scop_detection::nb_pbbs_in_loops): Same.
	(find_scop_parameters): Same.
	(try_generate_gimple_bb): Same.
	(gather_bbs::before_dom_children): Same.
	(gather_bbs::after_dom_children): Same.
	(build_scops): Same.
	* graphite-sese-to-poly.c (build_scop_scattering): Same.
	(extract_affine_chrec): Same.
	(extract_affine): Same.
	(set_scop_parameter_dim): Same.
	(build_loop_iteration_domains): Same.
	(create_pw_aff_from_tree): Same.
	(add_param_constraints): Same.
	(build_scop_iteration_domain): Same.
	(build_scop_drs): Same.
	(analyze_drs_in_stmts): Same.
	(insert_out_of_ssa_copy_on_edge): Same.
	(rewrite_close_phi_out_of_ssa):Same.
	(rewrite_reductions_out_of_ssa):Same.
	(handle_scalar_deps_crossing_scop_limits):Same.
	(rewrite_cross_bb_scalar_deps):Same.
	(rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
	(build_poly_scop):Same.
	(build_alias_set): Use pointer to dr_info.
	* graphite.c (print_graphite_scop_statistics):
	(graphite_transform_loops):
	* sese.h (struct sese_l): Remove conversion constructor.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/67966
	* tree.c (verify_type): Verify that TYPE_MODE match
	between TYPE_CANONICAL and type.
	* expr.c (store_expr_with_bounds): Revert my previous change.
	* expmed.c (store_bit_field_1): Revert prevoius change.
	* gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
	to match for all types.

2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
	nesting.

2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
	* stor-layout.c (layout_type): Use mode to get vector mask size.
	* target.def (get_mask_mode): New.
	* targhooks.c (default_get_mask_mode): New.
	* targhooks.h (default_get_mask_mode): New.
	* tree-vect-stmts.c (get_same_sized_vectype): Add special case
	for boolean vector.
	* tree.c (MAX_BOOL_CACHED_PREC): New.
	(nonstandard_boolean_type_cache): New.
	(build_nonstandard_boolean_type): New.
	(make_vector_type): Vector mask has no canonical type.
	(build_truth_vector_type): New.
	(build_same_sized_truth_vector_type): New.
	(truth_type_for): Support vector masks.
	* tree.h (VECTOR_BOOLEAN_TYPE_P): New.
	(build_truth_vector_type): New.
	(build_same_sized_truth_vector_type): New.
	(build_nonstandard_boolean_type): New.
	* tree-cfg.c (verify_gimple_comparison) Require boolean
	vector type for vector comparison.
	(verify_gimple_assign_ternary): Likewise.
	* optabs.c (expand_vec_cond_expr): Accept boolean vector as
	condition operand.
	* tree-vect-stmts.c (vectorizable_condition): Use boolean
	vector type for vector comparison.
	* tree-vect-generic.c (elem_op_func): Add new operand to hold
	vector type.
	(do_unop): Adjust to modified function type.
	(do_binop): Likewise.
	(do_plus_minus): Likewise.
	(do_negate); Likewise.
	(expand_vector_piecewise): Likewise.
	(do_cond): Likewise.
	(do_compare): Use comparison instead of condition.
	(expand_vector_divmod): Use boolean vector type for comparison.
	(expand_vector_operations_1): Skip scalar mask operations.

2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* omp-low.c (simd_clone_create): Set in_other_partition
	for created clones.

2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.exp (Local Register Variables): Rewrite.

2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
	and x*x in cases where the operands are sign ops.  Extend these
	rules to handle copysign as a sign op (including for cos, cosh
	and pow, which already treated negate and abs as sign ops).

2015-10-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68018
	* config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
	for 64-bit MS_ABI targets also when default incoming stack boundary
	is overriden.

2015-10-21  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
	cond stmts, enhanced and split out from ...
	(vn_phi_eq): ... here.

2015-10-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/68031
	* fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
	(tree_ssa_name_nonnegative_warnv_p): Fold into ...
	(tree_single_nonnegative_warnv_p): ... here.  For SSA names
	make sure they are not registered for update.

2015-10-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68026
	* tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
	unsigned VARYING values.

2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>

	* asan.c (asan_emit_stack_protection): Don't pass local stack to
	asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
	NULL and use local stack than.
	(asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
	in addition to __asan_init.
	* sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
	(BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
	* asan.h (asan_intercepted_p): Handle new string builtins.
	* ubsan.c (ubsan_use_new_style_p): New function.
	(ubsan_instrument_float_cast): If location is unknown, assign
	input_location to loc. Propagate loc to ubsan_create_data if
	ubsan_use_new_style_p returned true.

2015-10-21  Jeff Law  <law@redhat.com>

	* Makefile.in (OBJS): Remove sched-vis.c
	* sched-vis.c: Removed.  Code moved into...
	* print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
	* rtl.h: Remove prototypes for functions now living in print-rtl.c
	* print-rtl.h Add prototypes for new functions in print-rtl.c.
	* auto-inc-dec.c: Include print-rtl.h
	* cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
	* ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.

	* varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
	ATTRIBUTE_UNUSED.

2015-10-21  Richard Biener  <rguenther@suse.de>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
	to match.pd.
	Move (a * (1 << b)) is (a << b) to match.pd.
	Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
	Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
	Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.

	* match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
	New simplifier.
	(mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
	(bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
	(bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
	: New simplifier.
	(mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
	New simplifier.
	(match (logical_inverted_value @0) (truth_not @0)) : New Predicate.

2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>
	    Alan Modra  <amodra@gmail.com>

	* config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
	* config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
	(LINK_SPEC): Add %(link_secure_plt).
	(SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
	* config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.

2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
	(MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.

2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
	New function.
	(fusion_load_store): Use it.
	* config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
	ldp and stp in VD modes.
	* config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
	(store_pair<mode>, VD): Likewise.

2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/67609
	* lra-splill.c (lra_final_code_change): Don't remove all
	sub-registers.

2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* simplify-rtx.c (simplify_binary_operation): If either operand was
	a constant pool reference use them if all other simplifications failed.

2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md
	(*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
	* config/aarch64/aarch64-simd.md
	(*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
	(aarch64_fpconst_pow_of_2): New function.
	(aarch64_vec_fpconst_pow_of_2): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
	prototype.
	(aarch64_vec_fpconst_pow_of_2): Likewise.
	* config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
	(aarch64_fp_vec_pow2): Likewise.

2015-10-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
	(ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
	* config/alpha/alpha.c (alpha_function_arg_advance): Update
	ALPHA_ARG_SIZE usage.
	(alpha_arg_partial_bytes): Ditto.

2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66810
	* cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
	error_mark_node decls.

2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67963
	PR target/67985
	* common/config/i386/i386-common.c (ix86_handle_option): Remove
	OPT_miamcu handling.
	* config/i386/i386.c (PTA_NO_80387): New macro.
	(processor_alias_table): Add PTA_NO_80387 to lakemont.
	(ix86_option_override_internal): Update MASK_80387 from
	PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
	SSE math only if 80387 is supported.  Don't change
	MASK_FLOAT_RETURNS.
	(ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
	80387 is supported.
	* config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
	if TARGET_80387 is true and TARGET_IAMCU is false.
	(TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
	is true and TARGET_IAMCU_P is false.

2015-10-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68017
	* tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.

2015-10-20  Martin Liska  <mliska@suse.cz>

	* cgraphclones.c (cgraph_node::create_virtual_clone):
	Verify cgraph_node.local.versionable instead of calling
	tree_versionable_function_p.
	* ipa-cp.c (determine_versionability): Save the information
	to ipa_node_params summary.
	(ipcp_versionable_function_p): Use it.
	(ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
	(ipcp_generate_summary): Do not compute cgraph_node
	versionability.
	* ipa-inline-analysis.c (inline_generate_summary): Compute
	versionability for all cgraph nodes.
	* ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
	ipa_node_params::versionability.
	* ipa-prop.h (struct ipa_node_params): Declare it.

2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR other/67868
	* varasm.c (assemble_variable): Move special vtv handling to..
	(handle_vtv_comdat_sections): .. here. New function.
	(output_object_block): Handle vtv sections.

2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66912
	* varasm.c (default_binds_local_p_2): Turn on extern_protected_data.

2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>

	* doc/extend.texi: Update documentation WRT inline functions.

2015-10-20  Alan Modra  <amodra@gmail.com>

	PR go/66870
	* config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
	* config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
	(TARGET_CAN_SPLIT_STACK_64BIT): Define.

2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>

	PR rtl-optimization/66790
	* df.h (DF_MIR): New macro.
	(DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
	(DF_MIR_INFO_BB): New macro.
	(DF_MIR_IN, DF_MIR_OUT): New macros.
	(struct df_mir_bb_info): New.
	(df_mir): New macro.
	(df_mir_add_problem, df_mir_simulate_one_insn): New forward
	declarations.
	(df_mir_get_bb_info): New.
	* df-problems.c (struct df_mir_problem_data): New.
	(df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
	df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
	df_mir_confluence_0, df_mir_confluence_n,
	df_mir_transfer_function, df_mir_free, df_mir_top_dump,
	df_mir_bottom_dump, df_mir_verify_solution_start,
	df_mir_verify_solution_end): New.
	(problem_MIR): New.
	(df_mir_add_problem, df_mir_simulate_one_insn): New.
	* timevar.def (TV_DF_MIR): New.
	* ree.c: Include bitmap.h
	(add_removable_extension): Add an INIT_REGS parameter.  Use it
	to skip zero-extensions that may get an uninitialized register.
	(find_removable_extensions): Compute must-initialized registers
	using the MIR dataflow problem. Update the call to
	add_removable_extension.
	(find_and_remove_re): Call df_mir_add_problem.

2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* common/config/mn10300/mn10300-common.c
	(mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
	Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.

2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.texi (Explicit Register Variables): Simplify and
	avoid unnecessary and confusion abbreviations.  Update cross
	references.
	doc/implement-c.tex: Update cross reference.

2015-10-19  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
	that create irreducible loops unless the path elimiantes a multiway
	branch.

2015-10-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67975
	* tree-cfg.h (extract_true_false_controlled_edges): Declare.
	* tree-cfg.c (extract_true_false_controlled_edges): Split out
	core worker from ...
	* tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
	* tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
	instead of block number for PHIs with two or one args.
	(vn_phi_eq): Compare edge predicates of PHIs that are in different
	blocks.

2015-10-19  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
	(gimple_stmt_nonnegative_warnv_p): Use it.
	* match.pd (CPROJ): New operator list.
	(cproj (complex ...)): Move simplifications from ...
	* builtins.c (fold_builtin_cproj): ... here.

2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_move): Use
	GET_MODE_BITSIZE for IA MCU psABI to get vector natural
	alignment.

2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi: Replace @optindex with @opindex.

2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67995
	* config/i386/i386.c (ix86_valid_target_attribute_tree): If
	arch= is set,  clear all bits in x_ix86_isa_flags, except for
	ISA_64BIT, ABI_64, ABI_X32, and CODE16.

2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>

	PR middle-end/68002
	* common.opt (fkeep-static-functions): New option.
	* doc/invoke.texi: Document it.
	* cgraphunit.c (cgraph_node::finalize_function): Use it.

2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* sched-int.h (struct autopref_multipass_data_): Remove offset
	field.  Add min_offset, max_offset, multi_mem_insn_p fields.
	* haifa-sched.c (analyze_set_insn_for_autopref): New function.
	(autopref_multipass_init): Use it.  Handle PARALLEL sets.
	(autopref_rank_data): New function.
	(autopref_rank_for_schedule): Use it.
	(autopref_multipass_dfa_lookahead_guard_1): Likewise.

2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>

	PR other/65800
	* gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.

2015-10-18  Iain Sandoe  <iain@codesourcery.com>

	* config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
	(HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
	(LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
	(STANDARD_STARTFILE_PREFIX_1): New.
	(STANDARD_STARTFILE_PREFIX_2): New.

2015-10-18  Iain Sandoe  <iain@codesourcery.com>

	* config/darwin-driver.c (darwin_default_min_version): Refactor code.
	(darwin_driver_init): Note a version-min when provided on the c/l.
	* config/darwin.h (%darwin_minversion): Remove.
	* config/i386/darwin.h: Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/darwin.opt (mmacosx-version-min=): Use the configured default,
	rather than an arbitrary constant.

2015-10-18  Iain Sandoe  <iain@codesourcery.com>

	* config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
	PPC, detect conflicts between -arch and multilib settings.  Detect
	and warn about conflicts between multiple -arch definitions.

2015-10-18  Iain Sandoe  <iain@codesourcery.com>

	* config/darwin-driver.c: Adjust includes to add diagnostic-core.

2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* lra-constraints.c (add_next_usage_insn): Change argument type
	from rtx to rtx_insn *.

2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>

	* i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
	for Lakemont.

2015-10-16  Andrew MacLeod  <amacleod@redhat.com>

	* config/tilepro/gen-mul-tables.cc: Adjust include files.
	* config/tilegx/mul-tables.c: Regenerate.
	* config/tilepro/mul-tables.c: Regenerate.

	* config/tilegx/tilegx-c.c: Adjust include files.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro-c.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/aarch-common.c: Likewise.
	* config/arm/arm-builtins.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr-c.c: Likewise.
	* config/avr/avr-devices.c: Likewise.
	* config/avr/avr-log.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/darwin-driver.c: Likewise.
	* config/darwin.c: Likewise.
	* config/default-c.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/epiphany/mode-switch-use.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/ft32/ft32.c: Likewise.
	* config/glibc-c.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/host-cygwin.c: Likewise.
	* config/i386/host-mingw32.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/msformat-c.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c-pragma.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep-pragma.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze-c.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips-tables.opt
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430-c.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/nvptx/mkoffload.c: Likewise.
	* config/nvptx/nvptx.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rl78/rl78-c.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/host-darwin.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000-linux.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390-c.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh-c.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sol2-c.c: Likewise.
	* config/sol2-cxx.c: Likewise.
	* config/sol2-stubs.c: Likewise.
	* config/sol2.c: Likewise.
	* config/sparc/sparc-c.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu-c.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850-c.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/visium/visium.c: Likewise.
	* config/vms/vms-c.c: Likewise.
	* config/vms/vms.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/winnt-c.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2015-10-16  Christian Bruel  <christian.bruel@st.com>

	PR target/67745
	* config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
	(FUNCTION_BOUNDARY_P): New macro:
	* config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
	New hook.
	* doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
	* doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
	* target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
	* function.c (allocate_struct_function): Call
	relayout_function hook.
	* passes.c (rest_of_decl_compilation): Likewise.

2015-10-16  Christian Bruel  <christian.bruel@st.com>

	PR target/67745
	* config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
	* config/arm/arm.c (arm_option_override_internal): Call
	arm_override_options_after_change_1.
	(arm_override_options_after_change): New function.
	(arm_override_options_after_change_1): Likewise.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	Revert:
	* ipa-icf-gimple.c (func_checker::compare_operand): Compare only
	empty constructors.

2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
	argument is an ADDR_EXPR.

2015-10-16  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
	and get rid of force_gimple_operand_gsi.
	(gimple_fold_builtin_memory_chk): Likewise.
	(gimple_fold_builtin_stxcpy_chk): Likewise.
	(rewrite_to_defined_overflow): Likewise.
	(gimple_convert_to_ptrofftype): New function.
	* gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.

2015-10-16  Richard Biener  <rguenther@suse.de>

	* tree-nested.h (build_addr): Adjust prototype.
	* tree-nested.c (build_addr): Remove context argument and use
	mark_addressable.
	(get_static_chain): Adjust calls to build_addr.
	(convert_nl_goto_reference): Likewise.
	(convert_tramp_reference_op): Likewise.
	(finalize_nesting_tree_1): Likewise.
	* value-prof.c (gimple_ic): Likewise.
	* gimple-low.c (lower_builtin_setjmp): Likewise.
	* tree-parloops.c (take_address_of): Likewise.
	(create_call_for_reduction_1): Likewise.
	* tree-profile.c (gimple_gen_interval_profiler): Likewise.
	(gimple_gen_ic_func_profiler): Likewise.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf-gimple.c (func_checker::compare_operand): Compare only
	empty constructors.

2015-10-16  Michael Collison  <michael.collison@linaro.org>
	    Andrew Pinski  <andrew.pinski@caviumnetworks.com>

	* match.pd ((x < y) && (x < z) -> x < min (y,z),
	(x > y) and (x > z) -> x > max (y,z))

2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
	(DYNAMIC_LINKER): Renamed to ...
	(GLIBC_DYNAMIC_LINKER): This.
	(SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.

2015-10-15  Marek Polacek  <polacek@redhat.com>

	* tree-ssa-reassoc.c (attempt_builtin_copysign): Call
	gimple_call_builtin instead of is_gimple_call.

2015-10-15  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_init_vector): Remove unused vars.

2015-10-15  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_get_new_ssa_name): Declare.
	* tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
	* tree-vect-loop.c (get_initial_def_for_induction): Drop
	use of force_gimple_operand in favor of gimple_build.
	Use vect_get_new_ssa_name.
	* tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
	(vectorizable_mask_load_store): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vect_get_vec_def_for_stmt_copy): Remove redundant stmt.

2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/67945
	* tree-pass.h (PROP_gimple_opt_math): New property flag.
	* generic-match-head.c (canonicalize_math_p): New function.
	* gimple-match-head.c: Include tree-pass.h.
	(canonicalize_math_p): New function.
	* match.pd: Group math built-in rules into simplifications
	and canonicalizations.  Guard the latter with canonicalize_math_p.
	* tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
	PROP_gimple_opt_math property.

2015-10-15  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67953
	* match.pd (X - (X / Y) * Y): Don't change signedness of @0.

2015-10-15  Jiong Wang  <jiong.wang@arm.com>

	* config.gcc: Recognize "." in architecture base name for AArch64.

2015-10-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
	ROUND_UP macro.
	* config/mips/mips.c (mips_setup_incoming_varargs): Use
	ROUND_DOWN to calculate off.
	(mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
	(mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
	rounded_size.

2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.

2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
	    Torvald Riegel  <triegel@redhat.com>

	PR target/67281
	* config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
	(tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
	trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
	(*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
	*trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
	(tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
	trechkpt, treclaim, tsr, ttest): New define_expands.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__TM_FENCE__ for htm.
	* doc/extend.texi: Update documentation for htm builtins.

2015-10-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67967
	* config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
	REG_CFA_EXPRESSION to aligned SSE stores.

2015-10-14  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
	num_threaded_edges for successful FSM threads too.

2015-10-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
	(vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
	(vect_get_vec_def_for_operand): Remove unused parameter.
	* tree-vect-loop.c (get_initial_def_for_induction): Adjust.
	(vect_create_epilog_for_reduction): Likewise.
	(vectorizable_reduction): Likewise.
	(vectorizable_live_operation): Likewise.
	* tree-vect-patterns.c (type_conversion_p): Likewise.
	(vect_recog_vector_vector_shift_pattern): Likewise.
	(check_bool_pattern): Likewise.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
	(vect_analyze_slp_cost_1): Likewise.
	* tree-vect-stmts.c (process_use): Likewise.
	(vect_get_vec_def_for_operand): Do not handle reductions.
	(vect_get_vec_defs): Adjust.
	(vectorizable_mask_load_store): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_simd_clone_call): Likewise.
	(vect_get_loop_based_defs): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vect_is_simple_cond): Likewise.
	(vectorizable_condition): Likewise.
	(vect_is_simple_use): Remove unused parameters.
	(vect_is_simple_use_1): Adjust and rename.

2015-10-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67915
	* match.pd: Handle comparisons of addresses of STRING_CSTs.
	* gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
	* tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
	stmt folding in favor of GIMPLE one.

2015-10-14  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67815
	* tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
	(reassociate_bb): Call it.

2015-10-14  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Reset info at start.
	(vect_analyze_group_access_1): Add debug print.
	* tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
	(vect_compute_single_scalar_iteration_cost): ... to this.
	(vect_analyze_loop_2): Adjust.
	* tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
	* tree-vectorizer.h: ... here.
	(add_stmt_info_to_vec): Remove.
	* tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.

2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* targhooks.c (default_target_option_pragma_parse): Do not warn if
	called on behalf of "#pragma GCC pop_options".

2015-10-14  Tom de Vries  <tom@codesourcery.com>

	* cfganal.c (verify_no_unreachable_blocks): New function.
	(inverted_post_order_compute) [ENABLE_CHECKING]: Call
	verify_no_unreachable_blocks.
	cfganal.h (verify_no_unreachable_blocks): Declare.

2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>

	* common.opt: Add flag_checking.
	* system.h (CHECKING_P): Define.

2015-10-13  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
	BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
	BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
	BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
	BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
	(struct cgraph_simd_clone_arg): Adjust comment.
	* coretypes.h (struct gomp_ordered): New forward decl.
	* gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
	set critical clauses to it.
	(gimple_build_omp_ordered): Return gomp_ordered * instead of
	gimple *.  Add CLAUSES argument, set ordered clauses to it.
	(gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
	GIMPLE_OMP_ORDERED.
	* gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
	GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
	* gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
	to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
	GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
	GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
	Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
	GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
	renumber
	GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
	(gomp_critical): Add clauses field.
	(gomp_ordered): New struct.
	(is_a_helper <gomp_ordered *>::test): New inline.
	(gimple_build_omp_critical): Add CLAUSES argument.
	(gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
	instead of gimple *.
	(gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
	gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
	gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
	gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
	inline functions.
	* gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
	(dump_gimple_omp_target): Handle enter data and exit data.
	(dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
	(dump_gimple_omp_critical): Print clauses.
	(dump_gimple_omp_ordered): New function.
	(dump_gimple_omp_task): Handle taskloop.
	(pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
	GIMPLE_OMP_ORDERED.
	* gimple-walk.c (walk_gimple_op): Walk clauses on
	GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
	(enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
	(struct gimplify_omp_ctx): Add loop_iter_var,
	target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
	and target_firstprivatize_array_bases fields.
	(delete_omp_context): Release loop_iter_var.
	(gimplify_bind_expr): Handle ORT_NONE.
	(maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
	ORT_COMBINED_TARGET.
	(is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
	OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
	(omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
	ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
	ctx->target_map_scalars_firstprivate.
	(omp_add_variable): Handle ORT_NONE.  Allow map clause together with
	data sharing clauses.  For data sharing clause with VLA decl
	on omp target/target data don't add firstprivate for the pointer.
	Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
	(omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
	the addition of ORT_COMBINED_TARGET.
	(omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
	for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
	pointers as zero length array sections and
	ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
	data sharing.
	(omp_check_private): Handle omp_member_access_dummy_var vars.
	(find_decl_expr): New function.
	(gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
	complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
	Handle OMP_CLAUSE_GANG separately.  Handle
	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
	clauses.  Diagnose linear clause on combined
	distribute {, parallel for} simd construct, unless it is the loop
	iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
	Handle map clauses with COMPONENT_REF.  Initialize
	ctx->target_map_scalars_firstprivate,
	ctx->target_firstprivatize_array_bases and
	ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
	linear clause even to target region if combined.  Remove
	map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
	OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
	map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
	Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
	OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
	For linear clause on worksharing loop combined with parallel add
	shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
	with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
	omp_member_access_dummy_var vars.  Add lastprivate clause to outer
	taskloop if needed.
	(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
	If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
	GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
	GOMP_MAP_POINTER.
	(gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
	of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
	in target body.  Handle removal of struct mapping if struct is not
	seen in target body.  Remove GOMP_MAP_STRUCT map clause on
	OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
	addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
	instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
	for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
	clause appear together.  Handle
	OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
	clause if it has map-type-modifier always.  Handle
	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
	clauses.
	(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
	Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
	callers.
	(gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
	loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
	iterators in doacross loops.
	(gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
	gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
	for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
	for the addition of ORT_COMBINED_TARGET.
	(gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
	gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
	and OMP_TARGET_EXIT_DATA.
	(gimplify_omp_ordered): New function.
	(gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
	OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
	Gimplify clauses on OMP_CRITICAL.
	* internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
	expand_GOMP_SIMD_ORDERED_END): New functions.
	* internal-fn.def (GOMP_SIMD_ORDERED_START,
	GOMP_SIMD_ORDERED_END): New internal functions.
	* omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
	BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
	BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
	BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
	BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
	BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
	BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
	(BUILT_IN_GOMP_TASK): Add INT argument to the end.
	(BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
	adjust type.
	(BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
	GOMP_target_data_41, adjust type.
	(BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
	GOMP_target_update_41, adjust type.
	* omp-low.c (struct omp_region): Adjust comments, add ord_stmt
	field.
	(struct omp_for_data): Add ordered and simd_schedule fields.
	(omp_member_access_dummy_var, unshare_and_remap_1,
	unshare_and_remap, is_taskloop_ctx): New functions.
	(is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
	(extract_omp_for_data): Handle taskloops and doacross loops
	and simd schedule modifier.
	(omp_adjust_chunk_size): New function.
	(get_ws_args_for): Use it.
	(lookup_sfield): Change first argument to splay_tree_key,
	add overload with first argument tree.
	(maybe_lookup_field): Likewise.
	(use_pointer_for_field): Handle omp_member_access_dummy_var.
	(omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
	task_shared_vars, clear TREE_ADDRESSABLE on the copy.
	(build_outer_var_ref): Add LASTPRIVATE argument, handle
	taskloops and omp_member_access_dummy_var vars.
	(build_sender_ref): Change first argument to splay_tree_key,
	add overload with first argument tree.
	(install_var_field): For mask & 8 use &DECL_UID as key instead
	of the tree itself.
	(fixup_child_record_type): Const qualify *.omp_data_i.
	(scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
	C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
	OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
	on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
	(create_omp_child_function): Set TREE_READONLY on .omp_data_i.
	(find_combined_for): Allow searching for different GIMPLE_OMP_FOR
	kinds.
	(add_taskreg_looptemp_clauses): New function.
	(scan_omp_parallel): Use it.
	(scan_omp_task): Likewise.
	(finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
	For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
	(check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
	and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
	sandwiched taskloop constructs.  Type check
	OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
	region.  Diagnose depend(source) or depend(sink:...) on
	target constructs or task/taskloop.
	(handle_simd_reference): Use get_name.
	(lower_rec_input_clauses): Likewise.  Ignore all
	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
	Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
	before passing it to omp_clause_{default,copy}_ctor.  Handle
	OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
	lastprivate_firstprivate flag for linear that needs copyin and
	copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
	(lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
	on taskloop lookup decl in outer context.  Pass true to
	build_outer_var_ref lastprivate argument.  Handle
	OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
	outside of outer taskloop for.
	(lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
	OMP_CLAUSE_DECL.
	(lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
	GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
	omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
	with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
	(lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
	abstract origin.  Handle omp_member_access_dummy_var vars.
	(expand_parallel_call): Use expand_omp_build_assign.
	(expand_task_call): Handle taskloop construct expansion.  Add
	REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
	integers.  Add priority argument to GOMP_task* calls.  Or in
	GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
	GOMP_task call.
	(expand_omp_build_assign): Add prototype.  Add AFTER
	argument, if true emit statements after *GSI_P and continue linking.
	(expand_omp_taskreg): Adjust expand_task_call caller.
	(expand_omp_for_init_counts): Rename zero_iter_bb argument to
	zero_iter1_bb and first_zero_iter to first_zero_iter1, add
	zero_iter2_bb and first_zero_iter2 arguments, handle computation
	of counts even for ordered loops.
	(expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
	(expand_omp_ordered_source, expand_omp_ordered_sink,
	expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
	functions.
	(expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
	clauses on worksharing loop.  Handle DOACROSS loop expansion.
	(expand_omp_for_static_nochunk): Handle linear clauses on
	worksharing loop.  Adjust expand_omp_for_init_counts
	callers.
	(expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
	(expand_omp_simd): Handle addressable fd->loop.v.  Adjust
	expand_omp_for_init_counts callers.
	(expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
	functions.
	(expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
	Handle doacross loops.
	(expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
	GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
	GOMP_target_{41,update_41,enter_exit_data} libcalls.
	(expand_omp): Don't expand ordered depend constructs here, record
	ord_stmt instead for later expand_omp_for_generic.
	(build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
	GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
	clause as stand-alone directive.
	(lower_omp_ordered_clauses): New function.
	(lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
	don't lower anything.
	(lower_omp_for_lastprivate): Use last _looptemp_ clause
	on taskloop for comparison.
	(lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
	and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
	expansion for linear adjustments.
	(create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
	(lower_depend_clauses): Assert not seeing sink/source depend kinds.
	Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
	to tree * pointing to the stmt's clauses.
	(lower_omp_taskreg): Adjust lower_depend_clauses caller.
	(lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
	and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
	GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
	map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
	clauses.  Always use short kind and 8-bit align shift.
	(lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
	(struct lower_omp_regimplify_operands_data): New type.
	(lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
	New functions.
	(lower_omp_1): Use lower_omp_regimplify_operands instead of
	gimple_regimplify_operands.
	(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
	GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
	clause as stand-alone directive.
	(simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
	(simd_clone_mangle): Mangle the various linear kinds
	per the new ABI.
	(simd_clone_adjust_argument_types): Handle
	SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
	(simd_clone_init_simd_arrays): Don't do anything for uval.
	(simd_clone_adjust): Handle
	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
	SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
	Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
	* omp-low.h (omp_member_access_dummy_var): New prototype.
	* passes.def (pass_simduid_cleanup): Schedule another copy of the
	pass after all optimizations.
	* tree.c (omp_clause_code_name): Add entries for
	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
	(omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
	arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
	(walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
	OMP_CLAUSE_REDUCTION 5 arguments.  Handle
	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
	clauses.
	* tree-core.h (enum omp_clause_linear_kind): New.
	(struct tree_omp_clause): Change type of map_kind
	from unsigned char to unsigned int.  Add subcode.if_modifier
	and subcode.linear_kind fields.
	(enum omp_clause_code): Add
	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
	(OMP_CLAUSE_REDUCTION): Document
	OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
	(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
	* tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
	(OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
	operand.
	(OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
	operand.
	(OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
	codes.
	* tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
	(OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
	char.
	(OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
	(OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
	(OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
	(OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
	OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
	OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
	OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
	OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
	OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
	OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
	OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
	OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
	* tree-inline.c (remap_gimple_stmt): Handle clauses on
	GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
	IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
	* tree-nested.c (convert_nonlocal_omp_clauses): Handle
	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
	and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
	clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
	(convert_local_omp_clauses): Likewise.
	* tree-pretty-print.c (dump_omp_clause): Handle
	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
	and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
	clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
	OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
	OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
	GOMP_MAP_FORCE_DEALLOC.  Handle
	GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
	(dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
	and clauses on OMP_ORDERED and OMP_CRITICAL.
	* tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
	Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
	(vectorize_loops): Adjust comments.
	(pass_simduid_cleanup::execute): Likewise.
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
	SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
	* wide-int.h (wi::gcd): New.

2015-10-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (classify_argument): Use CEIL where applicable.
	(ix86_function_arg_advance): Ditto.
	(ix86_function_arg): Ditto.
	(ix86_gimplify_va_arg): Ditto.
	(ix86_class_max_nregs): Ditto.
	(inline_memory_move_cost): Ditto.
	(ix86_set_reg_reg_cost): Ditto.
	* config/i386/i386.h (HARD_REGNO_NREGS): Ditto.

2015-10-13  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/67912
	* expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.

2015-10-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
	ROUND_UP macro and UNITS_PER_WORD * 2.
	* config/sparc/sparc.c (sparc_compute_frame_size):
	Use ROUND_UP and ROUND_DOWN macros where applicable.
	(function_arg_record_value, function_arg_record_value_1)
	(function_arg_record_value_1): Ditto.
	(emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
	alignment to double-word.
	(sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
	(sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
	rounded_size.

2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>

	* rtl.h (print_insn): Fix prototype.

2015-10-13  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
	-1.  Add assert that returned entry matches phi argument.
	(parallelize_loops): Move calls to init_stmt_vec_info_vec and
	free_stmt_vec_info_vec ...
	(gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
	with -1.

2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/67909, 67947
	* tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
	really skip the inner loop.

2015-10-13  Jeff Law  <law@redhat.com>

	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Allow single block jump threading paths.

2015-10-13  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67476
	* doc/invoke.texi (@item parloops-schedule): New item.
	* params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
	* tree-parloops.c: Include params-enum.h.
	(create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.

2015-10-13  Tom de Vries  <tom@codesourcery.com>

	* Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
	* params-enum.h: New file.
	* opts.c (handle_param): Handle case that param arg is a string.
	* params-list.h: Handle DEFPARAMENUM5 in params.def.
	* params.c (find_param): New function, factored out of ...
	(set_param_value): ... here.
	(param_string_value_p): New function.
	* params.h (struct param_info): Add value_names field.
	(find_param, param_string_value_p): Declare.

2015-10-13  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67476
	* omp-low.c (expand_omp_for_generic): Handle original loop tree.

2015-10-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
	the data dependence vector.
	(vect_peeling_hash_insert): Get the peeling hash table as argument.
	(vect_peeling_hash_get_lowest_cost): Likewise.
	(vect_enhance_data_refs_alignment): Adjust.
	(struct _vect_peel_info, struct _vect_peel_extended_info,
	struct peel_info_hasher): Move from ...
	* tree-vectorizer.h: ... here.
	(LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
	(LOOP_VINFO_PEELING_HTAB): Likewise.
	(struct _loop_vec_info): Remove min_profitable_iters and
	peeling_htab members.
	* tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
	here.
	(destroy_loop_vec_info): Adjust.
	(vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
	(vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
	to estimate alias versioning cost.
	* tree-vect-slp.c (vect_analyze_slp_cost): Dump header.

2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (real_isinteger): Declare.
	* real.c (real_isinteger): New function.
	* match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
	if y is an even integer.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	revert:
	2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
	* cgraphbuild.c (compute_call_stmt_bb_frequency): Use
	counts when these are more informative.

2015-10-12  Jeff Law  <law@redhat.com>

	* tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
	(fsm_find_control_stmt_paths): Change name of first argument to
	more accurately relfect what it really is.  Handle simplification
	of GIMPLE_COND after finding a thread path for NAME.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
	nontrivial conditions to be handled by FSM threader.
	(thread_through_normal_block): Extract the name to looup via
	FSM threader from COND_EXPR.

	* tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
	restriction that traced SSA_NAME is a user variable.

2015-10-12  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67476
	* omp-low.c (expand_omp_for_generic): Add missing phis.

2015-10-12  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67476
	* omp-low.c (expand_omp_for_generic): Handle simple latch.

2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/aarch64/aarch64-simd-builtins.def: Update builtins
	tables: add tbl3 and tbx4.
	* config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
	(aarch64_tbx4v8qi): New.
	* config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
	(vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
	Rewrite using builtin functions.
	* config/aarch64/iterators.md (UNSPEC_TBX): New.

2015-10-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
	ROUND_UP macro.
	* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
	Use ROUND_UP and ROUND_DOWN macros where applicable.
	(rs6000_darwin64_record_arg_flush): Ditto.
	(rs6000_function_arg): Use ROUND_UP to calculate align_words.
	(rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
	rounded_size.

2015-10-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
	(AARCH64_ROUND_DOWN): Ditto.
	* config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.

2015-10-12  Richard Biener  <rguenther@suse.de>

	PR ipa/67783
	* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
	code that analyzes IVs on each stmt but in a cheaper way avoiding
	quadratic behavior.

2015-10-12  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.c (msp430_mcu_names): Rename to
	msp430_mcu_data, add fields for ISA and hardware multiply
	support.  Import latest data from the devices.csv file.
	(msp430_override_option): Use the data from the new array.
	(msp430_use_f5_series_hwmult): Likewise.
	(use_32bit_hwmult): Likewise.
	(msp430_no_hwmult): Likewise.
	* config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
	MCU names.
	* doc/invoke.texi (MSP430 Options): Note that if the MCU name is
	not recognised then no hardware multiply support is assumed and
	that only the MSP430 ISA is allowed.

2015-10-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_operations): Move cost
	related code ...
	(vect_analyze_loop_2): ... here.

2015-10-11  Jason Merrill  <jason@redhat.com>

	PR c++/67557
	* expr.c (store_field): Call store_constructor directly when
	storing a CONSTRUCTOR into a target smaller than its type.
	Guard against unsafe bitwise copy.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphbuild.c (compute_call_stmt_bb_frequency): Use
	counts when these are more informative.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	* tree-profile.c (tree_profiling): Do not clear
	pure/const when not instrumenting.
	(pass tree_profile): Add dump of symtab.

2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
	addresses.
	(fold_addr_of_array_ref_difference): Likewise.

2015-10-11  Jeff Law  <law@redhat.com>

	* tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
	tree-ssa-threadbackward.c.
	(fsm_find_control_statement_thread_paths): Likewise.
	(thread_through_normal_block): Break out FSM bits and move them
	into a new function in tree-ssa-threadbackward.c.  Call new function
	instead.
	Minimize header file usage.
	* tree-ssa-threadbackward.h: New file.
	* tree-ssa-threadbackward.c: Likewise.
	* Makefile.in (OBJS): Add tree-ssa-threadbackward.o

2015-10-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.

2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67864
	* bb-reorder (reorder_basic_blocks_simple): Prefer existing
	fallthrough edges for conditional jumps.  Don't sort candidate
	edges if not optimizing for speed.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (REVERSE_CONDITION): New default definition.
	* jump.c (reversed_comparison_code_parts): Adjust.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
	check HARD_FRAME_POINTER_IS_ARG_POINTER.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (FRAME_ADDR_RTX): New default definition.
	* builtins.c (expand_builtin_return_addr): Adjust.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
	* builtins.c (expand_builtin_return_addr): Adjust.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
	* builtins.c (expand_builtin_return_addr): Adjust.
	* doc/tm.texi: Likewise.
	* doc/tm.texi.in: Likewise.
	* except.c (expand_builtin_unwind_init): Likewise.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* builtins.c (expand_builtin_return_addr): Adjust.
	* defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.

2015-10-10  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (type_with_interoperable_signedness): New.
	(gimple_canonical_types_compatible_p): Use it.
	* tree.h (type_with_interoperable_signedness): Declare

2015-10-10  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
	and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
	when OEP_ADDRESS_OF is se.

2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c (scop_get_dependences): Add dump of the
	data dependence graph.
	* graphite-poly.c (print_isl_union_map): New.
	(debug_isl_union_map): New.
	* graphite-poly.h (print_isl_union_map): Declare.
	(debug_isl_union_map): Declare.

2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (print_iteration_domain): Remove verbosity.
	Remove OpenScop formatting.
	(print_iteration_domains): Same.
	(debug_iteration_domain): Same.
	(debug_iteration_domains): Same.
	(print_pdr): Same.
	(debug_pdr): Same.
	(dump_gbb_cases): Same.
	(dump_gbb_conditions): Same.
	(print_pdrs): Same.
	(debug_pdrs): Same.
	(print_pbb_body): Same.
	(print_pbb): Same.
	(print_scop_params): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(debug_pbb_domain): Same.
	(debug_pbb): Same.
	(debug_scop_context): Same.
	(debug_scop): Same.
	(debug_scop_params): Same.
	* graphite-poly.h: Same.
	* graphite.c (graphite_transform_loops): Same.

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
	call that isn't needed.

2015-10-09  Jeff Law  <law@redhat.com>

	* tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
	rather than moving each name to the freelist individually.

2015-10-09  Steve Ellcey  <sellcey@imgtec.com>

	* config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
	* frame-header-opt.c: New file.
	* config/mips/mips-proto.h (mips_register_frame_header_opt):
	Add prototype.
	* config/mips/mips.c (mips_compute_frame_info): Check
	optimize_call_stack flag.
	(mips_option_override): Register new frame_header_opt pass.
	(mips_frame_info, mips_int_mask, mips_shadow_set,
	machine_function): Move these types to...
	* config/mips/mips.h: here.
	(machine_function): Add does_not_use_frame_header and
	optimize_call_stack fields.
	* config/mips/t-mips (frame-header-opt.o): Add new make rule.
	* doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
	Document new flags.
	* config/mips/mips.opt (mframe-header-opt): Add new option.

2015-10-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
	ROUND_DOWN where applicable.

2015-10-09  Jeff Law  <law@redhat.com>

	* tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
	correct statement.

2015-10-09  Renlin Li  <renlin.li@arm.com>

	* config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
	operands[0] and operands[2].
	(neon_vtrn<mode>_insn): Likewise.
	(neon_vzip<mode>_insn): Likewise.

2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* match.pd: ((X inner_op C0) outer_op C1) New pattern.
	((X & C2) << C1): Expand to...
	(X {&,^,|} C2 << C1): ...This.
	((X & C2) >> C1): Expand to...
	(X {&,^,|} C2 >> C1): ...This.

2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>

	PR target/67895
	* config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
	Adjust embedded rounding/SAE specifier position.
	(define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
	(define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
	(define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
	(define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
	(define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
	Likewise.
	(define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.

2015-10-09  Martin Jambor  <mjambor@suse.cz>

	tree-optimization/67794
	* tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
	between types of state,ents but accept original definitions as a
	parameter.
	(ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
	iterate over definitions.

2015-10-09  James Norris  <jnorris@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_offload_options): New.
	(TARGET_OFFLOAD_OPTIONS): New.

2015-10-09  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/67891
	* cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.

	PR middle-end/67766
	* function.c (expand_function_end): Move return value
	promotion past the handling of PARALLELs and CONCATs.

	PR rtl-optimization/67828
	* tree-ssa-loop-unswitch.c: Include tree-ssa.h.
	(tree_may_unswitch_on): Don't unswitch on expressions
	involving undefined values.

2015-10-09  Richard Biener  <rguenther@suse.de>

	* genmatch.c (print_operand): Fix formatting.
	(dt_node::append_simplify): Warn for multiple simplifiers
	that match the same pattern.
	* match.pd (log (exp @0)): Remove duplicates.

2015-10-09  Richard Biener  <rguenth@suse.de>

	PR target/67366
	* gimple-fold.c (optabs-query.h): Include
	(gimple_fold_builtin_memory_op): Allow unaligned stores
	when movmisalign_optabs are available.

2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/67366
	* config/arm/arm.md (movmisalign<mode>): New.
	* config/arm/iterators.md (HSI): New.

2015-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67891
	* gimple-match.h (gimple_simplified_result_is_gimple_val):
	New helper.
	(gimple_resimplify1): Declare.
	(gimple_resimplify2): Likewise.
	(gimple_resimplify3): Likewise.
	* gimple-match-head.c (gimple_resimplify1): Export.
	(gimple_resimplify2): Likewise.
	(gimple_resimplify3): Likewise.
	(maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
	* tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
	to avoid creating stmts without VN info.

2015-10-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_item::compare_symbol_references): Fix use
	of availability.

2015-10-08  Jeff Law  <law@redhat.com>

	* value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
	and release_ssa_name in two places.
	(gimple_stringop_fixed_value): Similarly.

	* tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
	release_defs.

	* tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
	unlink_stmt_vdef and release_ssa_name_fn.

	* tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
	release_defs.

2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Round up the
	SSE register save area to 16 bytes only if the incoming stack
	boundary is no less than 16 bytes.

2015-10-08  Jeff Law  <law@redhat.com>

	* tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
	release_ssa_name.  Fix typo in comment.

2015-10-08  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.h (struct machine_function): Add comment.
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
	may return pointer as well as in memory.
	(nvptx_output_return): Likewise.

2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
	(fold_builtin_1): Update accordingly.  Handle constant arguments here.
	* match.pd: Add rules previously handled by fold_builtin_sqrt
	and fold_builtin_cbrt.

2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>

	* params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
	* doc/invoke.texi (--param max-ssa-name-query-depth): Document.
	* fold-const.h (tree_unary_nonnegative_warnv_p)
	(tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
	(tree_expr_nonnegative_warnv_p): Add depth parameters.
	* fold-const.c: Include gimple-fold.h and params.h.
	(tree_ssa_name_nonnegative_warnv_p): New function.
	(tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
	(tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
	(tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
	Add a depth parameter and increment it for recursive calls to
	tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
	to handle SSA names.
	* gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
	(gimple_stmt_nonnegative_warnv_p): Declare.
	* tree-vrp.c (remove_range_assertions): Remove assert that condition
	cannot be proven false.
	(gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
	(gimple_stmt_nonnegative_warnv_p): Move to...
	* gimple-fold.c: ...here.  Add depth parameters and pass them
	down to the tree routines.  Accept statements that aren't
	assignments or calls but just return false for them.
	(gimple_val_nonnegative_real_p): Delete.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
	tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
	Check HONOR_NANs first.

2015-10-08  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
	unnecessary MIN.

2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
	in the tail of outer-loop.

2015-10-08  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
	return UI_NONE.

2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
	"cfghooks.h", add prototypes for introduced new functions.
	(tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
	checks on ability of loop unswitching to tree_unswitch_single_loop;
	invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
	on innermost loop check.
	(tree_unswitch_single_loop): Add all required checks on ability of
	loop unswitching under zero recursive level guard.
	(tree_unswitch_outer_loop): New function.
	(find_loop_guard): Likewise.
	(empty_bb_without_guard_p): Likewise.
	(used_outside_loop_p): Likewise.
	(get_vop_from_header): Likewise.
	(hoist_guard): Likewise.
	(check_exit_phi): Likewise.

2015-10-08  Marek Polacek  <polacek@redhat.com>

	* tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
	ops element.

2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR c/65345
	* config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
	create_tmp_var_raw instead of create_tmp_var.

2015-10-07  Jan Hubicka  <hubicka@ucw.cz>

	* expr.c (store_expr_with_bounds): Handle aggregate moves from
	BLKmode.
	* gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
	to define gimple type system; compare aggregates only by size.

2015-10-07  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
	here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
	unnecessarily.

2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
	* graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
	(generate_isl_schedule): Same.
	* graphite-optimize-isl.c (scop_get_domains): Same.
	(apply_schedule_map_to_scop): Same.
	* graphite-poly.c (print_iteration_domains): Same.
	(remove_gbbs_in_scop): Same.
	(new_scop): Same.
	(free_scop): Same.
	(print_scop): Same.
	* graphite-poly.h (struct scop): Rename bbs to pbbs.
	(SCOP_BBS): Remove.
	* graphite-scop-detection.c (compare_bb_depths): Remove.
	(graphite_sort_dominated_info): Remove.
	(try_generate_gimple_bb): Move out of scop_detection.
	(all_non_dominated_preds_marked_p): Remove.
	(build_scop_bbs_1): Remove.
	(build_scop_bbs): Remove.
	(nb_pbbs_in_loops): Do not use SCOP_BBS.
	(find_scop_parameters): Same.
	(sese_dom_walker): Rename gather_bbs.
	(before_dom_children): Call try_generate_gimple_bb and collect gbb
	and pbb.
	(build_scops): Call gather_bbs.
	* graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
	(add_conditions_to_constraints): Same.
	(build_scop_iteration_domain): Same.
	(build_scop_drs): Same.
	(new_pbb_from_pbb): Same.
	* sese.c (new_sese_info): Create bbs.
	* sese.h (struct sese_info_t): Add bbs.

2015-10-07  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
	encoding in 64-bit mode.

2015-10-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66697
	* config/i386/i386.c (ix86_option_override_internal): Always use
	8-byte minimum stack boundary in 64-bit mode.
	(ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
	(ix86_emit_save_reg_using_mov): Support unaligned SSE store.
	Add a REG_CFA_EXPRESSION note if needed.
	(ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
	(ix86_handle_force_align_arg_pointer_attribute): New.
	(ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
	(ix86_attribute_table): Set ix86_force_align_arg_pointer_string
	with ix86_handle_force_align_arg_pointer_attribute.
	* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.

2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (parameter_index_in_region): Remove
	use of SESE_ADD_PARAMS.
	(find_scop_parameters): Same.
	* sese.c (new_sese_info): Same.
	* sese.h (struct sese_info_t): Remove add_params.
	(SESE_ADD_PARAMS): Remove.

2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
	an sese_info_p.
	(copy_def): Same.
	(copy_internal_parameters): Same.
	(translate_isl_ast_to_gimple): Use an sese_l.
	(build_iv_mapping): Same.
	* graphite-poly.c (new_sese): Rename new_sese_info.
	(free_sese): Rename free_sese_info.
	* graphite-poly.h (struct scop): Use an sese_info_p.
	(scop_set_region): Same.
	* graphite-scop-detection.c (struct sese_l): Moved...
	(get_entry_bb): Moved...
	(get_exit_bb): Moved...
	(parameter_index_in_region_1): Use an sese_info_p.
	(parameter_index_in_region): Same.
	(scan_tree_for_params): Same.
	(find_params_in_bb): Same.
	(sese_dom_walker): Use an sese_l.
	* graphite-sese-to-poly.c (remove_invariant_phi): Same.
	(reduction_phi_p): Same.
	(parameter_index_in_region_1): Use an sese_info_p.
	(propagate_expr_outside_region): Use an sese_l.
	* graphite.c: Replace uses of SCOP_REGION.
	* sese.c (sese_record_loop): Use an sese_info_p.
	(build_sese_loop_nests): Same.
	(sese_build_liveouts_use): Same.
	(sese_build_liveouts_bb): Same.
	(sese_build_liveouts_bb): Same.
	(sese_bad_liveouts_use): Same.
	(sese_reset_debug_liveouts_bb): Same.
	(sese_build_liveouts): Same.
	(new_sese): Renamed new_sese_info.
	(free_sese): Renamed free_sese_info.
	(set_rename): Use an sese_info_p.
	(graphite_copy_stmts_from_block): Same.
	(copy_bb_and_scalar_dependences): Same.
	(outermost_loop_in_sese_1): Use an sese_l.
	(outermost_loop_in_sese): Same.
	(if_region_set_false_region): Use an sese_info_p.
	(move_sese_in_condition): Same.
	(scalar_evolution_in_region): Use an sese_l.
	* sese.h (struct sese_l): ... here.
	(SESE_ENTRY): Remove.
	(SESE_ENTRY_BB): Remove.
	(SESE_EXIT): Remove.
	(SESE_EXIT_BB): Remove.
	(sese_contains_loop): Use an sese_info_p.
	(sese_nb_params): Same.
	(bb_in_sese_p): Use an sese_l.
	(stmt_in_sese_p): Same.
	(defined_in_sese_p): Same.
	(loop_in_sese_p): Same.
	(sese_loop_depth): Same.
	(struct ifsese_s): Use an sese_info_p.
	(gbb_loop_at_index): Use an sese_l.
	(nb_common_loops): Same.
	(scev_analyzable_p): Same.

2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_conditional_register_usage): Use
	CALL_USED_REGISTERS_MASK.
	* config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.

2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/67385
	* configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
	* configure: Regenerated.

2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67850
	* config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
	(ix86_set_current_function): This.
	(TARGET_EXPAND_TO_RTL_HOOK): Removed.

2015-10-07  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
	(vinfo_for_stmt): Adjust.
	(set_vinfo_for_stmt): Likewise.
	* tree-vectorizer.c (stmt_vec_info_vec): Likewise.
	* tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
	* tree-vect-loop.c (new_loop_vec_info): Remove special-casing
	of inner loop.
	(vect_analyze_loop_1): Remove.
	(vect_analyze_loop_form_1): Avoid building a loop_vec_info for
	inner loop when vectorizing an outer loop by splitting out from ...
	(vect_analyze_loop_form): ... here.

2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR c/65345
	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
	(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
	* real.c (CACHED_FRACTION): New helper macro.
	(dconst_third_ptr): Use it.
	(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
	* builtins.c (fold_builtin_sqrt): Use dconst_quarter and
	dconst_sixth.
	(fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.

2015-10-06  Jeff Law  <law@redhat.com>

	PR tree-optimization/67816
	* tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
	from remove_jump_threads_starting_at.  Accept an edge rather than
	a basic block.
	* tree-ssa-threadupdate.c (removed_edges): New hash table.
	(remove_jump_threads_including): Note edges that get removed from
	the CFG for later pruning of jump threading paths including them.
	(thread_through_all_blocks): Remove paths which include edges that
	have been removed.
	* tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
	on each outgoing edges when optimizing away a control statement.

2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c (emit_delay_sequence): Store list of delay slot insns
	in a vector instead of rtx_insn_list.
	(add_to_delay_list): Likewise.
	(delete_from_delay_slot): Likewise.
	(optimize_skip): Likewise.
	(redirect_with_delay_list_safe_p): Likewise.
	(check_annul_list_true_false): Likewise.
	(steal_delay_list_from_target): Likewise.
	(steal_delay_list_from_fallthrough): Likewise.
	(redundant_insn): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(fill_eager_delay_slots): Likewise.
	(relax_delay_slots): Likewise.

2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
	For -mgpopt=local, also exclude unintialized common symbols.
	* doc/invoke.texi (Nios II Options): Document the change.

2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/aarch64/iterators.md (vwcore): Add missing cases for
	 V4HF/V8HF modes.

2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (new_scop): Initialize drs.
	* graphite-poly.h (struct dr_info): New.
	(struct scop): Add drs.
	* graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
	(pdr_add_memory_accesses): Same.
	(build_poly_dr): Same.
	(build_alias_set): Same.
	(build_scop_drs): Same.
	(build_pbb_drs): Remove.
	* tree-data-ref.c (create_data_ref): Do not initialize alias_set.
	* tree-data-ref.h (data_reference): Remove alias_set.

2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (free_data_refs_aux): Remove.
	(free_gimple_poly_bb): Do not call free_data_refs_aux.
	* graphite-poly.h (struct base_alias_pair): Remove.
	* graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
	base_alias_pair and dr->aux.
	(build_alias_set): Same.
	* tree-data-ref.c (create_data_ref): Initialize alias_set.
	* tree-data-ref.h (data_reference): Add alias_set.

2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
	Do not set PDR_BASE_OBJECT_SET.
	* graphite-poly.h (poly_dr): Same.
	(PDR_BASE_OBJECT_SET): Remove.
	(new_poly_dr): Update decl.
	* graphite-sese-to-poly.c (build_poly_dr): Update call to
	new_poly_dr.
	(write_alias_graph_to_ascii_dimacs): Remove.
	(write_alias_graph_to_ascii_dot): Remove.
	(write_alias_graph_to_ascii_ecc): Remove.
	(dr_same_base_object_p): Remove.
	(build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
	code.
	(build_base_obj_set_for_drs): Remove.
	(dump_alias_graphs): Remove.
	(build_scop_drs): Remove dead code.

2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Peter Bergner  <bergner@vnet.ibm.com>

	PR target/67808
	* config/rs6000/rs6000.md (extenddftf2): In the expander, only
	allow registers, but provide insns for the combiner to create for
	loads from memory. Separate VSX code from non-VSX code. For
	non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
	externaldftf2_internal to externaldftf2_fprs. Reorder constraints
	so that registers come before memory operations. Drop support from
	converting DFmode to TFmode, if the DFmode value is in a GPR
	register.
	(extenddftf2_fprs): Likewise.
	(extenddftf2_internal): Likewise.
	(extenddftf2_vsx): Likewise.
	(extendsftf2): In the expander, only allow registers, but provide
	insns for the combiner to create for stores and loads.

2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
	from the decl parameter.

2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>

	PR 67861
	* gimple-fold.c (gimple_fold_builtin): Add break after
	BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.

2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>

	* graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
	to scop->isl_context.

2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
	(output_probe_stack_range): Rotate the loop and simplify.
	(thumb1_expand_prologue): Tweak sorry message.
	* config/arm/arm.md (probe_stack): Use bare string.

2015-10-06  Nick Clifton  <nickc@redhat.com>

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

2015-10-06  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.c (ATTR_NOINIT): New constant.
	(ATTR_PERSIST): New constant.
	(msp430_data_attr): New function - verifies an attribute that only
	applies to variables.
	(msp430_attributes): Add noinit and persistent attributes.
	(noinit_section): New variable.
	(presis_section): New variable.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(msp430_init_sections): New function - initialises the noinit and
	persist section variables.
	(msp430_select_section): Add support for noinit and persist
	attributes.
	(msp430_section_type_flags): Likewise.
	* doc/extend.texi:  Document the reent, critical, wakeup, noinit
	and persistent attributes.

2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-dependences.c (scop_get_transformed_schedule): Remove.
	(no_violations): Remove.
	(subtract_commutative_associative_deps): Remove.
	(compute_deps): Do not call subtract_commutative_associative_deps.
	(transform_is_safe): Remove.
	(graphite_legal_transform): Remove.
	* graphite-poly.h (graphite_legal_transform): Remove.

2015-10-05  Aditya Kumar  <hiraditya@msn.com>

	* graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
	which are in this region are passed so gcc_assert and remove redundant
	computation.
	* sese.c (sese_build_liveouts): Pass only those bbs which are not
	in region.
	(sese_bad_liveouts_use): Only BBs which are not in region are passed so
	gcc_assert on that and remove unnecessary computation.
	(sese_build_liveouts_use): Same.

2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-dependences.c (scop_get_reads): Renamed scop->context
	to scop->param_context.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	(scop_get_original_schedule): Same.
	(scop_get_transformed_schedule): Same.
	(subtract_commutative_associative_deps): Same.
	* graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
	(generate_isl_context): Same.
	(generate_isl_schedule): Same.
	(scop_to_isl_ast): Same.
	(graphite_regenerate_ast_isl): Same.
	* graphite-optimize-isl.c (scop_get_domains): Same.
	(optimize_isl): Renamed scop->context to scop->param_context.
	* graphite-poly.c (new_poly_bb): Change the type of argument to
	gimple_poly_bb_p.
	(new_scop): Renamed scop->context to scop->param_context.
	(free_scop): Same.
	(print_scop_context): Same.
	* graphite-poly.h (new_poly_dr): Change the type of argument from
	void* to data_reference_p.
	(struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
	(new_poly_bb): Change the type of argument from void* to
	gimple_poly_bb_p.
	(pbb_set_black_box): Same.
	(struct scop): Rename context to param_context, ctx to isl_context.
	* graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
	Move declarations closer to assignment.
	(find_params_in_bb): Same.
	(find_scop_parameters): Same.
	* graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
	Global to be used for statement IDs.
	(isl_id_for_pbb): Use ssa_name_version_typesize.
	(simple_copy_phi_p): Move declarations closer to assignment.
	(build_pbb_scattering_polyhedrons): Same.
	(build_scop_scattering): Same.
	(isl_id_for_ssa_name): Same.
	(extract_affine_name): Same.
	(extract_affine_int): Same.
	(extract_affine): Same.
	(set_scop_parameter_dim): Use renamed member.
	(build_loop_iteration_domains): Same.
	(add_param_constraints): Same.
	(build_scop_iteration_domain): Same.
	(pdr_add_data_dimensions): Same.
	(build_poly_dr): Same.
	(build_scop_drs): Move declarations closer to assignment.
	(analyze_drs_in_stmts): Same.
	(insert_out_of_ssa_copy): Same.
	(insert_out_of_ssa_copy_on_edge): Same.
	(propagate_expr_outside_region): Same.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_degenerate_phi): Same.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_dependence): Same.
	(handle_scalar_deps_crossing_scop_limits): Same.
	(rewrite_cross_bb_scalar_deps): Same.
	* graphite.c (graphite_transform_loops): Use renamed member.

2015-10-06  Uros Bizjak  <ubizjak@gmail.com>

	PR c/65345
	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
	create_tmp_var_raw instead of create_tmp_var.

2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR c/65345
	* config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>

	PR target/67849
	* config/i386/sse.md (define_split vec_select/V8FI): Restrict
	split for upper-bank registers when target does not support
	AVX512VL.
	(define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
	split when target does not support AVX512VL.

2015-10-06  David Edelsohn  <dje.gcc@gmail.com>

	PR c/65345
	* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
	Adjust to use create_tmp_var_raw instead of create_tmp_var.

2015-10-06  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
	multiplication.

2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>

	* config.gcc (i[34567]86-*-linux* | ...): Add znver1.
	(case ${target}): Add znver1.
	* config/i386/cpuid.h(bit_CLZERO):  Define.
	* config/i386/driver-i386.c: (host_detect_local_cpu): Let
	-march=native recognize znver1 processors.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add
	znver1, clzero def_and_undef.
	* config/i386/i386.c (struct processor_costs znver1_cost): New.
	(m_znver1): New definition.
	(m_AMD_MULTIPLE): Includes m_znver1.
	(processor_target_table): Add znver1 entry.
	(ix86_target_string) : Add clzero entry.
	(static const char *const cpu_names): Add znver1 entry.
	(ix86_option_override_internal): Add znver1 instruction sets.
	(PTA_CLZERO) :  New definition.
	(ix86_option_override_internal): Handle new clzerooption.
	(ix86_issue_rate): Add znver1.
	(ix86_adjust_cost): Add znver1.
	(ia32_multipass_dfa_lookahead): Add znver1.
	(has_dispatch): Add znver1.
	* config/i386/i386.h (TARGET_znver1): New definition.
	(TARGET_CLZERO): Define.
	(TARGET_CLZERO_P): Define.
	(struct ix86_size_cost): Add TARGET_ZNVER1.
	(enum processor_type): Add PROCESSOR_znver1.
	* config/i386/i386.md (define_attr "cpu"): Add znver1.
	(set_attr znver1_decode): New definitions for znver1.
	* config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
	(mclzero): New.
	* config/i386/mmx.md (set_attr znver1_decode): New definitions
	for znver1.
	* config/i386/sse.md (set_attr znver1_decode): Likewise.
	* config/i386/x86-tune.def:  Add znver1 tunings.
	* config/i386/znver1.md: Introduce znver1 cpu and include new md file.
	* doc/invoke.texi: Add details about znver1

2015-10-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67859
	* tree-ssa-pre.c (create_expression_by_pieces): Properly
	discard not inserted stmts.

2015-10-06  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Template Instantiation): Reorder options and
	de-emphasize -frepo.
	* doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
	example instead of -frepo.

2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR c/65345
	* config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
	use create_tmp_var_raw rather than create_tmp_var.

2015-10-06  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vec_info): New base class for...
	(_loop_vec_info): ... this and ...
	(_bb_vec_info): ... this.
	(vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
	vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
	vect_analyze_data_ref_accesses, vect_analyze_data_refs,
	vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
	vect_destroy_datarefs): Adjust interface to take a vec_info *
	rather than both a loop_vec_info and a bb_vec_info argument.
	* tree-vect-data-refs.c (vect_compute_data_refs_alignment,
	vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
	vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
	vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
	accordingly.
	* tree-vect-loop.c (new_loop_vec_info): Initialize base class.
	(destroy_loop_vec_info, vect_analyze_loop_2,
	vect_is_simple_reduction_1, get_initial_def_for_induction,
	vect_create_epilog_for_reduction, vectorizable_reduction,
	vectorizable_live_operation, vect_transform_loop): Adjust.
	* tree-vect-patterns.c (type_conversion_p,
	vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
	vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
	vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
	check_bool_pattern, vect_recog_bool_pattern,
	vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
	* tree-vect-slp.c (vect_get_and_check_slp_defs,
	vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
	vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
	vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
	(new_bb_vec_info): Initialize base classs.
	* tree-vect-stmts.c (record_stmt_cost, process_use,
	vect_get_vec_def_for_operand, vect_finish_stmt_generation,
	vectorizable_mask_load_store, vectorizable_call,
	vectorizable_simd_clone_call, vectorizable_conversion,
	vectorizable_assignment, vectorizable_shift,
	vectorizable_operation, vectorizable_store,
	vectorizable_load, vect_is_simple_cond, vectorizable_condition,
	new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
	* tree-vectorizer.c (vect_destroy_datarefs): Likewise.

2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR c/65345
	* config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
	create_tmp_var_raw rather than create_tmp_var.

2015-10-05  Marek Polacek  <polacek@redhat.com>

	* tree-ssa-loop-im.c
	(move_computations_dom_walker::before_dom_children): Don't set
	SSA_NAME_ANTI_RANGE_P.
	* tree-ssa-phiopt.c (value_replacement): Likewise.

2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.

2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-poly.c (new_gimple_poly_bb): ... here.
	(free_data_refs_aux): ... here.
	(free_gimple_poly_bb): ... here.
	(remove_gbbs_in_scop): ... here.
	(new_scop): Call new_sese.
	(free_scop): Call remove_gbbs_in_scop and free_sese.
	* graphite-poly.h (base_alias_pair): ... here.
	(new_gimple_poly_bb): Declare.
	(free_gimple_poly_bb): Declare.
	* graphite-scop-detection.c (parameter_index_in_region_1):
	(parameter_index_in_region): ... here.
	(scan_tree_for_params): ... here.
	(find_params_in_bb): ... here.
	(find_scop_parameters): ... here.
	(build_scops): Call find_scop_parameters.
	* graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
	(free_scops): Move...
	(single_pred_cond_non_loop_exit): Move...
	(sese_dom_walker::before_dom_children): Move...
	(sese_dom_walker::after_dom_children): Move...
	(build_poly_scop): Move...
	* graphite-sese-to-poly.h (base_alias_pair): Move...
	* graphite.c (free_scops): ... here.

2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
	(trivially_empty_bb_p): Move...
	(same_close_phi_node): Move...
	(new_gimple_poly_bb): Move...
	(compare_bb_depths): Move...
	(graphite_sort_dominated_info): Move...
	(remove_duplicate_close_phi): Move...
	(make_close_phi_nodes_unique): Move...
	(canonicalize_loop_closed_ssa): Move...
	(canonicalize_loop_closed_ssa_form): Move...
	(loop_ivs_can_be_represented): Move...
	(single_pred_cond_non_loop_exit): Move...
	(graphite_can_represent_init): Move...
	(graphite_can_represent_scev): Move...
	(stmt_has_simple_data_refs_p): Move...
	(stmt_has_side_effects):  Move...
	(graphite_can_represent_stmt): Move...
	(scop_detection): ... here.
	(sese_dom_walker): ... and here.
	(build_scops): Call all moved functions.
	* graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
	(all_non_dominated_preds_marked_p): Move...
	(build_scop_bbs_1): Move...
	(build_scop_bbs): Move...
	(set_scop_parameter_dim): Move...
	(nb_pbbs_in_loops): Move...
	(build_poly_scop): Do not call all the moved functions.

2015-10-05  Martin Jambor  <mjambor@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipcp_alignment_lattice): New type.
	(ipcp_param_lattices): Use the above to represent alignment.
	(ipcp_alignment_lattice::print): New function.
	(print_all_lattices): Use it to print alignment information.
	(ipcp_alignment_lattice::top_p): New function.
	(ipcp_alignment_lattice::bottom_p): Likewise.
	(ipcp_alignment_lattice::set_to_bottom): Likewise.
	(ipcp_alignment_lattice::meet_with_1): Likewise.
	(ipcp_alignment_lattice::meet_with): Two new overloaded functions.
	(set_all_contains_variable): Use set_to_bottom of alignment lattice.
	(initialize_node_lattices): Likewise.
	(propagate_alignment_accross_jump_function): Work with the new class
	for alignment lattices.
	(propagate_constants_accross_call): Pass only the alignment lattice to
	propagate_alignment_accross_jump_function.
	(ipcp_store_alignment_results): Work with the new class for alignment
	lattices.

2015-10-05  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67821
	* tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.

2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>

	PR other/65021
	* config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
	function to...
	(mkoffload_cleanup): ... this.  Adjust all users.
	(maybe_unlink): Look at save_temps and verbose flags instead of
	debug flag.
	(main): Parse "-save-temps" flag.
	(generate_target_descr_file, generate_target_offloadend_file)
	(generate_host_descr_file, prepare_target_image): Pass it on.
	* config/nvptx/mkoffload.c (tool_cleanup): Implement.
	(mkoffload_cleanup): New function.
	(maybe_unlink): Look at save_temps and verbose flags instead of
	debug flag.
	(main): Instead of calling utils_cleanup, register atexit handler
	for mkoffload_cleanup.
	(main): Parse "-save-temps" flag.
	(compile_native, main): Pass it on.
	* lto-wrapper.c (compile_offload_image): Likewise.

2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gimple.h (gimple_op_ptr): Require a non const gimple *.
	(gimple_assign_lhs_ptr): Likewise.
	(gimple_assign_rhs1_ptr): Likewise.
	(gimple_assign_rhs2_ptr): Likewise.
	(gimple_assign_rhs3_ptr): Likewise.
	(gimple_call_lhs_ptr): Likewise.
	(gimple_call_fn_ptr): Likewise.
	(gimple_call_chain_ptr): Likewise.
		(gimple_call_arg_ptr): Likewise.
		(gimple_cond_lhs_ptr): Likewise.
	(gimple_cond_rhs_ptr): Likewise.
	(gimple_switch_index_ptr): Likewise.
	(gimple_return_retval_ptr): Likewise.

2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gimple.h (gimple_asm_input_op_ptr): Remove.
	(gimple_asm_output_op_ptr): Likewise.

2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gimple.h (gimple_location_ptr): Remove.
	* tree-vrp.c (check_all_array_refs): Adjust.

2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-operands.c (build_uses): store tree * instead of
	tree.
	(finalize_ssa_uses): Adjust.
	(append_use): Likewise.
	(verify_ssa_operands): Likewise.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (build_real_truncate): Declare.
	* tree.c (build_real_truncate): New function.
	(strip_float_extensions): Use it.
	* builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
	(fold_builtin_hypot, fold_builtin_pow): Likewise.
	* match.pd: Likewise.

2015-10-05  James Greenhalgh  <james.greenhalgh@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
	* config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
	(aarch64_print_operand, aarch64_float_const_representable_p)
	(aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
	instead of REAL_VALUE_FROM_CONST_DOUBLE.
	* config/arc/arc.c (arc_print_operand): Likewise.
	* config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
	(neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
	(vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
	Likewise.
	* config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
	(consttable_16): Likewise.
	* config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
	* config/avr/avr.c (avr_print_operand): Likewise.
	* config/bfin/bfin.md: Likewise (in a define_split).
	* config/c6x/c6x.md: Likewise (in a define_split).
	* config/cr16/cr16.c (cr16_const_double_ok): Likewise.
	(cr16_print_operand): Likewise.
	* config/cris/cris.c (cris_print_operand): Likewise.
	* config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
	* config/fr30/fr30.c (fr30_print_operand): Likewise.
	(fr30_const_double_is_zero): Likewise.
	* config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
	* config/frv/frv.md: Likewise (in a define_split).
	* config/frv/predicates.md (int_2word_operand): Likewise.
	* config/h8300/h8300.c (h8300_print_operand): Likewise.
	* config/i386/i386.c (standard_80387_constant_p): Likewise.
	(ix86_print_operand, ix86_split_to_parts): Likewise.
	* config/i386/i386.md: Likewise (in a define_split).
	* config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
	* config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
	* config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
	* config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
	(print_operand): Likewise.
	* config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
	* config/mep/mep.md: Likewise (in define_split).
	* config/microblaze/microblaze.c (microblaze_const_double_ok)
	(print_operand): Likewise.
	* config/mips/mips.md (consttable_float): Likewise.
	* config/mmix/mmix.c (mmix_intval): Likewise.
	* config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
	* config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
	* config/pa/pa.c (pa_singlemove_string): Likewise.
	* config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
	(pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
	* config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
	(output_toc): Likewise.
	* config/rs6000/rs6000.md: Likewise (in define_splits).
	* config/rx/rx.c (rx_print_operand): Likewise.
	* config/s390/s390.c (s390_output_pool_entry): Likewise.
	* config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
	* config/sh/sh.md (consttable_sf, consttable_df): Likewise
	(and also in define_splits).
	* config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
	(fp_high_losum_p): Likewise.
	* config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
	(*movsf_high): Likewise.
	* config/spu/spu.c (const_double_to_hwint): Likewise.
	* config/v850/v850.c (const_double_split): Likewise.
	* config/vax/vax.c (vax_float_literal): Likewise.
	* config/visium/visium.c (visium_expand_copysign): Likewise.
	* config/visium/visium.md: Likewise (in define_split).
	* config/xtensa/predicates.md (const_float_1_operand): Likewise.
	* config/xtensa/xtensa.c (print_operand): Likewise.
	(xtensa_output_literal): Likewise.
	* cprop.c (implicit_set_cond_p): Likewise.
	* dwarf2out.c (insert_float): Likewise.
	* expmed.c (expand_mult, make_tree): Likewise.
	* expr.c (compress_float_constant): Likewise.
	* rtlanal.c (split_double): Likewise.
	* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
	(simplify_const_unary_operation, simplify_binary_operation_1)
	(simplify_const_binary_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	* varasm.c (output_constant_pool_2): Likewise.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
	instead of CONST_DOUBLE_FROM_REAL_VALUE.
	(CONST_DOUBLE_FROM_REAL_VALUE): Delete.
	* config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
	instead of CONST_DOUBLE_FROM_REAL_VALUE.
	* config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
	* config/i386/i386.c (standard_80387_constant_rtx): Likewise.
	(ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
	(ix86_emit_swsqrtsf): Likewise.
	* config/ia64/ia64.c (ia64_expand_builtin): Likewise.
	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
	* config/pa/pa.c (pa_expand_builtin): Likewise.
	* config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
	(rs6000_scale_v2df): Likewise.
	* config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
	* config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
	(fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
	* config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
	(vec_ctul): Likewise.
	* config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
	* config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
	* config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
	* cse.c (fold_rtx): Likewise.
	* emit-rtl.c (immed_double_const): Likewise (in comments).
	(init_emit_once): Likewise.
	* expr.c (compress_float_constant, expand_expr_real_1)
	(const_vector_from_tree): Likewise.
	* optabs.c (expand_float, expand_fix): Likewise.
	* reg-stack.c (reg_to_stack): Likewise.
	* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
	(simplify_const_unary_operation, simplify_binary_operation_1)
	(simplify_const_binary_operation, simplify_relational_operation)
	(simplify_immed_subreg): Likewise.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/tm.texi.in (REAL_ARITHMETIC): Delete.
	* doc/tm.texi: Regenerate.
	* real.h (REAL_ARITHMETIC): Delete.
	* config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
	(ix86_expand_round_sse4): Use real_arithmetic instead of
	REAL_ARITHMETIC.
	* config/i386/sse.md (round<mode>2): Likewise.
	* rtl.h (rtx_to_tree_code): Likewise (in comment).
	* explow.c (rtx_to_tree_code): Likewise (in comment).
	* match.pd: Likewise.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.
	* tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
	(expand_pow_as_sqrts): Likewise.
	* tree-pretty-print.c (dump_generic_node): Remove code that
	was conditional on REAL_ARITHMETIC being undefined.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/tm.texi.in (REAL_VALUES_LESS): Delete.
	* doc/tm.texi: Regenerate.
	* real.h (real_less): Declare.
	(REAL_VALUES_LESS): Delete.
	* real.c (real_less): New function.
	(real_compare): Use it.
	* config/m68k/m68k.c (floating_exact_log2): Use real_less instead
	of REAL_VALUES_LESS.
	* config/microblaze/microblaze.c (microblaze_const_double_ok):
	Likewise.
	* fold-const.c (fold_convert_const_int_from_real): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	* tree-call-cdce.c (check_pow): Likewise.
	(gen_conditions_for_pow_cst_base): Likewise.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (REAL_VALUES_IDENTICAL): Delete.
	* config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
	instead of REAL_VALUES_IDENTICAL.
	* fold-const.c (operand_equal_p): Likewise.
	* ipa-icf.c (sem_variable::equals): Likewise.
	* tree-complex.c (some_nonzerop): Likewise.
	(expand_complex_multiplication): Likewise.
	* tree.c (simple_cst_equal): Likewise.
	* varasm.c (compare_constant): Likewise.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* real.h (real_equal): Declare.
	(REAL_VALUES_EQUAL): Delete.
	* real.c (real_equal): New function.
	(real_compare): Use it.
	* doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
	* doc/tm.texi: Regenerate.
	* builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
	real_equal instead of REAL_VALUES_EQUAL.
	* config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
	* config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
	(fp_const_from_val): Likewise.
	* config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
	* config/m68k/m68k.c (standard_68881_constant_p): Likewise.
	(floating_exact_log2): Likewise.
	* config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
	* config/vax/vax.c (vax_float_literal): Likewise.
	* config/xtensa/predicates.md (const_float_1_operand): Likewise.
	* cprop.c (implicit_set_cond_p): Likewise.
	* expmed.c (expand_mult): Likewise.
	* fold-const.c (const_binop): Likewise.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.
	(simplify_const_binary_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	* tree-call-cdce.c (check_pow): Likewise.
	(gen_conditions_for_pow_cst_base): Likewise.
	* tree-inline.c (estimate_num_insns): Likewise.
	* tree-ssa-dom.c (record_equality): Likewise.
	* tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
	(gimple_expand_builtin_pow): Likewise.
	(pass_optimize_widening_mul::execute): Likewise.
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
	* tree.c (real_zerop, real_onep, real_minus_onep): Likewise.

2015-10-05  Richard Biener  <rguenther@suse.de>

	PR ipa/67783
	* ipa-inline-analysis.c (estimate_function_body_sizes): Only
	consider loop header PHI defs as IVs.

2015-10-05  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
	call handling ...
	(create_expression_by_pieces): ... here and build GIMPLE
	calls directly.  Use gimple_build API and avoid force_gimple_operand.
	(insert_into_preds_of_block): Simplify.
	(do_regular_insertion): Add comment.

2015-10-04  Jason Merrill  <jason@redhat.com>

	* builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.

2015-10-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
	check for general register.
	(ix86_emit_save_regs): Ditto.
	(ix86_emit_save_regs_using_mov): Ditto.
	(ix86_emit_restore_regs_using_pop): Ditto.
	(ix86_emit_restore_regs_using_mov): Ditto.

2015-10-03  Marek Polacek  <polacek@redhat.com>

	* Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
	(insn-dfatab.o): Likewise.

2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>

	* config.gcc (xtensa*-*-uclinux*): New configuration.
	* config/xtensa/uclinux.h: New file.
	* config/xtensa/uclinux.opt: New file.

2015-10-03  Jonathan Wakely  <jwakely@redhat.com>

	* doc/cpp.texi (Standard Predefined Macros): Document value of
	__cplusplus for C++14.

2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>

	* gcc.c (process_command): Use spec_machine rather than
	spec_host_machine to build tooldir_prefix2.

2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
	(Token, Stmt): Remove structs.
	(decls, vars, fns): Remove variables.
	(alloc_comment, append_stmt, is_keyword): Remove macros.
	(tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
	(write_stmt, write_stmts, parse_insn, parse_list_nosemi)
	(parse_init, parse_file): Remove functions.
	(read_file): Accept a pointer to a length and store into it.
	(process): Don't try to parse the input file, just write it out as
	a string, but looking for maps.  Also write out the length.
	(main): Don't use "-S" to compile PTX code.

2015-10-02  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (optimize_stmt): Note when loop structures need
	fixups.

2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>

	PR target/67822
	* config/nvptx/mkoffload.c (main): Scan the argument vector for
	-fopenmp, and skip generating an offloading image if specified.

2015-10-02  Uros Bizjak  <ubizjak@gmail.com>

	* system.h (ROUND_UP): New macro definition.
	(ROUND_DOWN): Ditto.
	* ggc-page.c (ROUND_UP): Remove local macro definition.
	(PAGE_ALIGN): Implement using ROUND_UP macro.

	* config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
	* config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
	to align values.
	(ix86_compute_frame_layout): Ditto.
	(ix86_expand_prologue): Ditto.
	(ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
	to round down values.
	(expand_set_or_movmem_via_rep): Ditto.

2015-10-02  Marek Polacek  <polacek@redhat.com>

	* genemit.c (gen_exp): Remove -Wduplicated-cond hack.

2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-scop-detection.c (loop_ivs_can_be_represented): New.
	(loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
	* graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
	(free_gimple_bb): Renamed free_gimple_poly_bb.
	(try_generate_gimple_bb): Hoist loop invariant code.
	(analyze_drs_in_stmts): Same.
	(build_scop_drs): Call renamed functions.
	(new_pbb_from_pbb): Same.
	(scop_ivs_can_be_represented): Delete as functionality now moved to
	graphite-scop-detection.c
	(build_poly_scop): Remove call to scop_ivs_can_be_represented.

2015-10-02  Aditya Kumar  <hiraditya@msn.com>

	* graphite-scop-detection.c (stmt_has_side_effects): New function
	  outlined from stmt_simple_for_scop_p.
	(graphite_can_represent_stmt): Same.
	(stmt_simple_for_scop_p): Moved code out of this function for better
	readability.

2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c (processor_features): Add F_AVX512VBMI,
	F_AVX512IFMA.
	(isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.

2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.

2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/67756
	* lra-constraints.c (match_reload): Add a new parameter.  Use it
	for creating a pseudo with the same value.
	(curr_insn_transform): Pass a new argument to match_reload.

2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
	(expand_vec_perm_even_odd_1): Handle V64QImode.
	(ix86_expand_vec_perm_const_1): Try expansion with
	expand_vec_perm_even_odd_trunc as well.
	* config/i386/sse.md (VI124_AVX512F): Rename to ...
	(define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
	to V54QI.
	(define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
	(define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
	to V32HI and V16SI.
	(define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
	(define_expand "vec_pack_trunc_<mode>"): Update iterator name.
	(define_expand "vec_unpacks_lo_<mode>"): Ditto.
	(define_expand "vec_unpacks_hi_<mode>"): Ditto.
	(define_expand "vec_unpacku_lo_<mode>"): Ditto.
	(define_expand "vec_unpacku_hi_<mode>"): Ditto.

2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>

	* doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
	-mavx521vbmi, -mavx512ifma. Add missing opindex-es.

2015-10-02  Jason Merrill  <jason@redhat.com>

	PR c/59218
	* trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
	(diagnose_tm_1_op): Also diagnose volatile accesses in
	transaction_safe function.

2015-10-02  Jonathan Wakely  <jwakely@redhat.com>

	* system.h (malloc.h): Don't include obsolete header.

2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
	(TLS_SECTION_ASM_FLAG): Delete.

2015-10-02  Marek Polacek  <polacek@redhat.com>

	PR c/64249
	* doc/invoke.texi: Document -Wduplicated-cond.
	* Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
	(insn-dfatab.o): Likewise.
	* genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
	warning.

2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
	sequences.

2015-10-02  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.

2015-10-02  Renlin Li  <renlin.li@arm.com>

	PR target/66776
	* config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.

2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/67786
	PR rtl-optimization/67787
	* ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
	it modifies a reg used in the condition calculation.

2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
	alternatives for reads from memory and moves from general-purpose
	registers.
	(*aarch64_combinez_be<mode>): Likewise.

2015-10-02  Kai Tietz  <ktietz70@googlemail.com>

	PR target/51726
	* config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
	selectany within this function without need to keep attribute.
	(i386_pe_encode_section_info): Remove selectany-code.

2015-10-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (has_VN_INFO): New function.
	(free_scc_vn): Use it.
	(visit_use): Remove dead code and refactor to use gassign
	and use less indentation.

2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/67788
	PR target/67789
	* config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
	(rs6000_cannot_copy_insn_p): New function.
	* config/rs6000/rs6000.md (cannot_copy): New attribute.
	(load_toc_v4_PIC_1_normal): Set cannot_copy.
	(load_toc_v4_PIC_1_476): Ditto.

2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-scop-detection.c (struct sese_l): New conversion constructor
	so that this type can be pushed into a vec.
	(class scop_builder): use sese_l to collect scops.
	(get_scops): New getter function.
	(remove_intersecting_scops): Use sese_l instead of scops_p.
	(intersects): Same.
	(add_scop): Same.
	(subsumes): Same.
	(remove_subscops): Same.
	(build_scops): Add scops to vec<scops_p> once all the scops have been
	detected.

2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
	Renamed type from gimple_bb_p to gimple_poly_bb_p.
	(translate_isl_ast_node_user): Same.
	* graphite-poly.c (new_poly_bb): Same.
	* graphite-poly.h (gbb_from_bb): Same.
	* sese.h: Same.
	* graphite-sese-to-poly.c (new_gimple_bb):
	gimple_bb_p -> gimple_poly_bb_p
	(build_scop_scattering): Same.
	(find_params_in_bb): Same.
	(add_conditions_to_domain): Same.
	(sese_dom_walker::before_dom_children): Same.
	(analyze_drs_in_stmts): Same.
	(new_pbb_from_pbb): Same.
	(free_data_refs_aux): New pointer to type base_alias_pair.
	* graphite-sese-to-poly.h: Same.
	* sese.c (if_region_set_false_region): Fixed Indentation.
	(move_sese_in_condition): Same.

2015-10-01  Sebastian Pop  <s.pop@samsung.com>
	    Aditya Kumar  <aditya.k7@samsung.com>

	PR tree-optimization/66980
	* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
	when data reference analysis has failed.

2015-10-01  Sebastian Pop  <s.pop@samsung.com>
	    Aditya Kumar  <aditya.k7@samsung.com>

	PR tree-optimization/67754
	* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
	scev analysis on the same loop nest as analyze_drs_in_stmts.
	* graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
	renamed...
	(try_generate_gimple_bb): Call outermost_loop_in_sese.
	(analyze_drs_in_stmts): Same.
	* sese.c (outermost_loop_in_sese): ...here.

2015-10-01  Sebastian Pop  <s.pop@samsung.com>
	    Aditya Kumar  <aditya.k7@samsung.com>

	PR tree-optimization/67754
	* graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
	recursion on the inner loops.

2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
	function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
	tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
	tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
	tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove

2015-10-01  Marek Polacek  <polacek@redhat.com>

	PR c/65345
	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
	create_tmp_var_raw rather than create_tmp_var.

2015-10-01  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67769
	* tree-ssa-phiopt.c (conditional_replacement): Call
	reset_flow_sensitive_info_in_bb.
	(minmax_replacement): Likewise.
	(abs_replacement): Likewise.

2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>

	* builtins.c: Don't include gomp-constants.h.
	(fold_builtin_1): Don't fold acc_on_device here.
	* gimple-fold.c: Include gomp-constants.h.
	(gimple_fold_builtin_acc_on_device): New.
	(gimple_fold_builtin): Call it.

2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
	(X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.

2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/aarch-common-protos.h
	(aarch_accumulator_forwarding): New.
	(aarch_forward_to_shift_is_not_shifted_reg): Likewise.
	* config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
	(aarch_forward_to_shift_is_not_shifted_reg): Likewise.
	* config/arm/cortex-a53.md: Rewrite.

2015-10-01  Richard Biener  <rguenther@suse.de>

	* gimple-match.h (mprts_hook): Declare.
	* gimple-match.head.c (mprts_hook): Define.
	(maybe_push_res_to_seq): Use new hook.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
	* tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
	(vn_ssa_aux::has_constants): Remove.
	* tree-ssa-sccvn.c: Include gimple-match.h.
	(VN_INFO_GET): Assert we don't re-use SSA names.
	(vn_get_expr_for): Remove.
	(expr_has_constants): Likewise.
	(stmt_has_constants): Likewise.
	(simplify_binary_expression): Likewise.
	(simplify_unary_expression): Likewise.
	(vn_lookup_simplify_result): New hook.
	(visit_copy): Adjust.
	(visit_reference_op_call): Likewise.
	(visit_phi): Likewise.
	(visit_use): Likewise.
	(process_scc): Likewise.
	(init_scc_vn): Likewise.
	(visit_reference_op_load): Likewise.  Use match-and-simplify and
	a gimple seq for inserted expressions.
	(try_to_simplify): Remove GENERIC stmt combining code.
	(sccvn_dom_walker::before_dom_children): Use match-and-simplify.
	* tree-ssa-pre.c (eliminate_insert): Adjust.
	(eliminate_dom_walker::before_dom_children): Likewise.

2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* doc/invoke.texi (Optimization Options): Add
	-freorder-blocks-algorithm=.
	(Optimize Options) <-O>: Add -freorder-blocks.
	<-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
	<-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
	<-freorder-blocks>: Also enabled at levels -O and -Os.
	<-freorder-blocks-algorithm=>: Document new option.

2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
	with flag_reorder_blocks_algorithm.
	* common.opt (freorder-blocks-algorithm=): New flag.
	(reorder_blocks_algorithm): New enum.
	* flag-types.h (reorder_blocks_algorithm): New enum.
	* opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
	and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).

2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* bb-reorder.c: Add intro comment.
	(reorder_basic_blocks_software_trace_cache): Print a header to
	the dump file.
	(edge_order): New function.
	(reorder_basic_blocks_simple): New function.
	(reorder_basic_blocks): Choose between the STC and the simple
	algorithms (always choose the former).

2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
	function, factored out from ...
	(reorder_basic_blocks): ... here.

2015-10-01  Tom de Vries  <tom@codesourcery.com>

	* tree-cfg.c (dump_function_to_file): Dump function attributes using
	__attribute__(()) string.  Move dumping of function attributes to before
	function name.

2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>

	PR target/66870
	* config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
	* configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
	based on gold linker version.
	* gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
	HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
	* configure, config.in: Regenerate.

2015-10-01  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
	r2_setup_needed when TARGET_SINGLE_PIC_BASE.
	(rs6000_output_mi_thunk): Likewise.

2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Change offload data format.

2015-09-30  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
	with constant conditions.
	* tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
	(remove_ctrl_stmt_and_useless_edges): No longer static.
	* tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
	(remove_ctrl_stmt_and_useless_edges): Likewise.

2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
	(TARGET_GOACC_VALIDATE_DIMS): Override.
	* target.def (TARGET_GOACC): New target hook prefix.
	(validate_dims): New hook.
	* targhooks.h (default_goacc_validate_dims): New.
	* omp-low.c (oacc_validate_dims): New.
	(execute_oacc_device_lower): New.
	(default_goacc_validate_dims): New.
	(pass_data_oacc_device_lower): New.
	(pass_oacc_device_lower): New pass.
	(make_pass_oacc_device_lower): New.
	* tree-pass.h (make_pass_oacc_device_lower): Declare.
	* passes.def (pass_oacc_device_lower): Add it.
	* doc/tm.texi: Rebuilt.
	* doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
	* doc/invoke.texi (oaccdevlow): Document tree dump flag.

2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/67037
	* lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.

2015-09-30  Bernd Schmidt  <bernds@redhat.com>

	* gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
	* passes.c: Include tree-ssanames.h.
	(execute_function_todo): Flush the pending free SSA_NAMEs after
	eliminating unreachable basic blocks.
	* tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
	(init_ssanames): Initialize FREE_SSANAMES_QUEUE.
	(fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
	(flush_ssanames_freelist): New function.
	(release_ssaname_fn): Put released names on the queue.
	(pass_release_ssa_names::execute): Call flush_ssanames_freelist.
	* tree-ssanames.h (flush_ssanames_freelist): Declare.

2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>

	* config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
	(generate_target_descr_file, generate_target_offloadend_file)
	(generate_host_descr_file, prepare_target_image): Pass it on.
	* config/nvptx/mkoffload.c (main): Parse "-v" flag.
	(compile_native, main): Pass it on.
	* lto-wrapper.c (compile_offload_image): Likewise.

2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>

	* config/i386/intelmic-mkoffload.c (generate_host_descr_file)
	(prepare_target_image, main): Refactor argv building to use
	obstacks.

2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
	* config/spu/spu.c (spu_expand_atomic_op): New function.
	* config/spu/spu.md (AINT): New mode iterator.
	(ATOMIC): New code iterator.
	(atomic_name, atomic_pred): New code predicates.
	("atomic_load<mode>", "atomic_store<mode>"): New expanders.
	("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
	(""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
	"atomic_<atomic_name>_fetch<mode>"): Likewise.

2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
	debug insns.
	(scalar_chain::convert_reg): Likewise.

2015-09-30  Richard Biener  <rguenther@suse.de>

	* builtins.c: Add comment that no new simplifications should
	be added here.

2015-09-30  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67690
	* tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
	reset_flow_sensitive_info_in_bb.
	* tree-ssa-tail-merge.c (replace_block_by): Likewise.
	* tree-ssanames.c: Include "gimple-iterator.h".
	(reset_flow_sensitive_info_in_bb): New function.
	* tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.

2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>

	* config/i386/intelmic-mkoffload.c (target_ilp32): Remove
	variable, replacing it with...
	(offload_abi): ... this new variable.  Adjust all users.
	* config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.

2015-09-30  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Remove extraneous ;;.
	* configure: Regenerate.

2015-09-29  James Bowman  <james.bowman@ftdichip.com>

	* config/ft32/predicates.md (ft32_imm_operand): New predicate.
	* config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
	predicate, disallow register for operand 2.

2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-dependences.c (scop_get_dependences): Moved in down
	in order to be visible to its caller.
	* graphite-poly.h: Removed compute_deps, and extend_schedule.

2015-09-29  Sebastian Pop  <s.pop@samsung.com>
	    Aditya Kumar  <aditya.k7@samsung.com>

	PR tree-optimization/67754
	* graphite-optimize-isl.c (optimize_isl): Call
	isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.

2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>

	* builtins.c (expand_builtin_acc_on_device): Delete.
	(expand_builtin): Don't call it.
	(fold_builtin_1): Fold acc_on_device.

2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_function_arg): Fix typo in comments.
	(ix86_nsaved_sseregs): Likewise.

2015-09-29  Jeff Law  <law@redhat.com>

	* config/microblaze/microblaze.c (microblaze_version_to_int): Remove
	computation of unused value.

	* config/pdp11/pdp11.c (pdp11_branch_cost): New function.
	* config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
	inline macro expansion.

	* config/i386/t-interix (winnt-stubs.o): Fix compilation rule.

	* config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
	(gen_shl_sext): Likewise.
	* config/sh/sh.md (divsi3): Likewise.
	(imm->ext_dest_operand splitter): Likewise.

2015-09-29  Sebastian Pop  <s.pop@samsung.com>
	    Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
	(nb_data_writes_in_bb): Remove.
	(split_pbb): Remove.
	(split_reduction_stmt): Remove.
	(is_reduction_operation_p): Remove.
	(phi_contains_arg): Remove.
	(follow_ssa_with_commutative_ops): Remove.
	(detect_commutative_reduction_arg): Remove.
	(detect_commutative_reduction_assign): Remove.
	(follow_inital_value_to_phi): Remove.
	(edge_initial_value_for_loop_phi): Remove.
	(initial_value_for_loop_phi): Remove.
	(used_outside_reduction): Remove.
	(detect_commutative_reduction): Remove.
	(translate_scalar_reduction_to_array_for_stmt): Remove.
	(remove_phi): Remove.
	(dr_indices_valid_in_loop): Remove.
	(close_phi_written_to_memory): Remove.
	(translate_scalar_reduction_to_array): Remove.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
	(rewrite_commutative_reductions_out_of_ssa_loop): Remove.
	(rewrite_commutative_reductions_out_of_ssa): Remove.
	(build_poly_scop): Remove call to
	rewrite_commutative_reductions_out_of_ssa.

2015-09-29  Evandro Menezes  <e.menezes@samsung.com>

	* config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
	Add new insn types for vector load and store pairs.
	* config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
	types "neon_ldp{,_q}".
	* config/arm/cortex-a57.md (neon_load_c): Add insn types
	"neon_ldp{,_q}".
	(neon_store_complex): Add insn types "neon_stp{,_q}".
	* config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
	"neon_{ldp,stp}_q".

2015-09-29  Jeff Law  <law@redhat.com>

	* config/rx/constraints.md (Int08): Fix undefined left shift
	behaviour.
	(Sint08, Sint16, Sint24): Likewise.
	* config/rx/rx.c (rx_get_stack_layout): Likewise.

	* config/rl78/rl78-expand.md (movqi): Fix undefined left shift
	behaviour.

	* config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
	left shift behaviour.
	* config/msp430/constraints.md ('L' constraint): Similarly.
	('Ys' constraint): Similarly.

2015-09-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67170
	* tree-ssa-alias.h (get_continuation_for_phi): Adjust
	the translate function pointer parameter to get the
	bool whether to disambiguate only by reference.
	(walk_non_aliased_vuses): Likewise.
	* tree-ssa-alias.c (maybe_skip_until): Adjust.
	(get_continuation_for_phi_1): Likewise.
	(get_continuation_for_phi): Likewise.
	(walk_non_aliased_vuses): Likewise.
	* tree-ssa-sccvn.c (const_parms): New bitmap.
	(vn_reference_lookup_3): Adjust for interface change.
	Disambiguate parameters pointing to readonly memory.
	(free_scc_vn): Free const_parms.
	(run_scc_vn): Initialize const_parms from a fn spec attribute.

2015-09-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67741
	* tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
	builtin calls with correct signature.

2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/65105
	* config/i386/i386.c: Include dbgcnt.h.
	(has_non_address_hard_reg): New.
	(convertible_comparison_p): New.
	(scalar_to_vector_candidate_p): New.
	(remove_non_convertible_regs): New.
	(scalar_chain): New.
	(scalar_chain::scalar_chain): New.
	(scalar_chain::~scalar_chain): New.
	(scalar_chain::add_to_queue): New.
	(scalar_chain::mark_dual_mode_def): New.
	(scalar_chain::analyze_register_chain): New.
	(scalar_chain::add_insn): New.
	(scalar_chain::build): New.
	(scalar_chain::compute_convert_gain): New.
	(scalar_chain::replace_with_subreg): New.
	(scalar_chain::replace_with_subreg_in_insn): New.
	(scalar_chain::emit_conversion_insns): New.
	(scalar_chain::make_vector_copies): New.
	(scalar_chain::convert_reg): New.
	(scalar_chain::convert_op): New.
	(scalar_chain::convert_insn): New.
	(scalar_chain::convert): New.
	(convert_scalars_to_vector): New.
	(pass_data_stv): New.
	(pass_stv): New.
	(make_pass_stv): New.
	(ix86_option_override): Created and register stv pass.
	(flag_opts): Add -mstv.
	(ix86_option_override_internal): Likewise.
	* config/i386/i386.md (SWIM1248x): New.
	(*movdi_internal): Add xmm to mem alternative for TARGET_STV.
	(and<mode>3): Use SWIM1248x iterator instead of SWIM.
	(*anddi3_doubleword): New.
	(*zext<mode>_doubleword): New.
	(*zextsi_doubleword): New.
	(<code><mode>3): Use SWIM1248x iterator instead of SWIM.
	(*<code>di3_doubleword): New.
	* config/i386/i386.opt (mstv): New.
	* dbgcnt.def (stv_conversion): New.

2015-09-29  Tom de Vries  <tom@codesourcery.com>

	* tree-cfg.c (dump_function_to_file): Dump function attributes.

2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67716
	* config/sh/sh.c (sh_override_options_after_change): New.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
	(sh_option_override): Move align_loops, align_jumps and
	align_functions handling into sh_override_options_after_change.

2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
	(nvptx_record_offload_symbol): Record function execution geometry.
	* config/nvptx/mkoffload.c (process): Include launch geometry in
	function data.
	* omp-low.c (oacc_launch_pack): New.
	(replace_oacc_fn_attrib): New.
	(set_oacc_fn_attrib): New.
	(get_oacc_fn_attrib): New.
	(expand_omp_target): Create keyed varargs for GOACC_parallel call
	generation.
	* omp-low.h (get_oacc_fn_attrib): Declare.
	* builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
	(DEF_FUNCTION_TYPE_VAR_11): Delete.
	* tree.h (OMP_CLAUSE_EXPR): New.
	* omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.

2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* sese.c (invariant_in_sese_p_rec): Remove unused variable.

2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
	* graphite-scop-detection.c (struct sese_l): New type.
	(get_entry_bb): API for getting entry bb of SESE.
	(get_exit_bb): API for getting exit bb of SESE.
	(class debug_printer): New type.  Simple printer in debug mode.
	(trivially_empty_bb_p): New.  Return true when BB is empty or
	contains only debug instructions.
	(graphite_can_represent_expr): Call scalar_evoution_in_region
	instead of analyze_scalar_evolution.  Pass in scop instead of only
	the scop entry.
	(stmt_has_simple_data_refs_p): Pass in scop instead of only the
	scop entry.
	(stmt_simple_for_scop_p): Same.
	(harmful_stmt_in_bb): Same.
	(graphite_can_represent_loop): Deleted.
	(struct scopdet_info): Deleted.
	(scopdet_basic_block_info): Deleted.
	(build_scops_1): Deleted.
	(bb_in_sd_region): Deleted.
	(find_single_entry_edge): Deleted.
	(find_single_exit_edge): Deleted.
	(create_single_entry_edge): Deleted.
	(sd_region_without_exit): Deleted.
	(create_single_exit_edge): Deleted.
	(unmark_exit_edges): Deleted.
	(mark_exit_edges): Deleted.
	(create_sese_edges): Deleted.
	(build_graphite_scops): Deleted.
	(canonicalize_loop_closed_ssa): Recompute all dominators at the end.
	(build_scops): Use the new scop_builder to build scops.
	(dot_all_scops_1): Use the new pretty printer.  Print loop father
	as well.
	(loop_body_is_valid_scop): New.  Return true if loop body is a
	valid scop.
	(class scop_builder): New.  Builds SCoPs for polyhedral
	optimizations.
	(scop_builder): New constructor.
	(static sese_l invalid_sese): sese_l with invalid edges.
	(get_sese): Get an sese (from a loop) if possible, invalid_sese
	otherwise.
	(get_nearest_dom_with_single_entry): Get nearest dominator of a
	basic_block with single entry.  Return NULL if we get to the
	beginning of a function.
	(get_nearest_pdom_with_single_exit): Get nearest post-dominator of
	a basic_block with single exit.  Return NULL if we get to the
	beginning of a function.
	(print_sese): Pretty-print SESE.
	(merge_sese): Merge two SESEs if possible and return the new SESE.
	(build_scop_depth): Start building the SCoP within a loop nest.
	(build_scop_breadth): Start building the SCoP at a single loop
	depth.  Merge adjacent SESEs if valid.
	(can_represent_loop_1): Returns true if Graphite can represent
	loop inside SCoP.  Helper for can_represent_loop.
	(can_represent_loop): Returns true if Graphite can represent LOOP
	and all its nested loops in SCoP.
	(loop_is_valid_scop): Returns true if LOOP and all its nests
	constitute a valid SCoP.
	(region_has_one_loop): Returns true of a region has only one loop.
	(add_scop): Add SCoP to the list of valid scops.  Removes an
	already existing scop if it intersects with or subsumed by this one.
	(harmful_stmt_in_region): Returns true if SCoP has any statment
	which cannot be represented by Graphite.
	(subsumes): Returns true of SCoP S1 subsumes SCoP S2.
	(remove_subscops): Remove any SCoP from the list of already found
	SCoPs, if subsumed by S1.
	(intersects): Return true if region bounded by SCoPs S1 and S2
	intersect.
	(remove_intersecting_scops): Remove any SCoP which intersects with S1.
	* graphite.c (print_graphite_scop_statistics):
	(print_graphite_statistics): Print SCoP info while debugging.
	(graphite_initialize): Early exit in case number of loops in a
	function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
	basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
	(graphite_finalize):
	* params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
	* sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
	(recompute_all_dominators): Recalculate POST_DOMINATORS.
	* tree-cfg.c (print_loops): Print the function name while printing
	loops.

2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/67700
	* graphite-sese-to-poly.c (parameter_index_in_region): Call
	invariant_in_sese_p_rec.
	(extract_affine): Same.
	(rewrite_cross_bb_scalar_deps): Call update_ssa.
	* sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
	* sese.h (invariant_in_sese_p_rec): Declare.

2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.texi (Asm Labels): Break out text for data vs functions.

2015-09-28  Jiong Wang  <jiong.wang@arm.com>

	Revert:
	2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
		    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
	* config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_load_symref_appropriately): Invoke the new added pattern if
	possible.
	* config/aarch64/constraints.md (Uc0): New constraint.

2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>

	* config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.

2015-09-28  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
	SECTION_EXCLUDE in XO mapping class.

2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
	and handle ne and eq codes.
	* config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
	(sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
	CONST_INT_P.  Use reverse_condition.
	(sh_split_treg_set_expr): Likewise.

2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md (type): Add rotate_imm.
	* config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
	ROR immediate case.
	(*rorsi3_insn_uxtw): Likewise.
	* config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
	* config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
	* config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.

2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/67481
	* ifcvt.c (contains_ccmode_rtx_p): New function.
	(insn_valid_noce_process_p): Use it.

2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/67456
	PR rtl-optimization/67464
	PR rtl-optimization/67465
	* ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
	move in the mode of x.  Handle combination of complex and simple
	block pairs as well as the case when one is empty.

2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* doc/gimple.texi: Update references to gimple_statement_base.
	* gdbhooks.py: Likewise.
	* gimple.h: Likewise.

2015-09-28  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/driver-sparc.c: map LEON to leon3

2015-09-28  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
	  and make it inverse to change default
	* config/sparc/sync.md: Only use supervisor ASI for CASA when in
	  supervisor mode
	* doc/invoke.texi: Document change of default

2015-09-28  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
	true on %f0 for a target without FPU.
	* config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
	without FPU.
	(untyped_return): Do not load %f0 for a target without FPU.

2015-09-28  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.md (prefetch):
	Change the predicate of operand 0 to register_operand.

2015-09-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (register_sse4nonimm_operand): New
	predicate.
	* config/i386/sse.md (PEXTR_MODE12): New mode iterator.
	(*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
	Use register_sse4nonimm_operand as operand 0 predicate.
	(*vec_extractv8hi_sse2): Remove insn pattern.
	(*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
	*vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.

2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67391
	* config/sh/sh-protos.h (sh_lra_p): Declare.
	* config/sh/sh.c (sh_lra_p): Make non-static.
	* config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
	arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
	Expand into addsi3_scr if operands[2] if needed.
	(*addsi3_compact): Rename to *addsi3_compact_lra.  Use
	arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
	(addsi3_scr, *addsi3): New insn_and_split patterns.

2015-09-27  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/64164
	PR tree-optimization/67312
	PR middle-end/67340
	PR middle-end/67490
	PR bootstrap/67597
	* cfgexpand.c (parm_in_stack_slot_p): Remove.
	(ssa_default_def_partition): Remove.
	(get_rtl_for_parm_ssa_default_def): Remove.
	(set_rtl): Check that RTL assignments match expectations.
	Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
	default def location for params and results.  Record SSA names
	or types in REG and MEM attrs, respectively.
	(set_parm_rtl): New.
	(expand_one_ssa_partition): Drop logic that assigned MEMs with
	unassigned addresses.
	(adjust_one_expanded_partition_var): Don't accept NULL RTL on
	deferred stack alloc vars.
	(expand_used_vars): Skip partitions holding parm default defs.
	Move adjust_one_expanded_partition_var loop...
	(pass_expand::execute): ... here.  Drop redundant assert.
	Adjust comments before the final loop over all ssa names.
	Require assigned rtl of parms and results to match exactly.
	Reset its attributes to match them, not any other variables in
	the same partition.
	(expand_debug_expr): Use entry value for PARM's default defs
	only iff they have zero nondebug uses.
	* cfgexpand.h (parm_in_stack_slot_p): Remove.
	(get_rtl_for_parm_ssa_default_def): Remove.
	(set_parm_rtl): Declare.
	* doc/invoke.texi: Improve wording.
	* explow.c (promote_decl_mode): Fix promote_function_mode for
	result decls not by reference.
	(promote_ssa_mode): Disregard BLKmode from promote_decl, and
	bypass TYPE_MODE to get the actual vector mode.
	* function.c: Include tree-dfa.h.  Revert 2015-08-14's and
	2015-08-19's changes as follows.  Drop include of
	basic-block.h and df.h.
	(rtl_for_parm): Remove.
	(maybe_reset_rtl_for_parm): Remove.
	(parm_in_unassigned_mem_p): Remove.
	(use_register_for_decl): Add logic for RESULT_DECLs matching
	assign_parms' behavior.
	(split_complex_args): Revert.
	(assign_parms_augmented_arg_list): Revert.  Add comment
	referencing the logic above.
	(assign_parm_adjust_stack_rtl): Revert.
	(assign_parm_setup_block): Revert.  Use set_parm_rtl instead
	of SET_DECL_RTL.  Set up a REG if the parm demands so.
	(assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
	calls into a single set_parm_rtl.  Set up a temporary RTL
	temporarily for expand_assignment.
	(assign_parm_setup_stack): Revert.  Use set_parm_rtl.
	(assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
	(assign_bounds): Revert.
	(assign_parms): Revert.  Use set_parm_rtl.
	(allocate_struct_function): Relayout result and parms of
	non-abstruct functions.
	(expand_function_start): Revert.  Use set_parm_rtl.  If the
	result is not a hard reg, create a pseudo from the promoted
	mode of the default def.  Promote static chain mode.
	* tree-outof-ssa.c (remove_ssa_form): Drop unused
	partition_has_default_def.  Set up
	partitions_for_parm_default_defs.
	(finish_out_of_ssa): Remove partition_has_default_def.
	Release partitions_for_parm_default_defs.
	* tree-outof-ssa.h (struct ssaexpand): Remove
	partition_has_default_def.  Add
	partitions_for_parm_default_defs.
	* tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
	stor-layout.h.
	(build_ssa_conflict_graph): Fix conflict-detection of default
	defs of even unused default defs of params and results.
	(for_all_parms): New.
	(create_default_def): New.
	(register_default_def): New.
	(coalesce_with_default): New.
	(create_outofssa_var_map): Create default defs for all parms
	and results, and register their partitions.  Add GIMPLE_RETURN
	operands as coalesce candidates with results.  Add default
	defs of each parm or result as coalesce candidates with its
	other defs.  Mark each result def, and each default def of
	parms, as used_in_copy.
	(gimple_can_coalesce_p): Call it.  Call use_register_for_decl
	with the ssa names, even anonymous ones.  Drop
	parm_in_stack_slot_p calls.  Require same signedness and
	alignment.
	(coalesce_ssa_name): Add coalesce candidates for all defs of
	each parm and result, even unused ones.
	(parm_default_def_partition_arg): New type.
	(set_parm_default_def_partition): New.
	(get_parm_default_def_partitions): New.
	* tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
	* tree-ssa-live.c (partition_view_init): Regard unused defs of
	parms and results as used.
	(verify_live_on_entry): Don't error out just because they're
	not live.

2015-09-26  David Edelsohn  <dje.gcc@gmail.com>

	* dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
	(HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
	(output_fde): Don't output length for debug_frame on AIX.
	(output_call_frame_info): Don't output length for debug_frame on AIX.
	(have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
	HAVE_XCOFF_DWARF_EXTRAS.
	(add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
	HAVE_XCOFF_DWARF_EXTRAS.
	(output_compilation_unit_header): Don't output length on AIX.
	(output_pubnames): Don't output length on AIX.
	(output_aranges): Delete argument. Compute length locally. Don't
	output length on AIX.
	(output_line_info): Don't output length on AIX.
	(dwarf2out_finish): Don't compute aranges_length.
	* dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
	(dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
	* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
	symbol decoration for AIX.
	(rs6000_xcoff_debug_unwind_info): New.
	(rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
	for SECTION_DEBUG.
	(rs6000_xcoff_declare_function_name): Emit different
	.function pseudo-op when DWARF2_DEBUG. Don't call
	xcoffout_declare_function for DWARF2_DEBUG.
	* config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
	Redefine.
	* config/rs6000/aix71.h: New.
	* configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
	locations support.
	* configure: Regenerate.
	* config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
	DWARF support.

2015-09-26  Jeff Law  <law@redhat.com>

	* config/arc/arc.c (arc_output_addsi): Fix left shift undefined
	behaviour.
	* config/arc/constraints.md (Cca, C2a): Fix left shift undefined
	behaviour.

	* config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
	behaviour

	* config/mips/mips.c (mips_compute_frame_info): Fix left shift
	undefined behaviour.

	* config/cris/cris.md (asrandb): Fix left shift undefined
	behaviour.
	(asrandw): Likewise.

2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* lra-constarints.c (match_reload): Check presence of the input pseudo
	in the output operand.

2015-09-25  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize): Minor wording tweak.

2015-09-25  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize): Update URLs.

2015-09-25  Teresa Johnson  <tejohnson@google.com>

	* opts.c (finish_options): Unset -freorder-blocks-and-partition
	if not using profile.

2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR pretty-print/67567
	* pretty-print.c (pp_string): Add gcc_checking_assert.
	* pretty-print.h (output_buffer_append_r): Likewise.

2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67675
	* config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
	addr2 individually.  Don't emit logical or insn if one is known to
	be aligned approriately.
	(sh_expand_cmpnstr): Likewise.

2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
	__builtin_aarch64_fp[sc]r arguments into a register.

2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (x86_archs): Replace lakemount with lakemont.
	(with_cpu): Likewise.
	(with_arch): Likewise.
	* config/i386/i386-c.c (ix86_target_macros_internal): Replace
	PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
	__tune_lakemount__ with __tune_lakemont__.
	* config/i386/i386.c (lakemount_cost): Renamed to ...
	(lakemont_cost): This.
	(m_LAKEMOUNT): Renamed to ...
	(m_LAKEMONT): This.
	(initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
	(processor_target_table): Replace "lakemount" with "lakemont".
	(processor_alias_table): Likewise.
	(ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
	PROCESSOR_LAKEMONT.
	(ix86_adjust_cost): Likewise.
	(ia32_multipass_dfa_lookahead): Likewise.
	* config/i386/i386.h (processor_type): Likewise.
	* config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
	* doc/invoke.texi: Replace lakemount with lakemont.  Replace
	Lakemount with Lakemont.

2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (x86_archs): Replace iamcu with lakemount.
	(with_cpu): Likewise.
	(with_arch): Likewise.
	* doc/invoke.texi: Likewise.
	* config/i386/i386-c.c (ix86_target_macros_internal): Replace
	PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
	__tune_iamcu__ with __tune_lakemount__.
	* config/i386/i386.c (iamcu_cost): Renamed to ...
	(lakemount_cost): This.
	(m_IAMCU): Renamed to ...
	(m_LAKEMOUNT): This.
	(initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
	(processor_target_table): Replace "iamcu" with "lakemount".
	(processor_alias_table): Likewise.
	(ix86_issue_rate): Replace PROCESSOR_IAMCU with
	PROCESSOR_LAKEMOUNT.
	(ix86_adjust_cost): Likewise.
	(ia32_multipass_dfa_lookahead): Likewise.
	* config/i386/i386.h (processor_type): Likewise.
	* config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.

2015-09-24  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
	* config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
	Declare.
	* config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
	(pa_expand_compare_and_swap_loop): New.
	(pa_maybe_emit_compare_and_swap_exchange_loop): New.
	* config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
	atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
	(atomic_loaddf_1, atomic_storedf_1): New insn patterns.
	(atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
	Revise.

2015-09-24  Michael Collison  <michael.collison@linaro.org>

	PR other/57195
	* read-md.c (read_name): Allow mode iterators inside angle
	brackets in rtl expressions.

2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* ira-color.c (update_allocno_cost): Add parameter.
	(update_costs_from_allocno): Decrease conflict cost.  Pass the new
	parameter.

2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR driver/67640
	* opts-common.c (prune_options): Discard all -fdiagnostics-color
	but the last one, which is moved to the front to be processed
	first.
	* opts.c (enable_warning_as_error): Reject options that do not
	control warnings.

2015-09-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.

2015-09-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
	(aarch64_cannot_force_const_mem): Likewise.
	(aarch64_classify_address): Likewise.
	(aarch64_classify_symbolic_expression): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_symbol): Likewise.
	(aarch64_mov_operand_p): Likewise.
	* config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
	(aarch64_mov_operand): Likewise.

2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (debug_stack_info): Invert the test
	for info->spe_gp_size.

2015-09-24  Richard Biener  <rguenther@suse.de>

	PR lto/67699
	* lto-cgraph.c (compute_ltrans_boundary): Do not stream
	abstract origins.

2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>

	* tree-object-size.c (plus_stmt_object_size)
	(cond_expr_object_size): Change the formal parameters from gimple
	to gimple *.
	* tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
	* tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.

2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
	Check for ld -type pie on Solaris 11.x and 12.
	* configure: Regenerate.
	* config.in: Regenerate.

	* gcc.c (LD_PIE_SPEC): Allow redefinition.

	* config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
	(STARTFILE_SPEC): Use it.
	(ENDFILE_CRTEND_SPEC): Define.
	(ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
	(SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
	ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
	[HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
	(!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
	* config/i386/sol2.h (ENDFILE_SPEC): Remove.
	(ENDFILE_ARCH_SPEC): Define.
	* config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.

2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_solaris_crts): New test.
	* configure. Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (STARTFILE_SPEC): Simplify, provide
	HAVE_SOLARIS_CRTS variant.

2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* tree-inline.h (count_insns_seq): Delete prototype.
	(estimate_num_insns_seq): Define prototype.
	* tree-inline.c (count_insns_seq): Delete.
	(estimate_num_insns_seq): Remove static qualifier.
	* tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
	with estimate_num_insns_seq.

2015-09-24  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
	members.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
	and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
	offset.
	(ao_ref_init_from_vn_reference): Record clique and base in the
	built base.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise

2015-09-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/48885
	* tree-ssa-structalias.c (visit_loadstore): Handle default defs
	as not including any restrict tags from other pointers.

2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>

	* gcc.c (handle_foffload_option): Don't lose the trailing NUL
	character when appending to offload_targets.

	* configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
	offload targets by commas, not colons.
	* config.in: Regenerate.
	* configure: Likewise.
	* gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
	instead of setting up the default offload targets here...
	(process_command): ..., do it here.
	libgomp/
	* plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
	targets are separated by commas.
	* config.h.in: Regenerate.

2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* omp-low.h (omp_reduction_init_op): Declare.
	* omp-low.c (omp_reduction_init_op): New, broken out of ...
	(omp_reduction_init): ... here.  Call it.
	* tree-parloops.c (initialize_reductions): Use
	omp_reduction_init_op.

2015-09-23   Richard Biener  <rguenther@suse.de>

	PR middle-end/67662
	* fold-const.c (fold_binary_loc): Do not reassociate two vars with
	undefined overflow unless they will cancel out.

2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
	insn emit.

2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/49655
	* opts.h (write_langs): Declare.
	* opts-global.c (write_langs): Make it extern.

2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67391
	* config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
	overlapping regs when matching the pattern.

2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
	(aarch64_float_truncate_hi_v4sf_le): New.
	(aarch64_float_truncate_hi_v4sf_be): Likewise.

2015-09-23  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (intra_create_variable_infos): Build
	representatives for all restrict qualified pointer destinations.

2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_code_attr mshift): New.
	(define_mode_iterator SWI1248_AVX512BW): Rename ...
	(SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
	only.
	(define_insn "*k<logic><mode>"): Use new iterator name.
	(define_insn "*<mshift><mode>3"): New.

2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>

	PR middle-end/67649
	* memory-block.h (memory_block_pool::allocate): Use valgrind API to
	mark the block as accessible.

2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* function.c (thread_prologue_and_epilogue_insns): Delete
	orig_entry_edge argument to try_shrink_wrapping.
	* shrink-wrap.c (can_get_prologue): New function.
	(can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
	(try_shrink_wrapping): Delete orig_entry_edge argument.  Use
	can_get_prologue where needed.  Remove code that finds a single
	edge for the prologue.  Remove code that tests if any reg clobbered
	by the prologue is live on the prologue edge.  Remove code that finds
	the new prologue edge after duplicating blocks.  Make a new prologue
	block and edge.
	* shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.

2015-09-22  Jeff Law  <law@redhat.com>

	* config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
	behavior.

2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
	-Wtemplates, -Wnamespaces): Document.

2015-09-22  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67671
	* tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
	pointer references as restrict.

2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (nios2_legitimize_address): When handling
	'reg + reloc' cases, allow first operand to be non-REG, and use
	force_reg() to enforce address pattern.

2015-09-22  Alexander Fomin  <alexander.fomin@intel.com>

	PR target/67480
	* config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
	(define_mode_iterator VI12_AVX_AVX512F): New.
	(define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
	all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
	(define_insn "*<code><mode>3"): ... Into new pattern using
	VI12_AVX_AVX512F iterators without masking.

2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config.gcc: Support "skylake-avx512".
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	PROCESSOR_SKYLAKE_AVX512.
	* config/i386/i386.c (m_SKYLAKE_AVX512): Define.
	(processor_target_table): Add "skylake-avx512".
	(PTA_SKYLAKE_AVX512): Define.
	(ix86_option_override_internal): Add "skylake_avx512".
	(fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
	F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
	* config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
	(processor_type): Add PROCESSOR_SKYLAKE_AVX512.
	* doc/invoke.texi (skylake-avx512): New.

2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_insn "kunpckhi"): Fix
	operand in pattern.
	(define_insn "kunpcksi"): Ditto.
	(define_insn "kunpckdi"): Ditto.

2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_split not/xor SWI1248x): Use
	iterator instead of fixed modes.

2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
	Adjust declaration.
	* config/aarch64/aarch64.c (aarch64_emit_bic): New.
	(aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
	out_result.  Update to support update-fetch operations.
	* config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
	Adjust for change to aarch64_gen_atomic_ldop.
	(aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
	(aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
	(atomic_<atomic_optab>_fetch<mode>): Change to an expander.
	(aarch64_atomic_<atomic_optab>_fetch<mode>): New.
	(aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.

2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_atomic_ldop_supported_p): Declare.
	* config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
	(enum aarch64_atomic_load_op_code): New.
	(aarch64_emit_atomic_load_op): New.
	(aarch64_gen_atomic_ldop): Update to support load-operate
	patterns.
	* config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
	to an expander.
	(aarch64_atomic_<atomic_optab><mode>): New.
	(aarch64_atomic_<atomic_optab><mode>_lse): New.
	(atomic_fetch_<atomic_optab><mode>): Change to an expander.
	(aarch64_atomic_fetch_<atomic_optab><mode>): New.
	(aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.

2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
	(UNSPECV_ATOMIC_LDOP_OR): New.
	(UNSPECV_ATOMIC_LDOP_BIC): New.
	(UNSPECV_ATOMIC_LDOP_XOR): New.
	(UNSPECV_ATOMIC_LDOP_PLUS): New.
	(ATOMIC_LDOP): New.
	(atomic_ldop): New.
	(aarch64_atomic_load<atomic_ldop><mode>): New.

2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64.md
	(<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
	pattern.

2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
	Declare.
	* config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
	(aarch64_gen_atomic_ldop): New.
	(aarch64_split_atomic_op): Fix whitespace and add a comment.
	* config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
	(aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
	(atomic_exchange<mode>): Replace with an expander.
	(aarch64_atomic_exchange<mode>): New.
	(aarch64_atomic_exchange<mode>_lse): New.
	(aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
	(aarch64_atomic_swp<mode>): New.

2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-inline.c (expand_call_inline): Use inform for extra note.
	Do not give a note with UNKNOWN_LOCATION.
	Replace input_location with gimple_location (stmt).
	Use true/false instead of TRUE/FALSE.

2015-09-22  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67666
	* tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
	with single field non-conservative.

2015-09-21  David S. Miller  <davem@davemloft.net>

	PR/67622
	Revert:
	2015-09-11  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md: Make "U" constraint a real register
	constraint.
	* config/sparc/sparc.c (TARGET_LRA_P): Define.
	(D_MODES, DF_MODES): Add missing cast.
	(TF_MODES, TF_MODES_NO_S): Include T_MODE.
	(OF_MODES, OF_MODES_NO_S): Include O_MODE.
	(sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
	cost to 8.
	* config/sparc/sparc.h (PROMOTE_MODE): Define.
	* config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
	provide these insn when flag_pic.

	2015-09-17  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
	Declare.
	* config/sparc/sparc.c (sparc_secondary_memory_needed): New
	function.
	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
	(HARD_REGNO_CALLER_SAVE_MODE): Define.
	* config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
	(setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
	(embmedany_losum, embmedany_brsum, embmedany_textuhi)
	(embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
	provide when flag_pic.

2015-09-21  Jeff Law  <law@redhat.com>

	* config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
	behavior.

2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.

2015-09-21  Richard Biener  <rguenther@suse.de>

	* passes.c (rest_of_decl_compilation): Do not call
	dwarf2out_early_global_decl for aliases.

2015-09-21  Richard Biener  <rguenther@suse.de>

	PR debug/67664
	* dwarf2out.c (add_location_or_const_value_attribute): Remove
	attribute parameter.  Early exit if either DW_AT_const_value
	or DW_AT_location are present already.
	(gen_variable_die): Adjust caller.
	(dwarf2out_late_global_decl): Likewise.

2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67657
	* config/sh/sh.c (sh_remove_overlapping_post_inc,
	sh_peephole_emit_move_insn): Add new functions.
	* config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
	sh_peephole_emit_move_insn): Declere them.
	* config/sh/sh.md: Use them in various peephole2 patterns.

2015-09-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/67651
	* rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
	address with -fno-delete-null-pointer-checks.

2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>

	* config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
	(reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
	(reduc_uplus_v16qi): Remove.

	* config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
	(reduc_<VEC_reduc_name>_v2df): Remove.
	(reduc_<VEC_reduc_name>_v4sf): Remove.
	(reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.

	* config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
	gen_ function by removing * prefix.
	(vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.

2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR middle-end/60832
	* tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
	Print i_bound without converting it to a tree.

2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>

	* config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
	operands[4] operands[5] swap with std::swap, removed tmp variable.
	(arm_evpc_neon_vzip): Replaced in0/in1 and
	out0/out1 swaps with std::swap, removed x variable.
	(arm_evpc_neon_vtrn): Replaced in0/int1 and
	out0/out1 swaos with std::swap, removed x variable.
	(arm_expand_vec_perm_const_1): Replaced
	d->op0/d->op1 swap with std::swap, removed x variable.
	(arm_evpc_neon_vuzp): Replaced in0/in1 and
	out0/out1 swaps with std::swap, removed x variable.

2015-09-21  Jonathan Yong  <10walls@gmail.com>

	* config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
	sysroot/usr/lib/32api for additional win32 libraries,
	fixes failing Cygwin bootstrapping.

2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>

	* doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.

2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67126
	* config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
	(*mov_t_msb_neg): Rewrite negc pattern.

2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
	immediate generation code.

2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
	redundant immediate generation code.

2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
	(AARCH64_NUM_BITMASKS): Remove.
	(aarch64_bitmasks_cmp): Remove.
	(aarch64_build_bitmask_table): Remove.

2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
	slow immediate matching loops with a faster algorithm.

2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
	faster algorithm.

2015-09-20  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (record_temporary_equivalences): No longer static.
	* tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
	* tree-ssa-threadedge.c: Include tree-ssa-dom.h.
	(thread_through_normal_block): Use record_temporary_equivalences.

2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* coretypes.h (gimple): Change typedef to be a forward declaration.
	* gimple.h (gimple_statement_base): rename to gimple.
	* (all functions and types using gimple): Adjust.
	* *.[ch]: Likewise.

2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
	    David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(EH_FRAME_THROUGH_COLLECT2): Define.
	(EH_TABLES_CAN_BE_READ_ONLY): Define.
	(ASM_OUTPUT_DWARF_PCREL): Define.
	(ASM_OUTPUT_DWARF_DATAREL): Define.

2015-09-19  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
	of TARGET_ELF32.

2015-09-18  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
	it here ...
	(dom_opt_dom_walker): New private member holding the avail_exprs_stack
	object.  Update constructor.
	(pass_dominator::execute):  Corresponding chagnes to declaration
	and initialization of avail_exprs_stack.  Update constructor call
	for dom_opt_dom_walker object.
	(lookup_avail_expr, record_cond): Accept additional argument.  Pass
	it down to children as needed.
	(record_equivalences_from_incoming_edge): Likewise.
	(eliminate_redundant_computations): Likewise.
	(record_equivalences_from_stmt): Likewise.
	(simplify_stmt_for_jump_threading): Likewise.
	(record_temporary_equivalences): Likewise.
	(optimize_stmt): Likewise.
	(dom_opt_dom_walker::thread_across_edge): Update access to
	avail_exprs_stack object and pass it to children as needed.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.
	* tree-ssa-threadedge.c (pfn_simplify): New typedef.
	(record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
	Add avail_expr_stack argument.  Pass it to children as needed.
	(dummy_simplify): Likewise.
	(simplify_control_stmt_condition): Likewise.
	(thread_around_empty_blocks): Likewise.
	(thread_through_normal_block): Likewise.
	(thread_across_edge): Likewise.
	* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
	* tree-vrp.c (simplify_stmt_for_jump_threading): Update.

	PR tree-optimization/47679
	* tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
	it here ...
	(dom_opt_dom_walker): New private member holding the const_and_copies
	object.  Update constructor.
	(pass_dominator::execute): Corresponding changes to declaration
	and initialization of const_and_copies.  Update constructor call
	for the dom_opt_dom_walker object.
	(record_temporary_equivalences): Accept const_and_copies argument
	pass it down to children as needed.
	(record_equality): Likewise.
	(record_equivalences_from_incoming_edge): Likewise.
	(cprop_into_successor_phis, optimize_stmt): Likewise.
	(eliminate_redundant_computations): Likewise.
	(dom_opt_dom_walker::thread_across_edge): Update access to
	const_and_copies object and pass it to children as needed.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.

	PR tree-optimization/47679
	* tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
	it into the avail_exprs_stack class.
	(pass_dominator::execute): Corresponding changes to declaration
	and initialization of avail_exprs.  Pass avail_exprs to
	dump_dominator_optimization_stats.
	(record_cond): Extract avail_exprs from avail_exprs_stack.
	(lookup_avail_expr): Similarly.
	(htab_staticstics): Remove unnecessary prototype.  Move to earlier
	position in file.
	(dump_dominator_optimization_stats): Make static and prototype.
	Add argument for the hash table to dump.
	(debug_dominator_optimization_stats): Remove.
	* tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
	prototype.
	(debug_dominator_optimization_stats): Similarly.
	* tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
	"void" in prototype for pop_to_marker method.  Add accessor method
	for the underlying avail_exprs table.

	* tree-ssa-threadedge.c: Remove trailing whitespace.

2014-09-18  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
	unsigned.
	(pa_ldil_cint_p): Likewise.
	* config/pa/pa.c (pa_cint_ok_for_move): likewise.
	(pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
	Update callers.
	* config/pa/pa.md: Likewise.

2015-09-18  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
	* diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
	(diagnostic_show_locus): Likewise.
	(diagnostic_print_caret_line): Likewise.
	* diagnostic-show-locus.c: New file.

2015-09-18  David Edelsohn  <dje.gcc@gmail.com>

	* dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
	"back" parameter. Declare label in #if block.

2015-09-18  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/67619
	* except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
	the address to a register.

2015-09-18  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
	* tree-ssa-dom.c: Remove unnecessary header includes.
	(remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
	(get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
	(propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
	(eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
	(pass_phi_only_cprop::execute): Likewise.
	(make_pass_phi_only_cprop): Likewise.
	* tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
	uses of file scoped statics by passing the required objects
	as parameters wherever needed.

2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
	    David Edelsohn  <dje.gcc@gmail.com>

	* defaults.h (EH_FRAME_SECTION_NAME): Depend on
	EH_FRAME_THROUGH_COLLECT2.
	* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
	DW_EH_PE_datarel.
	* dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
	even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
	collect2 labels to EH_FRAME_THROUGH_COLLECT2.
	* except.c (switch_to_exception_section): Use a read-only section
	even if EH_FRAME_SECTION_NAME is undefined.
	* system.h (EH_FRAME_IN_DATA_SECTION): Poison.
	* collect2.c (write_c_file_stat): Provide dbase on AIX.
	(scan_prog_file): Don't export __dso_handle nor
	__gcc_unwind_dbase.
	* config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(EH_TABLES_CAN_BE_READ_ONLY): Define.
	(ASM_OUTPUT_DWARF_PCREL): Define.
	(ASM_OUTPUT_DWARF_DATAREL): Define.
	(EH_FRAME_THROUGH_COLLECT2): Define.
	(EH_FRAME_IN_DATA_SECTION): Delete.
	* config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
	* config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
	Declare.
	(rs6000_asm_output_dwarf_datarel): Declare.
	* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
	(rs6000_aix_asm_output_dwarf_datarel): New.
	(rs6000_xcoff_asm_init_sections): Don't	set exception_section.
	* config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
	(EH_FRAME_THROUGH_COLLECT2): Define.
	* config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
	(EH_FRAME_THROUGH_COLLECT2): Define.
	(EH_TABLES_CAN_BE_READ_ONLY): Define.
	* doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
	(EH_FRAME_THROUGH_COLLECT2): New.
	(ASM_OUTPUT_DWARF_DATAREL): New.
	* doc/tm.texi: Regenerate.

2015-09-18  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
	we're in early phase.
	(schedule_generic_params_dies_gen): Likewise.
	(gen_remaining_tmpl_value_param_die_attribute): Do only as much
	work as possible, retaining unhandled cases.
	(gen_scheduled_generic_parms_dies): Set early-dwarf flag and
	clear out generic_type_instances at the end.
	(dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
	(dwarf2out_early_finish): ... here.  Do most of
	gen_remaining_tmpl_value_param_die_attribute here.

2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/67283
	* tree-sra.c (type_consists_of_records_p): Rename to...
	(scalarizable_type_p): ...this, add case for ARRAY_TYPE.
	(completely_scalarize_record): Rename to...
	(completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
	(scalarize_elem): New.
	(analyze_all_variable_accesses): Follow renamings.

2015-09-18  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (add_location_or_const_value_attribute): Do nothing
	in early-dwarf.

2015-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66142
	* fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
	treat MEM[&x] and x the same.
	* tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
	when we simplified sth.
	(vn_reference_maybe_forwprop_address): Likewise.
	(valueize_refs_1): When we simplified through
	vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
	set valueized_anything to true.
	(vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
	one ref kills the other instead of just a offset-based test.
	* tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
	for the operand_equal_p test to compare bases and also compare
	sizes.

2015-09-17  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm.md (*call_value_symbol): Fix operand for interworking.

2015-09-17  Richard Henderson  <rth@redhat.com>

	PR libstdc++/65913
	* builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
	pointers that encode the alignment of the object.

2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/66790
	* df-problems.c (LIVE): Amend documentation.

2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>

	* Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
	and optabs-tree.o.
	(GTFILES): Replace optabs.c with optabs-libfunc.c.
	* genopinit.c (main): Add an include guard to insn-opinit.h.
	Protect the rtx_code parts with NUM_RTX_CODE.
	* optabs.h: Split parts out to...
	* optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
	* optabs.c: Split parts out to...
	* optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
	* cilk-common.c: Include optabs-query.h rather than optabs.h.
	* fold-const.c: Likewise.
	* target-globals.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
	Remove unncessary include files.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vrp.c: Likewise.
	* toplev.c: Include optabs-query.h and optabs-libfuncs.h
	rather than optabs.h.
	* expr.c: Include optabs-tree.h.
	* function.c: Likewise.

2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/65958
	* config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
	* config/arm/arm-protos.h (output_probe_stack_range): Declare.
	* config/arm/arm.c: Include common/common-target.h.
	(use_return_insn): Return 0 if the static chain register was saved
	above a non-APCS frame.
	(arm_compute_static_chain_stack_bytes): Adjust for stack checking.
	(struct scratch_reg): New.
	(get_scratch_register_on_entry): New function.
	(release_scratch_register_on_entry): Likewise.
	(arm_emit_probe_stack_range): Likewise.
	(output_probe_stack_range): Likewise.
	(arm_expand_prologue): Factor out code dealing with the IP register
	for nested function and adjust it for stack checking.
	Invoke arm_emit_probe_stack_range if static builtin stack checking
	is enabled.
	(thumb1_expand_prologue): Sorry out if static builtin stack checking
	is enabled.
	(arm_expand_epilogue): Add the saved static chain register, if any, to
	the amount of pre-pushed registers to pop.
	(arm_frame_pointer_required): Return true if static stack checking is
	enabled and we want to catch the exception with the EABI unwinder.
	* config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
	(UNSPEC_PROBE_STACK_RANGE): Likewise.
	* config/arm/arm.md (probe_stack): New insn.
	(probe_stack_range): Likewise.

2015-09-17  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::parse_expr): Improve error message
	for mis-placed flags.

2015-09-17  Richard Biener  <rguenther@suse.de>

	* passes.c (rest_of_decl_compilation): Always call early_global_decl
	debug hook when we created a varpool node.
	* dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
	dwarf2out_early_global_decl, when not just add location or
	value attributes to existing DIEs.

2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (copysigndf3): New.
	(copysignsf3): Likewise.

2015-09-17  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
	* config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
	(HARD_REGNO_CALLER_SAVE_MODE): Define.
	* config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
	(setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
	(embmedany_losum, embmedany_brsum, embmedany_textuhi)
	(embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
	provide when flag_pic.

2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (label_ref_list_d_pool): Adjust to
	object_allocator change.

2015-09-17  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/66388
	* tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
	(dump_iv): Dump no_overflow information.
	(alloc_iv): Initialize new field for struct iv.
	(mark_bivs): Count number of no_overflow bivs.
	(find_deriving_biv_for_expr, record_biv_for_address_use): New
	functions.
	(idx_find_step): Call new functions above.
	(add_candidate_1, add_candidate): New paramter.
	(add_iv_candidate_for_biv): Add sizetype cand for BIV.
	(get_computation_aff): Simplify convertion of cand for BIV.
	(get_computation_cost_at): Step cand's base if necessary.

2015-09-17  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
	parameter.
	(tree_simplify_using_condition): Ditto.
	(simplify_using_initial_conditions): Ditto.
	(loop_exits_before_overflow): Pass new argument to function
	simplify_using_initial_conditions.  Remove case for type conversions
	simplification.
	* tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
	parameter.
	* tree-scalar-evolution.c (simple_iv): Simplify type conversions
	in iv base using loop initial conditions.

2015-09-16  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
	(free_all_edge_infos): Use it.
	(allocate_edge_info): Free preexisting edge info data.
	(pass_dominator::execute): Set up initial edge info structures.
	(dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
	thread_across_edge.
	* tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
	If non-null, then push/pop markers appropriately.
	* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
	* tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
	thread-across_edge.

2015-09-16  James Bowman  <james.bowman@ftdichip.com>

	* config/ft32/ft32.c: Fix the memory address space predicate.

2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67573
	* config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
	(call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.

2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* toplev.h (check_global_declaration): Remove declaration.
	* toplev.c (check_global_declaration): Move to ...
	* cgraphunit.c: ... here. Make it static and pass a symtab_node *.
	(analyze_functions): Update call.

2015-09-16  David S. Miller  <davem@davemloft.net>

	* lra-constraints.c (simplify_operand_subreg): Do not assume that
	lowpart of a SUBREG has offset zero.

2015-09-16  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (enum expr_kind): Moved from here to
	tree-ssa-scopedtables.h.
	(struct hashable_expr, class expr_hash_elt): Likewise.
	(struct expr_elt_hasher, class avail_exprs_stack): Likewise.
	Move associated methods into tree-ssa-scopedtables.c.
	(avail_expr_hash, initialize_expr_from_cond): Similarly.
	(hashable_expr_equal_p, add_expr_commutative): Likewise.
	(add_hashable_expr): Likewise.
	(record_cond): Delete element directly.
	* tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
	private copy ctor and assignment operator methods.
	(expr_elt_hasher): Inline trivial methods.
	(initialize_expr_from_cond): Prototype.
	* tree-ssa-scopedtables.c: Add necessary includes, functions and
	methods that were previously in tree-ssa-dom.c.  Improve various
	comments.

2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.

2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>

	PR bootstrap/67587
	* function.c (rest_of_handle_thread_prologue_and_epilogue): Call
	fixup_partitions.

2015-09-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/67253
	* cfgexpand.c (expand_gimple_stmt_1): Do not clobber
	location of possibly shared trees.

2015-09-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/67271
	* fold-const.c (native_encode_expr): Bail out on bogus offsets.

2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
	offset and size computations instead of HOST_WIDE_INT.

2015-09-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/67442
	* fold-const.c (extract_muldiv_1): Properly extend multiplication
	result before builting a tree via wide_int_to_tree.

2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>

	* Makefile.in: Add memory-block.cc
	(pool_allocator::initialize): Use fixed block size.
	(pool_allocator::release): Use memory_block_pool.
	(pool_allocator::allocate): Likewise.
	* asan.c (asan_mem_ref_pool): Adjust to use common block size in all
	object pools.
	* cfg.c (initialize_original_copy_tables): Likewise.
	* cselib.c (elt_list_pool, elt_loc_list_pool,
	cselib_val_pool): Likewise.
	* df-problems.c (df_chain_alloc): Likewise.
	* df-scan.c (df_scan_alloc): Likewise.
	* dse.c (cse_store_info_pool, rtx_store_info_pool,
	read_info_type_pool, insn_info_type_pool, bb_info_pool,
	group_info_pool, deferred_change_pool): Likewise.
	* et-forest.c (et_nodes, et_occurrences): Likewise.
	* ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
	ipcp_agg_lattice_pool): Likewise.
	* ipa-inline-analysis.c (edge_predicate_pool): Likewise.
	* ipa-profile.c (histogram_pool): Likewise.
	* ipa-prop.c (ipa_refdesc_pool): Likewise.
	* ira-build.c (live_range_pool, allocno_pool, object_pool,
	initiate_cost_vectors, pref_pool, copy_pool): Likewise.
	* ira-color.c (update_cost_record_pool): Likewise.
	* lra-lives.c (lra_live_range_pool): Likewise.
	* lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
	* memory-block.cc: New file.
	* memory-block.h: New file.
	* regcprop.c (queued_debug_insn_change_pool): Use common block size.
	* sched-deps.c (sched_deps_init): Likewise.
	* sel-sched-ir.c (sched_lists_pool): Likewise.
	* stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
	* tree-sra.c (access_pool): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
	* tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
	* tree-ssa-reassoc.c (operand_entry_pool): Likewise.
	* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
	* tree-ssa-strlen.c (strinfo_pool): Likewise.
	* tree-ssa-structalias.c (variable_info_pool): Likewise.
	* var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
	location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.

2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
	definition.
	(DWARF_FRAME_REGISTERS): Reserve space for one extra register in
	call0 ABI.

2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
	to pass TLS call argument, according to current ABI.
	* config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
	callx0 for TLS call, according to current ABI.

2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-eh.c (lower_try_finally_dup_block): Clear location information
	on stack restore statements.
	(decide_copy_try_finally): Do not consider a stack restore statement as
	coming from sources.

2015-09-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_expand_block_clear): Use
	HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.

2015-09-15  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
	methods and private members.
	(avail_exprs_stack): Similarly.  Change type of global
	from a pair of expr_hash_elt_t to the new class.
	(expr_elt_hasher::hash): Corresponding changes.
	(expr_elt_hasher::equal): Similarly.
	(avail_expr_hash): Similarly.
	(pass_dominator::execute): Similarly.
	(dom_opt_dom_walker::thread_across_edge): Similarly.
	(record_cond): Similarly.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.
	(lookup_avail_expr): Likewise.
	(initialize_hash_element): Now a expr_hash_elt constructor.
	(initialize_hash_element_from_expr): Similarly.
	(free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
	(free_expr_hash_elt): Call dtor for the element.
	(remove_local_expressions_from_table): Now the "pop_to_marker"
	method in the available_exprs_stack class.
	(avail_expr_stack::record_expr): Method factored out.
	(print_expr_hash_elt): Now a method in the expr_hash_elt class.
	Fix formatting.
	(hashable_expr_equal_p): Fix formatting.

2015-09-15  David Malcolm  <dmalcolm@redhat.com>

	* input.h (location_get_source_line): Drop "expanded_location"
	param in favor of a file and line number.
	* input.c (location_get_source_line): Likewise.
	(dump_location_info): Update for change in signature of
	location_get_source_line.
	* diagnostic.c (diagnostic_print_caret_line): Likewise.

2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
	Bump to 4KB for SJLJ exceptions.
	(STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
	* doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
	* doc/tm.texi: Regenerate.

2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
	of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
	Update prototype.

2015-09-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67470
	* tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
	structure for PHI hoisting by inserting a forwarder block
	if appropriate.

2015-09-15  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm.c (TARGET_OPTION_PRINT): Define.
	(arm_option_print): New function.

2015-09-15  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
	* config/arm/arm-c.c (arm_cpu_builtins): Declare static.
	Remove flags parameter.
	* config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
	(TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
	(TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
	(TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
	(TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
	(TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
	(TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
	* config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.

	* config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
	AARCH64_VALID_SIMD_DREG_MODE.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
	aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
	(aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
	(aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
	aarch64_ld4_lane<mode>): Combine together, making...
	(aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
	(aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
	aarch64_st4_lane<mode>): Combine together, making...
	(aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
	* config/aarch64/iterators.md (nregs): Add comment.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
	Change operand mode from <V_TWO_ELEM> to BLK.
	(aarch64_vec_load_lanesoi_lane<mode>): Likewise.
	(aarch64_vec_store_lanesoi_lane<mode): Likewise
	(aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
	(aarch64_ld2_lane<mode>): Likewise.
	(aarch64_st2_lane<VQ:mode>): Likewise.
	* config/aarch64/iterators.md (V_TWO_ELEM): Remove.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
	Change operand mode from <V_FOUR_ELEM> to BLK.
	(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
	(aarch64_vec_store_lanesxi_lane<mode): Likewise.
	(aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
	(aarch64_ld4_lane<mode>): Likewise.
	(aarch64_st4_lane<mode>): Likewise.
	* config/aarch64/iterators.md (V_FOUR_ELEM): Remove.

2015-09-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/67563
	* gimple-fold.c (gimplify_and_update_call_from_tree): Do not
	transfer EH info from old to new stmt.
	(replace_call_with_value): Likewise.
	(replace_call_with_call_and_fold): Likewise.
	(gimple_fold_builtin_memory_op): Likewise.
	(gimple_fold_builtin_memset): Likewise.
	(gimple_fold_builtin_stpcpy): Likewise.
	(gimple_fold_call): Likewise.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
	comment.
	* config/aarch64/aarch64-builtins.c (ei_UP): Remove.
	(aarch64_simd_intEI_type_node): Likewise.
	(aarch64_simd_builtin_std_type): Remove EImode case.
	(aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
	* config/aarch64/aarch64-modes.def: Remove EImode.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
	Change operand mode from <V_THREE_ELEM> to BLK.
	(aarch64_vec_load_lanesci_lane<mode>): Likewise.
	(aarch64_vec_store_lanesci_lane<mode>): Likewise.
	(aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
	(aarch64_ld3_lane<mode>): Likewise.
	(aarch64_st3_lane<mode>): Likewise.
	* config/aarch64/iterators.md (V_THREE_ELEM): Remove.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
	Change all TImode operands to BLKmode.
	(aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
	Change all EImode operands to BLKmode.
	(aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
	Change all OImode operands to BLKmode.

	(aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
	and call set_mem_size.
	(aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.

	* config/aarch64/iterators.md (VSTRUCT_DREG): Remove.

2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
	to...
	(aarch64_vec_store_lanesoi_lane<mode>): ...this.

	(vec_store_lanesci_lane<mode>): Rename to...
	(aarch64_vec_store_lanesci_lane<mode>): ...this.

	(vec_store_lanesxi_lane<mode>): Rename to...
	(aarch64_vec_store_lanesxi_lane<mode>): ...this.

	(aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
	aarch64_st4_lane<mode>): Follow renaming.

2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_const_operand_ok): Add missing
	brackets.

2015-09-15  Richard Biener  <rguenther@suse.de>

	PR lto/67568
	* lto-streamer.h (lto_location_cache::current_sysp): Properly
	initialize.
	* lto-streamer-out.c (clear_line_info): Likewise.

2015-09-15  Richard Biener  <rguenther@suse.de>

	* doc/match-and-simplify.texi: Fix wording.

2015-09-15  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
	unnecessary type conversion in op1.

2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>

	* shrink-wrap.c (requires_stack_frame_p): Fix formatting.
	(dup_block_and_redirect): Delete function.
	(can_dup_for_shrink_wrapping): New function.
	(fix_fake_fallthrough_edge): New function.
	(try_shrink_wrapping): Rewrite function.
	(convert_to_simple_return): Call fix_fake_fallthrough_edge.

2015-09-14  Rich Felker  <dalias@libc.org>

	* configure.ac: Change target pattern for sh TLS support
	test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
	* configure: Regenerate.

2015-09-14  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
	type rather than void *.

2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/67460
	* diagnostic.c (diagnostic_initialize): Do not set
	some_warnings_are_errors.
	(diagnostic_finish): Use DK_WERROR count instead.
	(diagnostic_report_diagnostic): Do not set
	some_warnings_are_errors.
	* diagnostic.h (struct diagnostic_context): Remove
	some_warnings_are_errors.

2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>

	* config/sparc/predicates.md (const_all_ones_operand): Use
	CONSTM1_RTX to simplify definition.

2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67061
	* config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
	Handle call insns.

2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>

	* lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
	OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
	OPT_fshow_column to handled saved option cases.
	(append_compiler_options): Do not skip the above added options.

2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/63304
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
	nopcrelative_literal_loads.
	(aarch64_classify_address): Likewise.
	(aarch64_constant_pool_reload_icode): Define.
	(aarch64_secondary_reload): Handle secondary reloads for
	literal pools.
	(aarch64_override_options): Handle nopcrelative_literal_loads.
	(aarch64_classify_symbol): Handle nopcrelative_literal_loads.
	* config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
	Define.
	(aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
	* config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
	* config/aarch64/predicates.md (aarch64_constant_pool_symref): New
	predicate.
	* doc/invoke.texi (mpc-relative-literal-loads): Document.

2015-09-14  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/67401
	* optabs.c (expand_atomic_compare_and_swap): Move result of emitting
	sync_compare_and_swap_optab libcall to target_oval.

2015-09-14  Marek Polacek  <polacek@redhat.com>

	* rtlanal.c (split_double): Cast to unsigned when shifting a negative
	value.
	* sched-int.h (UNKNOWN_DEP_COST): Likewise.

2015-09-11  Mark Wielaard  <mjw@redhat.com>

	PR c/28901
	* toplev.c (check_global_declaration): Check and use
	warn_unused_const_variable.
	* doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
	(-Wunused-variable): Remove non-constant. For C implies
	-Wunused-const-variable.
	(-Wunused-const-variable): New.

2015-09-14  Richard Biener  <rguenther@suse.de>

	* doc/match-and-simplify.texi: Update for changed syntax
	of inner ifs and the new switch expression.

2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/haswell.md: New file describing Haswell pipeline.
	* config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
	haswell-like processors.
	(ix86_reassociation_width): Increase reassociation width for 64-bit
	Haswell processor family.
	* config/i386/i386.md: Introduce haswell cpu and include new md file.

2015-09-14  Richard Biener  <rguenther@suse.de>

	* doc/match-and-simplify.texi: Fixup some formatting issues
	and document the 's' flag.

2015-09-13  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
	gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
	* config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
	(TARGET_CPU_gr5): Likewise.
	(TARGET_CPU_gr6): Likewise.
	(MULTILIB_DEFAULTS): Likewise.
	* config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
	for mcpu=gr5 and mcpu=gr6.
	(MULTILIB_DIRNAMES): Adjust accordingly.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
	(mem_ref_p): Likewise.
	(outermost_indep_loop): Adjust.
	(mem_ref_in_stmt): Likewise.
	(determine_max_movement): Likewise.
	(mem_ref_alloc): Likewise.
	(record_mem_ref_loc): Likewise.
	(set_ref_stored_in_loop): Likewise.
	(mark_ref_stored): Likewise.
	(gather_mem_refs_stmt): Likewise.
	(mem_refs_may_alias_p): Likewise.
	(for_all_locs_in_loop): Likewise.
	(struct rewrite_mem_ref_loc): Likewise.
	(rewrite_mem_refs): Likewise.
	(struct first_mem_ref_loc_1): Likewise.
	(first_mem_ref_loc): Likewise.
	(struct sm_set_flag_if_changed): Likewise.
	(execute_sm_if_changed_flag_set): Likewise.
	(execute_sm): Likewise.
	(hoist_memory_references):
	(struct ref_always_accessed): Likewise.
	(ref_always_accessed_p): Likewise.
	(refs_independent_p): Likewise.
	(record_dep_loop): Likewise.
	(ref_indep_loop_p_1): Likewise.
	(ref_indep_loop_p_2): Likewise.
	(ref_indep_loop_p): Likewise.
	(can_sm_ref_p): Likewise.
	(find_refs_for_sm): Likewise.
	(tree_ssa_lim_finalize): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* dwarf2out.c (dw_attr_ref): Remove typedef.
	(dw_line_info_ref): Likewise.
	(pubname_ref): Likewise.
	(dw_ranges_ref): Likewise.
	(dw_ranges_by_label_ref): Likewise.
	(comdat_type_node_ref): Likewise.
	(get_AT): Adjust.
	(get_AT_low_pc): Likewise.
	(get_AT_hi_pc): Likewise.
	(get_AT_string): Likewise.
	(get_AT_flag): Likewise.
	(get_AT_unsigned): Likewise.
	(get_AT_ref): Likewise.
	(get_AT_file): Likewise.
	(remove_AT): Likewise.
	(print_die): Likewise.
	(check_die): Likewise.
	(die_checksum): Likewise.
	(attr_checksum_ordered): Likewise.
	(struct checksum_attributes): Likewise.
	(collect_checksum_attributes): Likewise.
	(die_checksum_ordered): Likewise.
	(same_die_p): Likewise.
	(is_declaration_die): Likewise.
	(clone_die): Likewise.
	(clone_as_declaration): Likewise.
	(copy_declaration_context): Likewise.
	(break_out_comdat_types): Likewise.
	(copy_decls_walk): Likewise.
	(output_location_lists): Likewise.
	(external_ref_hasher::hash): Likewise.
	(optimize_external_refs_1): Likewise.
	(build_abbrev_table): Likewise.
	(size_of_die): Likewise.
	(unmark_all_dies): Likewise.
	(size_of_pubnames): Likewise.
	(output_die_abbrevs): Likewise.
	(output_die): Likewise.
	(output_pubnames): Likewise.
	(add_ranges_num): Likewise.
	(add_ranges_by_labels): Likewise.
	(add_high_low_attributes): Likewise.
	(gen_producer_string): Likewise.
	(dwarf2out_set_name): Likewise.
	(new_line_info_table): Likewise.
	(prune_unused_types_walk_attribs): Likewise.
	(prune_unused_types_update_strings): Likewise.
	(prune_unused_types): Likewise.
	(resolve_addr): Likewise.
	(optimize_location_lists_1): Likewise.
	(index_location_lists): Likewise.
	(dwarf2out_finish): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* dwarf2cfi.c (dw_trace_info_ref): Remove typedef.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
	(dump_asserts_for): Adjust.
	(register_new_assert_for): Likewise.
	(process_assert_insertions): Likewise.
	(insert_range_assertions): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
	and remove typedef.
	(new_temp_expr_table): Adjust.
	(free_temp_expr_table): Likewise.
	(version_to_be_replaced_p): Likewise.
	(make_dependent_on_partition): Likewise.
	(add_to_partition_kill_list): Likewise.
	(remove_from_partition_kill_list): Likewise.
	(add_dependence): Likewise.
	(finished_with_expr): Likewise.
	(process_replaceable): Likewise.
	(kill_expr): Likewise.
	(kill_virtual_exprs): Likewise.
	(mark_replaceable): Likewise.
	(find_replaceable_in_bb): Likewise.
	(find_replaceable_exprs): Likewise.
	(debug_ter): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
	(struct btr_user): Rename from btr_user_s.
	(struct btr_def): Rename from btr_def_s.
	(find_btr_def_group): Adjust.
	(add_btr_def): Likewise.
	(new_btr_user): Likewise.
	(note_other_use_this_block): Likewise.
	(compute_defs_uses_and_gen): Likewise.
	(link_btr_uses): Likewise.
	(build_btr_def_use_webs): Likewise.
	(block_at_edge_of_live_range_p): Likewise.
	(btr_def_live_range): Likewise.
	(combine_btr_defs): Likewise.
	(move_btr_def): Likewise.
	(migrate_btr_def): Likewise.
	(migrate_btr_defs): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* var-tracking.c (shared_hash_def): Rename to shared_hash.
	(shared_hash): Remove typedef.
	(struct dataflow_set): Adjust.
	(shared_hash_unshare): Likewise.
	(dataflow_set_merge): Likewise.
	(vt_initialize): Likewise.
	(vt_finalize): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* var-tracking.c (struct location_chain): Rename from
	location_chain_def.
	(struct variable_part): Adjust.
	(variable_htab_free): Likewise.
	(unshare_variable): Likewise.
	(get_init_value): Likewise.
	(get_addr_from_local_cache): Likewise.
	(drop_overlapping_mem_locs): Likewise.
	(val_reset): Likewise.
	(struct variable_union_info): Likewise.
	(variable_union): Likewise.
	(find_loc_in_1pdv): Likewise.
	(insert_into_intersection): Likewise.
	(intersect_loc_chains): Likewise.
	(canonicalize_loc_order_check): Likewise.
	(canonicalize_values_mark): Likewise.
	(canonicalize_values_star): Likewise.
	(canonicalize_vars_star): Likewise.
	(variable_merge_over_cur): Likewise.
	(remove_duplicate_values): Likewise.
	(variable_post_merge_new_vals): Likewise.
	(variable_post_merge_perm_vals): Likewise.
	(find_mem_expr_in_1pdv): Likewise.
	(dataflow_set_preserve_mem_locs): Likewise.
	(dataflow_set_remove_mem_locs): Likewise.
	(variable_part_different_p): Likewise.
	(onepart_variable_different_p): Likewise.
	(find_src_set_src): Likewise.
	(dump_var): Likewise.
	(set_slot_part): Likewise.
	(clobber_slot_part): Likewise.
	(delete_slot_part): Likewise.
	(vt_expand_var_loc_chain): Likewise.
	(emit_note_insn_var_location): Likewise.
	(vt_finalize): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* dse.c (store_info_t): Remove typedef.
	(group_info_t): Likewise.
	(const_group_info_t): Likewise.
	(deferred_change_t): Likewise.
	(get_group_info): Adjust.
	(free_store_info): Likewise.
	(canon_address): Likewise.
	(clear_rhs_from_active_local_stores): Likewise.
	(record_store): Likewise.
	(replace_read): Likewise.
	(check_mem_read_rtx): Likewise.
	(scan_insn): Likewise.
	(remove_useless_values): Likewise.
	(dse_step1): Likewise.
	(dse_step2_init): Likewise.
	(dse_step2_nospill): Likewise.
	(scan_stores_nospill): Likewise.
	(scan_reads_nospill): Likewise.
	(dse_step3_exit_block_scan): Likewise.
	(dse_step3): Likewise.
	(dse_step5_nospill): Likewise.
	(dse_step6): Likewise.

2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* alias.c (alias_set_entry_d): Rename to alias_set_entry.
	(alias_set_entry): Remove typedef.
	(alias_set_subset_of): Adjust.
	(alias_sets_conflict_p): Likewise.
	(init_alias_set_entry): Likewise.
	(get_alias_set): Likewise.
	(new_alias_set): Likewise.
	(record_alias_subset): Likewise.

2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Downloading the source): Mark up
	contrib/download_prerequisites properly and drop leading "./".

2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/arc/arc.h: Remove define of STRUCT_VALUE.
	* config/lm32/lm32.h: Likewise.
	* config/mep/mep.h: Likewise.
	* config/visium/visium.h: Likewise.
	* system.h: Poison STRUCT_VALUE macro.

2015-09-12  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
	CONSTANT_P operands.

2015-09-11  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md: Make "U" constraint a real register
	constraint.
	* config/sparc/sparc.c (TARGET_LRA_P): Define.
	(D_MODES, DF_MODES): Add missing cast.
	(TF_MODES, TF_MODES_NO_S): Include T_MODE.
	(OF_MODES, OF_MODES_NO_S): Include O_MODE.
	(sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
	cost to 8.
	* config/sparc/sparc.h (PROMOTE_MODE): Define.
	* config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
	provide these insn when flag_pic.

2015-09-11  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (struct cond_equivalence): Update comment.
	* tree-ssa-scopedtables.h (class const_and_copies): Prefix data
	member with m_.  Update inline member functions as necessary.  Add
	toplevel comment.
	* tree-ssa-scopedtables.c: Update const_and_copies's member
	functions to use m_ prefix to access the stack.

2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-optimize-isl.c (disable_tiling): Remove.
	(get_schedule_for_band): Do not use disable_tiling.
	(get_prevector_map): Delete function.
	(enable_polly_vector): Remove.
	(get_schedule_for_band_list): Remove dead code.

2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-optimize-isl.c (get_tile_map): Refactor.
	(get_schedule_for_band): Same.
	(getScheduleForBand): Same.
	(get_prevector_map): Same.
	(get_schedule_for_band_list): Same.
	(get_schedule_map): Same.
	(get_single_map): Same.
	(apply_schedule_map_to_scop): Same.
	(optimize_isl): Same.

2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/63304
	* config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
	(movtf): Delete.
	* config/aarch64/iterators.md (GPF_TF_F16): New.
	(GPF_F16): Delete.

2015-09-10  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
	(nvptx_reorg): Adjust comments.

2015-09-15  John David Anglin  <danglin@gcc.gnu.org>

	PR bootstrap/67363
	* configure.ac: Check if setenv and unsetenv are declared.
	* configure: Rebuild.
	* config.in: Rebuild.
	* system.h: Declare setenv and unsetenv if not declared.

2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (swap_web_entry): Update preceding
	commentary to simplify permute mask adjustment equation.
	(special_handling_values): Add SH_VPERM.
	(const_load_sequence_p): New function.
	(insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
	the mask loaded from the constant pool.
	(adjust_vperm): New function.
	(handle_special_swappables): Call adjust_vperm.
	(dump_swap_insn_table): Handle SH_VPERM.

2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>

	* shrink-wrap.c (requires_stack_frame_p): Remove static.
	* shrink-wrap.h (requires_stack_frame_p): Put back.

2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>

	* reload1.c (elimination_costs_in_insn): Locally turn
	-Wmaybe-uninitialized into a warning.

2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* shrink-wrap.c (requires_stack_frame_p): Make static.
	(prepare_shrink_wrap): Likewise.
	(dup_block_and_redirect): Likewise.
	* shrink-wrap.h: Remove declarations of those functions.

2015-09-10  Mark Wielaard  <mjw@redhat.com>

	* doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.

2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67506
	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
	missing simplify_gen_subreg.

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
	the vector element is bigger than 64 bit.

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
	("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c: Add V1TImode to constant pool modes.

2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/67439
	* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
	predicate.  Set predicable_short_it attr to "no".

2015-09-10  Jiong Wang  <jiong.wang@arm.com>

	PR rtl-optimization/67421
	* expr.c (expand_expr_real_2): Cost instrcution sequences when doing
	left wide shift tranformation.

2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* common/config/arc/arc-common.c: Remove references to A5.
	* config/arc/arc-opts.h: Likewise.
	* config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
	* config/arc/arc.opt, config/arc/constraints.md: Likewise.
	* config/arc/t-arc-newlib: Likewise.

2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (length): Fix attribute length for conditional
	executed instructions with long immediate.

2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
	type for second alternative.

2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/invoke.texi (Downloading GCC): Mention
	contrib/download_prerequisites script.

2015-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67523
	* gimplify.c (gimplify_omp_for): If inner stmt is not found
	for combined loop, assert seen_error () and return GS_ERROR.

	PR middle-end/67521
	* gimplify.c (gimplify_omp_for): Don't call omp_add_variable
	if decl is already in outer->variables.

	PR middle-end/67517
	* gimplify.c (gimplify_scan_omp_clauses): Instead of
	asserting that decl is not specified in octx->variables,
	break out of the loop if it is.

	PR c++/67514
	* gimplify.c (gimplify_omp_for): For loop SIMD construct, if
	iterator is not explicitly determined, but is defined inside
	of the combined workshare region, handle it like if it has
	DECL_EXPR in OMP_FOR_PRE_BODY.

2015-09-09  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (call_operation): Move bound out of loop.
	(*cmp<mode>): Add assembler spacing.
	(setcc_int<mode>, set_cc_float<mode>): Likewise.
	* config/nvptx/nvptx.c (nvptx_option_override): Override debug
	level.
	(write_func_decl_from_insn): Refactor argument loops & comma emission.
	(nvptx_expand_call): Likewise.
	(nvptx_output_call_insn): Likewise.
	(nvptx_reorg_subreg): Add spacing.

2015-09-09  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67512
	* tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
	for comparisons.

2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53184
	* doc/invoke.texi ([Wsubobject-linkage]): Document.

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

	* params-list.h: Add missing copyright notice.

2015-09-09  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
	sel_truesi, not andsi.

2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (*subsi3_compare0): Rename to...
	(subsi3_compare0): ... This.
	(modsi3): New define_expand.
	* config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
	when operand is power of 2.

2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (mod<mode>3): New define_expand.
	(*neg<mode>2_compare0): Rename to...
	(neg<mode>2_compare0): ... This.
	* config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
	Move check for speed inside the if-then-elses.  Reflect
	CSNEG sequence in MOD by power of 2 case.

2015-09-09  Alan Modra  <amodra@gmail.com>

	PR target/67378
	* config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
	reload replacement for PRE_MODIFY address reg.

2015-09-09  Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/53852
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
	* graphite-optimize-isl.c (optimize_isl): Stop computation when
	PARAM_MAX_ISL_OPERATIONS is reached.
	* params.def (PARAM_MAX_ISL_OPERATIONS): Add.
	* graphite-dependences.c (extend_schedule): Remove gcc_asserts on
	result equal to isl_stat_ok as the status now can be isl_error_quota.
	(subtract_commutative_associative_deps): Same.
	(compute_deps): Same.

2015-09-08  Aditya Kumar  <hiraditya@msn.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
	Return the parameter if it was saved in corresponding
	parameter_rename_map of the region.
	(copy_def): Copy def from sese region to the newly created region.
	(copy_internal_parameters): Copy all the internal parameters defined
	within a region to the newly created region.
	(graphite_regenerate_ast_isl): Copy parameters to the new region before
	translating isl to gimple.
	* graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
	the loop-nest does not have any data-references.
	(build_graphite_scops): Create a scop only when there is at least one
	loop inside it.
	(contains_only_close_phi_nodes): Deleted.
	(print_graphite_scop_statistics): Deleted
	(print_graphite_statistics): Deleted
	(limit_scops): Deleted.
	(build_scops): Removed call to limit_scops.
	* sese.c (new_sese): Construct.
	(free_sese): Destruct.
	(sese_add_exit_phis_edge): update_stmt after exit phi edge has been
	added.
	(set_rename): Pass sese region so that parameters inside the region can
	be added to its parameter_rename_map.
	(rename_uses): Pass sese region.
	(graphite_copy_stmts_from_block): Do not copy parameters that have been
	generated in the header of the scop. For each SSA_NAME in the
	parameter_rename_map rename its usage.
	(invariant_in_sese_p_rec): Return false if tree t is defined outside
	sese region.
	(scalar_evolution_in_region): If the tree t is invariant just return t.
	* sese.h: Added a parameter renamne map (parameter_rename_map_t) to
	struct sese to keep track of all the parameters which need renaming.
	* tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
	any data-refs.
	* tree-data-ref.h: Declaration of loop_nest_has_data_refs.

2015-09-08  Tom de Vries  <tom@codesourcery.com>

	* Makefile.in (generated_files): Add params.list.
	(params.list, s-params.list): Add rule.
	* params.h (enum compiler_param): Include params-list.h.  Move define
	DEFPARAM, include params.def and undef DEFPARAM ...
	* params-list.h: ... here.  New file.

2015-09-08  David Malcolm  <dmalcolm@redhat.com>

	* pretty-print.h (printer_fn): Fix typo in comment.

2015-09-07  Jeff Law  <law@redhat.com>

	* tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
	(arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
	(arm_neon_fp16_hw): New.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* fold-const.c (native_interpret_real): Fix HFmode for bigendian where
	UNITS_PER_WORD >= 4.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
	aarch64_simd_vec_unpacks_hi_<mode>): New insn.
	(vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
	(vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
	(aarch64_float_extend_lo_v2df): Rename to...
	(aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.

	* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
	(float_extend_lo): Add v4sf.

	* config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
	* config/aarch64/iterators.md (VQ_HSF): New iterator.
	(VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
	(Vwide): New mode_attr.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
	aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
	aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
	vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
	V4HF and V8HF variants to iterator.

	* config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.

	* config/aarch64/iterators.md (VDQF_F16): New.
	(VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
	vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
	vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
	vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
	vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
	vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
	vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
	vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
	vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
	vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
	vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
	vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
	vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
	vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
	vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
	vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
	vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
	vld1q_dup_f16): New.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
	Reparameterize to...
	(aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
	(aarch64_float_truncate_hi_v4sf): Reparameterize to...
	(aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.

	* config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
	v8hf variant.
	(float_truncate_lo_): Use BUILTIN_VDF iterator.

	* config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.

	* config/aarch64/iterators.md (VDF, Vdtype): New.
	(VWIDE, Vmwtype): Add cases for V4HF and V2SF.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
	* config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
	(aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
	Add __builtin_aarch64_simd_hf.
	* config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
	float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
	vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
	vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
	vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
	vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
	vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
	vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
	vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.

	* config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
	V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
	(VDC, Vdbl): Add V4HF.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
	V4HFmode and V8HFmode.
	(aarch64_split_simd_move): Add case for V8HFmode.
	* config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
	(aarch64_simd_builtin_std_type): Handle HFmode.
	(aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.

	* config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
	aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
	(aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.

	* config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
	Float16x8_t.

	* config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
	* config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
	New typedefs.
	(vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
	vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
	vst1q_lane_f16): New.
	* config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
	(VALLDI_F16, VALL_F16): New.
	(Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
	Add cases for V4HF and V8HF.
	(VDBL, VRL2, VRL3, VRL4): Add V4HF case.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm-builtins.c (VAR11, VAR12): New.
	* config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
	vld4_dup): Add v4hf variant.
	(vget_high, vget_low): Add v8hf variant.
	(vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
	vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
	v4hf and v8hf variants.

	* config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
	(VDX): Add V4HF.
	(V_DOUBLE): Add case for V4HF.
	(VQX): Add V8HF.
	(V_HALF): Add case for V8HF.
	(VDQX): Add V4HF, V8HF.
	(V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
	V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.

	* config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
	neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
	vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
	neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
	neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
	neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
	vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
	neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
	neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.

	(neon_vcreate, neon_vreinterpretv8qi<mode>,
	neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
	neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
	Change VDX to VD_RE.

	(neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
	neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
	Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.

	* config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
	float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
	vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
	vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
	vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
	vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
	vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
	vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
	vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
	vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
	vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
	vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
	vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
	vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
	vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
	vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
	vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
	vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
	New.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.

	* config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.

	* config/arm/arm-builtins.c (v8hf_UP): New.
	(arm_init_simd_builtin_types): Initialise Float16x8_t.

	* config/arm/arm-simd-builtin-types.def (Float16x8_t): New.

	* config/arm/arm_neon.h (float16x8_t): New typedef.

2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
	vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
	vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
	vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
	vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
	vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
	vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
	vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
	vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
	vreinterpret_u16_f16, vreinterpret_u32_f16): New.

2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>

	* config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
	non-alphanumeric characters in the symbol name.

2015-09-07  Marek Polacek  <polacek@redhat.com>

	PR inline-asm/67448
	* gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
	a memory input.

2015-09-07  Marek Polacek  <polacek@redhat.com>

	* system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.

2015-09-04  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
	not warn.

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

	PR middle-end/67452
	* tree-ssa-live.c: Include cfgloop.h.
	(remove_unused_locals): Clear loop->simduid if simduid is about
	to be removed from cfun->local_decls.

2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR target/65210
	* config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
	attribute as well.

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

	* doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.

2015-09-04  Jeff Law  <law@redhat.com>

	* tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
	unnecessary constructor.  It's now trivial and implemented inside...
	* tree-ssa-scopedtables.h (const_and_copies): Implement trivial
	constructor.  Add comments to various methods.  Remove unused
	private fields.
	* tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
	* tree-vrp.c (identify_jump_threads): Likewise.
	* tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
	indentation issues.
	(thread_across_edge): Similarly.
	(record_temporary_equivalences_from_stmts_at_dest): Remove unused
	arguments in constructor call.

2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>

	* config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
	temp path contains a '-'.

2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Petr Murzin  <petr.murzin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386-builtin-types.def
	(VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
	(VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
	(VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
	(VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
	* config/i386/i386.c
	(ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
	IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
	IX86_BUILTIN_SCATTERALTDIV16SI.
	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
	__builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
	__builtin_ia32_scatteraltdiv8si.
	(ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
	IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
	IX86_BUILTIN_SCATTERALTDIV16SI.
	(ix86_vectorize_builtin_scatter): New.
	(TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
	ix86_vectorize_builtin_scatter.

2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Petr Murzin  <petr.murzin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>

	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
	* doc/tm.texi: Regenerate.
	* target.def: Add scatter builtin.
	* tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
	for loads/stores in case of gather/scatter accordingly.
	(STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
	STMT_VINFO_GATHER_P(S).
	(vect_check_gather): Rename to ...
	(vect_check_gather_scatter): this.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
	STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
	(vect_check_gather_scatter): Use it instead of vect_check_gather.
	(vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
	variable and new checkings for it accordingly.
	* tree-vect-stmts.c
	(STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
	STMT_VINFO_GATHER_P(S).
	(vect_check_gather_scatter): Use it instead of vect_check_gather.
	(vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.

2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
	define_insn.
	(mulv16qi3): New define_expand.

2015-09-03  Martin Sebor  <msebor@redhat.com>

	PR c/66516
	* doc/extend.texi (Other Builtins): Document when the address
	of a built-in function can be taken.

2015-09-03  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (flush_limbo_die_list): Split out from ...
	(dwarf2out_early_finish): ... here.
	(dwarf2out_finish): Do not call dwarf2out_early_finish but
	flush_limbo_die_list.  Assert we have no deferred asm names.

2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* optabs.c (expand_binop): Don't create a broadcast vector with a
	source element wider than the inner mode.

2015-09-03  Richard Biener  <rguenther@suse.de>

	* varasm.c (output_constant): Use fold_convert instead of
	wide_int_to_tree.

2015-09-03  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65637
	* omp-low.c (expand_omp_for_static_chunk): Handle case that
	fin_bb has 2 predecessors.

2015-09-03  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65637
	* omp-low.c (find_phi_with_arg_on_edge): New function.
	(expand_omp_for_static_chunk): Fix inner loop phi.

2015-09-03  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65637
	* omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
	that head is NULL.

2015-09-03  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.

2015-09-03  Tom de Vries  <tom@codesourcery.com>

	* doc/invoke.texi (parloops-chunk-size): Add item.
	* params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
	* tree-parloops.c: Include params.h.
	(create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
	param parloops-chunk-size is used.

2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/67351
	* fold-const.c (fold_binary_loc) : Move
	Transform (x >> c) << c into x & (-1<<c) or
	transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
	types using simplify and match.
	* match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
	(rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier

2015-09-03  Richard Biener  <rguenther@suse.de>

	PR ipa/66705
	* tree-ssa-structalias.c (ctor_for_analysis): New function.
	(create_variable_info_for_1): Use ctor_for_analysis instead
	of get_constructor.
	(create_variable_info_for): Likewise.

2015-09-02  Charles Baylis  <charles.baylis@linaro.org>

	PR ipa/67280
	* cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
	in new callgraph edge.

2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/59810
	PR target/63652
	PR target/63653
	* config/aarch64/aarch64-simd.md
	(aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
	gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
	(aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
	gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.

2015-09-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
	* config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
	(LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.

2015-09-02  Alan Modra  <amodra@gmail.com>

	PR target/67417
	* config/rs6000/predicates.md (current_file_function_operand): Don't
	return true for weak symbols.
	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.

2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
	    Andrew Bennett  <andrew.bennett@imgtec.com>

	* config/mips/mips-opts.h (mips_cb_setting): New enum.
	* config/mips/mips-protos.h: Add definitions for
	mips_output_jump and mips_output_equal_conditional_branch
	* config/mips/mips.c (MIPS_JR): Change to support the
	JIC instruction.
	(mips_emit_compare): Add support for the MIPS R6 conditional
	compact branches.
	(mips_process_sync_loop): Likewise.
	(mips_output_order_conditional_branch): Likewise.
	(mips16_build_call_stub): Change MIPS_CALL to
	mips_output_jump.
	(mips_print_operand_punctuation): Update 's' case to only
	apply to micromips r2.
	(mips_adjust_insn_length): Add support for forbidden slot
	hazards.
	(mips_avoid_hazard): Likewise.
	(mips_reorg_process_insns): Likewise.
	(mips_output_jump): New function.
	(mips_output_equal_conditional_branch): Likewise.
	(mips_output_conditional_branch): Use jrc/bc if compact
	branch support is enabled.  Ensure the forbidden slots
	between the two branch instructions is filled with a nop.
	(mips_option_override): Add support to process the compact
	branch option and set the correct defaults.  Prevent
	non-explict relocs being using for MIPS R6.
	(mips_trampoline_init): Add compact branch support.
	(mips_mult_zero_zero_cost): Allow zero initialisation of
	accumulators with TARGET_DSP.
	* config/mips/mips.h (TARGET_CB_NEVER): New define.
	(TARGET_CB_MAYBE): New define.
	(TARGET_CB_ALWAYS): New define.
	(ISA_HAS_DELAY_SLOTS): New define.
	(ISA_HAS_COMPACT_BRANCHES): New define.
	(ISA_HAS_JRC): New define.
	(MIPS_BRANCH_C): New define.
	(MIPS_CALL): Removed.
	(MICROMIPS_J): Removed.
	* config/mips/mips.md (compact_form): New attr.
	(hazard): Add support for forbidden slots.
	(define_delay): Add support for compact branches.
	(*branch_order<mode>): Likewise.
	(*branch_order<mode>_inverted): Likewise.
	(*branch_equality<mode>): Likewise.
	(*branch_equality<mode>_inverted): Likewise.
	(*jump_absolute): Likewise.
	(*jump_pic): Likewise.
	(indirect_jump): Use mips_output_jump to produce assembly output.
	(tablejump_<mode>"): Likewise.
	(*<optab>"): Likewise.
	(<optab>_internal): Likewise.
	(sibcall_internal): Likewise.
	(sibcall_value_internal): Likewise.
	(sibcall_value_multiple_internal): Likewise.
	(call_internal): Likewise.
	(call_split): Likewise.
	(call_internal_direct): Likewise.
	(call_direct_split): Likewise.
	(call_value_internal): Likewise.
	(call_value_split): Likewise.
	(call_value_internal_direct): Likewise.
	(call_value_direct_split): Likewise.
	(call_value_multiple_internal): Likewise.
	(call_value_multiple_split): Likewise.
	(mips_get_fcsr_mips16_<mode>): Likewise.
	(mips_set_fcsr_mips16_<mode>): Likewise.
	(tls_get_tp_mips16_<mode>): Likewise.
	* config/mips/mips.opt: Add -mcompact-branches option.
	* config/mips/predicates.md (order_operator): Ensure the
	conditional compact branches are only used if the ISA them.
	* doc/invoke.texi: Document -mcompact-branches option.

2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* lra-lives.c (process_bb_lives): Process move pseudos with the
	same value for copies and preferences
	* lra-constraints.c (match_reload): Create match reload pseudo
	with the same value from single dying input pseudo.

2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/67405
	* tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.

2015-09-01  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem.c: Add contributed-by.
	* trans-mem.h: Same.

2015-09-01  Richard Biener  <rguenther@suse.de>

	* expr.c (expand_expr_real_1): For expanding TERed defs
	set the current location to that of the def if not UNKNOWN.

2015-09-01  David Sherwood  <david.sherwood@arm.com>

	* genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.

2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
	then_cost, else_cost fields.  Change branch_cost field to unsigned int.
	(end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
	Include rtl-iter.h.
	(noce_simple_bbs): New function.
	(noce_try_move): Bail if basic blocks are not simple.
	(noce_try_store_flag): Likewise.
	(noce_try_store_flag_constants): Likewise.
	(noce_try_addcc): Likewise.
	(noce_try_store_flag_mask): Likewise.
	(noce_try_cmove): Likewise.
	(noce_try_minmax): Likewise.
	(noce_try_abs): Likewise.
	(noce_try_sign_mask): Likewise.
	(noce_try_bitop): Likewise.
	(bbs_ok_for_cmove_arith): New function.
	(noce_emit_all_but_last): Likewise.
	(noce_emit_insn): Likewise.
	(noce_emit_bb): Likewise.
	(noce_try_cmove_arith): Handle non-simple basic blocks.
	(insn_valid_noce_process_p): New function.
	(contains_mem_rtx_p): Likewise.
	(bb_valid_for_noce_process_p): Likewise.
	(noce_process_if_block): Allow non-simple basic blocks
	where appropriate.

2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-ssa-dom.c (record_equivalences_from_phis,
	record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
	(lookup_avail_expr): Likewise, and remove comment and unused temp.

2015-09-01  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.opt (mcpu): Fix typo.

2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_set_current_function):
	Re-layout any vector parameters have non-simd layout.
	* config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
	Delete.
	(aarch64_simd_expand_args): Delete call to the above.

2015-08-31  Mike Frysinger  <vapier@gentoo.org>

	* doc/invoke.texi (asan-stack): Add space before option.

2015-08-31  Marc Glisse  <marc.glisse@inria.fr>

	* tree.h (zerop): New function.
	* tree.c (zerop): Likewise.
	(element_precision): Handle expressions.
	* match.pd (define_predicates): Add zerop.
	(x <= +Inf): Fix comment.
	(abs (x) == 0, A & C == C, A & C != 0): Converted from ...
	* fold-const.c (fold_binary_loc): ... here. Remove.

2015-08-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/67381
	* genmatch.c (dt_node::gen_kids): Also treat matches as barrier.

2015-08-31  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
	(CEXPI): New operator list.
	(real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
	imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
	Converted from ...
	* fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.

2015-08-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
	(find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
	parameter.
	(find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
	(rewrite_into_loop_closed_ssa_1): New function, factored out of ...
	(rewrite_into_loop_closed_ssa): ... here.
	(replace_uses_in_dominated_bbs): Remove function.
	(rewrite_virtuals_into_loop_closed_ssa): Reimplement using
	rewrite_into_loop_closed_ssa_1.

2015-08-31  Michael Matz  <matz@suse.de>

	* cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
	enter entry and exit blocks for reverse post order.

2015-08-31  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
	(lto_location_cache::current_sysp): Likewise.
	(output_block::current_sysp): Likewise.
	* lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
	(lto_location_cache::apply_location_cache): Properly record
	system header locations.
	(lto_location_cache::input_location): Input whether a file
	is a system header.
	* lto-streamer-out.c (lto_output_location): Stream whether a file
	is a system header.

2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/67363
	* gcc.c (env_manager::xput): Replace strndup by xstrndup.

2015-08-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-manip.c (find_uses_to_rename_use)
	(find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
	Improve function header comments.

2015-08-30  Michael Collison  <michael.collison@linaro.org>

	PR other/67320
	* doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
	standard names

2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (swap_web_entry): Enlarge
	special_handling bitfield.
	(special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
	(rtx_is_swappable_p): Add handling for vec_select/vec_concat form
	that represents a general xxpermdi.
	(insn_is_swappable_p): Add handling for vec_concat of two
	doublewords, which maps to a specific xxpermdi.
	(adjust_xxpermdi): New function.
	(adjust_concat): Likewise.
	(handle_special_swappables): Call adjust_xxpermdi and
	adjust_concat.
	(dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.

2015-08-30  Rich Felker  <dalias@libc.org>

	* config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
	case instead of sh[123456ble]-*-*.

2015-08-29  Anatoly Sokolov  <aesok@post.ru>

	* ira.c (print_unform_and_important_classes,
	print_translated_classes): Remove reg_class_names static array.
	(print_unform_and_important_classes): Rename to ...
	(print_uniform_and_important_classes): ... this.
	(ira_debug_allocno_classes): Update accordingly.

2015-08-29  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/46193
	* omp-low.c (omp_reduction_init): Handle pointer type for min or max
	clause.

2015-08-28  Jeff Law  <law@redhat.com>

	PR lto/66752
	* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
	unable to find X NE 0 in the tables, return X as the simplified
	condition.
	(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
	in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
	to VISISTED_BBS.
	* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
	after removing the control flow statement and unnecessary edges.

2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>

	Revert:
	2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/67283
	* tree-sra.c (type_consists_of_records_p): Rename to...
	(scalarizable_type_p): ...this, add case for ARRAY_TYPE.

	(completely_scalarize_record): Rename to...
	(completely_scalarize): ...this, add ARRAY_TYPE case, move some
	code to:
	(scalarize_elem): New.

2015-08-28  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
	SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
	(aarch64_symbol_type): Likewise.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Likewise.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_tls_symbol): Likewise.

2015-08-28  Richard Biener  <rguenther@suse.de>

	* cgraphunit.c (symbol_table::compile): Move early debug generation
	and finish...
	(symbol_table::finalize_compilation_unit): ... back here and
	add a !seen_error () guard.

2015-08-27  Sebastian Pop  <s.pop@samsung.com>

	* toplev.c (process_options): Do not use flag_loop_block,
	flag_loop_interchange, and flag_loop_strip_mine.  Add check for
	flag_loop_optimize_isl.

2015-08-27  Sebastian Pop  <s.pop@samsung.com>

	* Makefile.in (OBJS): Remove graphite-blocking.o and
	graphite-interchange.o.
	* common.opt (floop-strip-mine, floop-interchange, floop-block):
	Alias of floop-nest-optimize.
	* doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
	Document as alias of -floop-nest-optimize.
	* graphite-blocking.c: Remove.
	* graphite-interchange.c: Remove.
	* graphite-optimize-isl.c: Include dumpfile.h.
	(getScheduleForBand): Add dump for tiled loops.  Use
	PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
	* graphite-poly.c (scop_max_loop_depth): Remove.
	(print_scattering_function_1): Remove.
	(print_scattering_function): Remove.
	(print_scattering_functions): Remove.
	(debug_scattering_function): Remove.
	(debug_scattering_functions): Remove.
	(apply_poly_transforms): Remove use of flag_loop_block,
	flag_loop_strip_mine, and flag_loop_interchange.
	(new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
	PBB_ORIGINAL.
	(print_pdr_access_layout): Remove.
	(print_pdr): Print ISL representation.
	(new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
	SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
	(free_scop): Same.
	(openscop_print_pbb_domain): Remove.
	(print_pbb): Remove call to print_scattering_function.
	(openscop_print_scop_context): Remove.
	(print_scop_context): Do not print matrices anymore.
	(print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
	SCOP_TRANSFORMED_SCHEDULE.
	(print_isl_set): Add printing of a new line.
	(print_isl_map): Same.
	(print_isl_aff): Same.
	(print_isl_constraint): Same.
	(loop_to_lst): Remove.
	(scop_to_lst): Remove.
	(lst_indent_to): Remove.
	(print_lst): Remove.
	(debug_lst): Remove.
	(dot_lst_1): Remove.
	(dot_lst): Remove.
	(reverse_loop_at_level): Remove.
	(reverse_loop_for_pbbs): Remove.
	* graphite-poly.h (pdr_dim_iter_domain): Remove.
	(pdr_nb_params): Remove.
	(pdr_alias_set_dim): Remove.
	(pdr_subscript_dim): Remove.
	(pdr_iterator_dim): Remove.
	(pdr_parameter_dim): Remove.
	(same_pdr_p): Remove.
	(struct poly_scattering): Remove.
	(struct poly_bb): Remove _original, _transformed, _saved.
	(PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
	(PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
	(PBB_NB_LOCAL_VARIABLES): Remove.
	(PBB_NB_SCATTERING_TRANSFORM): Remove.
	(schedule_to_scattering): Remove.
	(number_of_write_pdrs): Remove.
	(pbb_dim_iter_domain): Remove.
	(pbb_nb_params): Remove.
	(pbb_nb_scattering_orig): Remove.
	(pbb_nb_scattering_transform): Remove.
	(pbb_nb_dynamic_scattering_transform): Remove.
	(pbb_nb_local_vars): Remove.
	(pbb_iterator_dim): Remove.
	(pbb_parameter_dim): Remove.
	(psco_scattering_dim): Remove.
	(psct_scattering_dim): Remove.
	(psct_local_var_dim): Remove.
	(psco_iterator_dim): Remove.
	(psct_iterator_dim): Remove.
	(psco_parameter_dim): Remove.
	(psct_parameter_dim): Remove.
	(psct_dynamic_dim): Remove.
	(psct_static_dim): Remove.
	(psct_add_local_variable): Remove.
	(new_lst_loop): Remove.
	(new_lst_stmt): Remove.
	(free_lst): Remove.
	(copy_lst): Remove.
	(lst_add_loop_under_loop): Remove.
	(lst_depth): Remove.
	(lst_dewey_number): Remove.
	(lst_dewey_number_at_depth): Remove.
	(lst_pred): Remove.
	(lst_succ): Remove.
	(lst_find_pbb): Remove.
	(find_lst_loop): Remove.
	(lst_find_first_pbb): Remove.
	(lst_empty_p): Remove.
	(lst_find_last_pbb): Remove.
	(lst_contains_p): Remove.
	(lst_contains_pbb): Remove.
	(lst_create_nest): Remove.
	(lst_remove_from_sequence): Remove.
	(lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
	(lst_niter_for_loop): Remove.
	(pbb_update_scattering): Remove.
	(lst_update_scattering_under): Remove.
	(lst_update_scattering): Remove.
	(lst_insert_in_sequence): Remove.
	(lst_replace): Remove.
	(lst_substitute_3): Remove.
	(lst_distribute_lst): Remove.
	(lst_remove_all_before_including_pbb): Remove.
	(lst_remove_all_before_excluding_pbb): Remove.
	(struct scop): Remove original_schedule, transformed_schedule, and
	saved_schedule.
	(SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
	(SCOP_SAVED_SCHEDULE): Remove.
	(poly_scattering_new): Remove.
	(poly_scattering_free): Remove.
	(poly_scattering_copy): Remove.
	(store_scattering_pbb): Remove.
	(store_lst_schedule): Remove.
	(restore_lst_schedule): Remove.
	(store_scattering): Remove.
	(restore_scattering_pbb): Remove.
	(restore_scattering): Remove.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
	Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
	compute the scattering polyhedron dimension from the dimension of
	pbb->domain.
	(build_scop_scattering): Update call to
	build_pbb_scattering_polyhedrons.
	(build_poly_scop): Remove call to scop_to_lst.
	* graphite.c (graphite_transform_loops): Add call to print_scop.
	(gate_graphite_transforms): Remove use of flag_loop_block,
	flag_loop_interchange, and flag_loop_strip_mine.

2015-08-27  Sebastian Pop  <s.pop@samsung.com>

	* common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
	* doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
	-floop-nest-optimize.
	* graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
	(generate_luj_sepclass): Remove.
	(generate_luj_options): Remove.
	(set_options): Remove opt_luj.
	(scop_to_isl_ast): Remove opt_luj.
	* graphite-optimize-isl.c (getScheduleForBand): Remove check for
	flag_loop_unroll_jam.
	(getPrevectorMap_full): Remove.
	(getScheduleForBandList): Remove map_sepcl.
	(getScheduleMap): Same.
	(apply_schedule_map_to_scop): Remove sepcl.
	(optimize_isl): Same.
	* graphite-poly.c (apply_poly_transforms): Remove check for
	flag_loop_unroll_jam.
	(new_poly_bb): Remove map_sepclass.
	* graphite-poly.h (struct poly_bb): Same.
	* graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
	* params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
	(PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
	* toplev.c (process_options): Remove flag_loop_unroll_jam.

2015-08-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67317
	* config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
	(addqi3_cc): Ditto.
	(UNSPEC_ADD_CARRY): Remove.
	(addqi3_cconly_overflow): New expander.
	(*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
	Adjust for changed add<mode>3_carry.
	(*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
	(*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
	(<plusminus_insn><mode>3_carry): Remove expander.
	(*<plusminus_insn><mode>3_carry): Split insn pattern to
	add<mode>3_carry and sub<mode>3_carry.
	(plusminus_carry_mnemonic): Remove code attribute.
	(add<mode>3_carry): Canonicalize insn pattern.
	(*addsi3_carry_zext): Ditto.
	(sub<mode>3_carry): Ditto.
	(*subsi3_carry_zext): Ditto.
	(adcx<mode>3): Remove insn pattern.
	(addcarry<mode>): New insn pattern.
	(subborrow<mode>): Ditto.
	* config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
	gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
	(ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
	case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
	case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
	CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
	Rewrite expander to not clobber carry flag chains.

2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
	instead of a rotate.

2015-08-27  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67005
	* tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
	an entry into an irreducible region.

2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* configure: Regenerate.

2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/67283
	* tree-sra.c (type_consists_of_records_p): Rename to...
	(scalarizable_type_p): ...this, add case for ARRAY_TYPE.

	(completely_scalarize_record): Rename to...
	(completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
	(scalarize_elem): New.

2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-sra.c (completely_scalarize_var): Rename to...
	(create_total_scalarization_access): ... Here. Drop call to
	completely_scalarize_record.

	(analyze_all_variable_accesses): Replace completely_scalarize_var
	with create_total_scalarization_access and completely_scalarize_record.

2015-08-27  Alan Modra  <amodra@gmail.com>

	PR target/67356
	* config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
	for operand 1.

2015-08-27  Richard Biener  <rguenther@suse.de>

	* passes.c (rest_of_decl_compilation): Guard early_global_decl
	call with !seen_error ().
	* cgraphunit.c (symbol_table::finalize_compilation_unit): Move
	early debug generation and finish...
	(symbol_table::compile): ... here to put it after a !seen_error ()
	guard.

2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
	Solaris 12+.

2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
	(*cb<optab><mode>1): Likewise.
	(*tb<optab><mode>1): Likewise.
	(*cb<optab><mode>1): Likewise.
	* config/aarch64/iterators.md (inv_cb): New code attribute.
	(inv_tb): Likewise.
	* config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
	* config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.

2015-08-27  Richard Biener  <rguenther@suse.de>

	* ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.

2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
	trap to fix ICE.

2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
	Add declaration.

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
	comment.
	(rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
	floating point in VSX registers.
	(rs6000_output_move_128bit): Always print out the set insn if we
	can't generate an appropriate 128-bit move.
	(rs6000_generate_compare): Add support for IEEE 128-bit floating
	point in VSX registers comparisons.
	(rs6000_expand_float128_convert): Likewise.

	* config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
	predicate for only GPR hard registers.

	* config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
	modes to iterators. Add new iterators for moving 128-bit values in
	scalar FPR registers and VSX registers.
	(FMOVE128): Likewise.
	(FMOVE128_FPR): Likewise.
	(FMOVE128_GPR): Likewise.
	(FMOVE128_VSX): Likewise.
	(FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
	in VSX registers.
	(IFKF): Likewise.
	(IBM128): Likewise.
	(TFIFKF): Likewise.
	(RELOAD): Add IEEE 128-bit floating point modes.
	(signbittf2): Convert TF insns to add support for new IEEE 128-bit
	floating point in VSX registers modes.
	(signbit<mode>2, IBM128 iterator): Likewise.
	(mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
	(mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
	(negtf2): Likewise.
	(neg<mode>2, TFIFKF iterator): Likewise.
	(negtf2_internal): Likewise.
	(abstf2): Likewise.
	(abs<mode>2, TFIFKF iterator): Likewise.
	(ieee_128bit_negative_zero): New IEEE 128-bit floating point in
	VSX insn support for negate, absolute value, and negative absolute
	value.
	(ieee_128bit_vsx_neg<mode>2): Likewise.
	(ieee_128bit_vsx_neg<mode>2_internal): Likewise.
	(ieee_128bit_vsx_abs<mode>2): Likewise.
	(ieee_128bit_vsx_abs<mode>2_internal): Likewise.
	(ieee_128bit_vsx_nabs<mode>2): Likewise.
	(ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
	(FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
	floating point in VSX registers.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.
	(unpackv1ti): Likewise.
	(unpack<mode>, FMOVE128_VSX iterator): Likewise.
	(packv1ti): Likewise.
	(pack<mode>, FMOVE128_VSX iterator): Likewise.
	(extenddftf2): Add support for IEEE 128-bit floating point in VSX
	registers.
	(extenddftf2_internal): Likewise.
	(trunctfdf2): Likewise.
	(trunctfdf2_internal2): Likewise.
	(fix_trunc_helper): Likewise.
	(fix_trunctfdi2"): Likewise.
	(floatditf2): Likewise.
	(floatuns<mode>tf2): Likewise.
	(extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
	(trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
	(fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
	(fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
	(float<SDI:mode><IFKF:mode>2): Likewise.
	(floatuns<SDI:mode><IFKF:mode>2): Likewise.

2015-08-26  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.

2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
	(tlsie_tiny_<mode>): New define_insn.
	(tlsie_tiny_sidi): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
	SYMBOL_TINY_TLSIE.
	(aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
	SYMBOL_TINY_TLSIE.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(arch64_classify_tls_symbol): Likewise.

2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-arches.def: Replace single value flags with
	an initializer built from ARM_FSET_MAKE_CPU1.
	* config/arm/arm-cores.def: Likewise.
	* config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
	derivation from the ARM_CORE macro definition, use the given value
	instead.
	(all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
	ARM_ARCH macro definition, use the given value instead.

2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
	feature set.
	(struct builtin_description): Replace field mask with field
	features.
	(IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
	(IWMMXT2_BUILTIN): Likewise.
	(IWMMXT2_BUILTIN2): Likewise.
	(FP_BUILTIN): Likewise.
	(CRC32_BUILTIN): Likewise.
	(CRYPTO_BUILTIN): Likewise.
	(iwmmx_mbuiltin): Likewise.
	(iwmmx2_mbuiltin): Likewise.
	(arm_init_iwmmxt_builtins): Likewise. Also, update for change to
	struct builtin_description.

2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
	(struct builtin_description): Change type of mask to unsigned
	long.
	* config/arm/arm-protos.h (insn_flags): Declare as type
	arm_feature_set.
	(tune_flags): Likewise.
	* config/arm/arm.c (feature_count): New.
	(insn_flags): Define as type arm_feature_set.
	(tune_flags): Likewise.
	(struct processors): Define field flags as type arm_feature_set.
	(all_cores): Update for change to struct processors.
	(all_architectures): Likewise.
	(arm_option_check_internal): Use arm_feature_set and ARM_FSET
	macros.
	(arm_option_override_internal): Likewise.
	(arm_option_override): Likewise.

2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
	tls size for tiny, small, large memory model.
	(aarch64_load_symref_appropriately): Support new symbol types.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_tls_symbol): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
	(aarch64_symbol_type): Likewise.
	* config/aarch64/aarch64.md (tlsle): Deleted.
	(tlsle12_<mode>): New define_insn.
	(tlsle24_<mode>): Likewise.
	(tlsle32_<mode>): Likewise.
	(tlsle48_<mode>): Likewise.
	* doc/sourcebuild.texi (AArch64-specific attributes): Document
	"aarch64_tlsle32".

2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-protos.h (FL_NONE): New.
	(FL_ANY): New.
	(arm_feature_set): New.
	(ARM_FSET_MAKE): New.
	(ARM_FSET_MAKE_CPU1): New.
	(ARM_FSET_MAKE_CPU2): New.
	(ARM_FSET_CPU1): New.
	(ARM_FSET_CPU2): New.
	(ARM_FSET_EMPTY): New.
	(ARM_FSET_ANY): New.
	(ARM_FSET_HAS_CPU1): New.
	(ARM_FSET_HAS_CPU2): New.
	(ARM_FSET_HAS_CPU): New.
	(ARM_FSET_ADD_CPU1): New.
	(ARM_FSET_ADD_CPU2): New.
	(ARM_FSET_DEL_CPU1): New.
	(ARM_FSET_DEL_CPU2): New.
	(ARM_FSET_UNION): New.
	(ARM_FSET_INTER): New.
	(ARM_FSET_XOR): New.
	(ARM_FSET_EXCLUDE): New.
	(AFM_FSET_IS_EMPTY): New.
	(ARM_FSET_CPU_SUBSET): New.

2015-08-26  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
	SYMBOL_TLSLE to SYMBOL_TLSLE24.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Likewise.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_symbol): Likewise.

2015-08-26  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.opt (mtls-size): New entry.
	* config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
	(aarch64_override_options_internal): Call initialize_aarch64_tls_size.
	* doc/invoke.texi (AArch64 Options): Document -mtls-size.

2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
	ARM_CORE entry.  Fix some white-space.
	* config/arm/arm.c: Remove FL_FOR_ARCH derivation from
	ARM_CORE definition.

2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move Optimize
	root(x)*root(y)	as root(x*y) to match.pd.
	Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
	Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
	Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
	Move Optimize x/expN(y) into x*expN(-y) to match.pd.
	* match.pd (mult (root:s @0) (root:s @1)): New simplifier.
	(mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
	(mult (exps:s @0) (exps:s @1)) : New simplifier.
	(rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
	(rdiv @0 (exps:s @1)) : New simplifier.

2015-08-25  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (driver::finalize): Only assign to extra_specs if
	[EXTRA_SPECS].

2015-08-25  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67330
	* varasm.c (declare_weak): Return after giving an error.

2015-08-25  David Malcolm  <dmalcolm@redhat.com>

	* gcc-main.c (main): Add params to driver ctor.
	* gcc.c (class env_manager): New.
	(env): New global.
	(env_manager::init): New.
	(env_manager::get): New.
	(env_manager::xput): New.
	(env_manager::restore): New.
	Poison getenv and putenv.
	(DEFAULT_TARGET_SYSTEM_ROOT): New.
	(target_system_root): Update initialization to use
	DEFAULT_TARGET_SYSTEM_ROOT.
	(struct spec_list): Add field "default_ptr".
	(INIT_STATIC_SPEC): Initialize new field "default_ptr".
	(init_spec): Likewise.
	(set_spec): Clear field "default_ptr".
	(read_specs): Free "spec" and "buffer".
	(xputenv): Reimplement in terms of env_manager.
	(process_command): Replace ::getenv calls with calls to the
	env_manager singleton.
	(process_brace_body): Free string in three places.
	(driver::driver): New.
	(driver::~driver): New.
	(used_arg): Convert from a function to...
	(class used_arg_t): ...this class, and...
	(used_arg): ...this new global instance.
	(used_arg_t::finalize): New function.
	(getenv_spec_function): Add "const" to local "value".  Replace
	::getenv call with call to the env_manager singleton.
	(path_prefix_reset): New function.
	(driver::finalize): New function.
	* gcc.h (driver::driver): New.
	(driver::~driver): New.
	(driver::finalize): New.

2015-08-25  Nathan Sidwell  <nathan@acm.org>

	* optabs.c (emit_indirect_jump): Don't try an emit a jump if the
	target doesn't have one.

2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/67346
	* config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.

2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/67344
	* config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
	a define_insn, remove second alternative.

2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (struct switchstr): Expand comment.

2015-08-25  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
	(nvptx_reorg_subreg): Pass insn pattern to asm_operands.

2015-08-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/67306
	* genmatch.c (expr::gen_transform): Verify the result of
	builtin_decl_implicit.
	(dt_simplify::gen_1): Likewise.

2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/constraints.md: Also list Cs and US ARM-specific
	constraints as used.

2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66609
	* config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
	UNSPEC_PCREL.
	(nonpic_symbol_mentioned_p): Likewise.
	(sh_delegitimize_address): Likewise.
	(sh_function_ok_for_sibcall): Take into account weak symbols.
	(sh_expand_sym_label2reg): New.
	* config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
	* config/sh/sh.md (UNSPEC_PCREL): New enum.
	(call_pcrel): Use sh_expand_sym_label2reg.
	(call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
	(symPCREL_label2reg) New expand.

2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-poly.c: Change type of region from void* to sese.
	* graphite-poly.h (struct scop): Changing the type of scop::region
	from void* to sese. Change accessor macro accordingly.
	* graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.

2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>

	* graphite-scop-detection.c (stmt_simple_for_scop_p):
	Constrain only on INTEGER_TYPE.

2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/67211
	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
	-mefficient-unaligned-vsx on ISA 2.7.

	* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
	option to a masked option.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
	logic for -mefficient-unaligned-vsx so that it is set via an arch
	ISA option, instead of being set if -mtune=power8 is set. Move
	-mefficient-unaligned-vsx and -mallow-movmisalign handling to be
	near other default option handling.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* genflags.c (gen_macro): Delete.
	(gen_proto): Don't create GEN.*CALL.* macros.
	* gensupport.h (get_file_location): Declare.
	* gensupport.c (rtx_locs): New variable.
	(read_md_rtx): Record rtx locations.
	(get_file_location): New function.
	* target-insns.def (call, call_pop, call_value, call_value_pop)
	(sibcall, sibcall_value): New patterns.
	* gentarget-def.c (parse_argument): New function.
	(def_target_insn): Use it.  Handle optional operands.  Raise an
	error if an .md pattern has the wrong number of operands for the
	pattern name.  Remove the names of unused operands from the prototype.
	* builtins.c (expand_builtin_apply): Use targetm functions
	instead of HAVE_call_value and GEN_CALL_VALUE.
	* calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
	and sibcall_value_pop.
	* config/aarch64/aarch64.md (untyped_call): Use gen_call instead
	of GEN_CALL.
	* config/alpha/alpha.md (untyped_call): Likewise.
	* config/iq2000/iq2000.md (untyped_call): Likewise.
	* config/m68k/m68k.md (untyped_call): Likewise.
	* config/mips/mips.md (untyped_call): Likewise.
	* config/pa/pa.md (untyped_call): Likewise.
	* config/rs6000/rs6000.md (untyped_call): Likewise.
	* config/sparc/sparc.md (untyped_call): Likewise.
	* config/tilegx/tilegx.md (untyped_call): Likewise.
	* config/tilepro/tilepro.md (untyped_call): Likewise.
	* config/visium/visium.md (untyped_call): Likewise.
	* config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
	gen_call_value instead of GEN_CALL_VALUE.
	* config/arm/arm.md (untyped_call): Likewise.
	* config/cr16/cr16.c (cr16_function_arg): Remove reference to
	GEN_CALL.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
	(have_cbranchcc4): New variable.
	(cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
	(noce_get_condition): Use it instead of HAVE_cbranchcc4.
	(if_convert): Initialize have_cbranchcc4.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (expand_cmpstrn): Rename to...
	(expand_cmpstrn_or_cmpmem): ...this.
	(expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
	(expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
	Remove mode argument.
	(expand_builtin): Update accordingly.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
	(expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
	references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
	* config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
	Add predicates for operands 0 and 3.
	* config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
	operand.
	* config/sh/sh.md (cmpstrnsi): Change the length predicate from
	immediate_operand to nonmemory_operand.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* df-scan.c (df_insn_info_init_fields): New function, split out
	from...
	(df_insn_create_insn_record): ...here.
	(df_insn_info_free_fields): New function, split out from...
	(df_insn_info_delete): ...here.
	(df_insn_rescan): Use the new functions instead of freeing and
	reallocating the df_insn_info.

2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* doc/install.texi (Binaries): Remove links no longer valid.

2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Replace
	GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.

2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67329
	* config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.

2015-08-24  Renlin Li  <renlin.li@arm.com>

	* config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
	* config/arm/arm.c (arm_valid_symbolic_address_p): Define.
	* config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
	* config/arm/constraints.md ("j"): Add check for high code.

2015-08-24  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65468
	* omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
	chunk_size is one.

2015-08-24  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (walk_args_for_param): Revert previous
	change to nvptx_type_from_mode call. Use arg_promotion for both
	split and non-split args.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (movstr): New pattern.
	* builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
	(expand_movstr): Use targetm rather than HAVE_movstr/
	CODE_FOR_movstr.

2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
	cast syntax.

2015-08-24  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-tuning-flags.def: Remove all index to
	AARCH64_EXTRA_TUNING_OPTION.
	* config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
	New enum.
	(aarch64_extra_tuning_flags): Base the shifted value on the index
	instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
	* config/aarch64/aarch64.c: Remove the last argument to
	AARCH64_EXTRA_TUNING_OPTION.

2015-08-23  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
	decls.
	(nvptx_declare_function_name): Insert formatting tabs for
	consistency.

2015-08-23  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
	parm_decl, rather than generating a dummy default def in cfun.
	* tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
	ssa_name from cfun and child_fn do not share a stmt as def stmt.
	(move_stmt_op): Handle PARM_DECl.
	(gather_ssa_name_hash_map_from): New function.
	(move_sese_region_to_fn): Add default defs for function params, and add
	them to vars_map.  Release copied ssa names.
	* tree-cfg.h (gather_ssa_name_hash_map_from): Declare.

2015-08-23  Tom de Vries  <tom@codesourcery.com>

	* doc/sourcebuild.texi: Rename vect_no_int_max with
	vect_no_int_min_max.  Update description.

2015-08-22  Andrew Pinski  <apinski@cavium.com>

	 * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
	* config/aarch64/aarch64-protos.h
	(aarch64_fusion_pairs_index): New enum.
	(aarch64_fusion_pairs): Base the shifted value on the index instead
	Rewrite AARCH64_FUSE_ALL to be based on the end index.
	of the argument to AARCH64_FUSION_PAIR.
	* config/aarch64/aarch64.c: Remove the last argument to
	AARCH64_FUSION_PAIR.

2015-08-22  Mikhail Maltsev  <maltsevm@gmail.com>

	* dominance.c (new_zero_array): Define.
	(dom_info): Redefine as class with proper encapsulation.
	(dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
	Add new members.
	(dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
	allocations/deallocations.  Pass function as parameter (instead of
	using cfun).
	(dom_info::get_idom): Define accessor method.
	(dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
	link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
	(calculate_dominance_info): Adjust to use dom_info class.
	(verify_dominators): Likewise.

2015-08-21  Alexandre Oliva  <aoliva@redhat.com>

	* print-rtl.c (print_rtx): Check the correct range for
	flag_dump_unnumbered_links to behave as documented.

	PR rtl-optimization/67227
	PR rtl-optimization/64164
	* alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
	(nonoverlapping_memrefs_p): Test offsets and sizes when given
	identical gimple_reg exprs.

2015-08-21  Nathan Sidwell  <nathan@acm.org>

	* config/nvptx/nvptx.md (allocate_stack): Emit sorry during
	expansion.
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
	crtl->stack_alignment_needed to determine alignment.
	(nvptx_get_drap_rtx): New.
	(TARGET_GET_DRAP_RTX): Override.
	* config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.

2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.

2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* configure.ac: Remove uwin* cases.
	* config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
	i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
	i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
	i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
	* config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
	i[34567]86-*-uwin*, powerpc-*-beos*.

2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>

	* gencodes.c (gencodes): Print the comma for the preceding
	enum value rather than the current one.  Use aliased enum values
	rather than #defines for compiled-out patterns.
	(main): Update accordingly.  Replace LAST_INSN_CODE with
	NUM_INSN_CODES.
	* lra.c (insn_code_data): Update accordingly.
	(finish_insn_code_data_once, get_static_insn_data): Likewise.
	* recog.h (target_recog): Likewise.
	(preprocess_insn_constraints): Change parameter to unsigned int.
	* recog.c (preprocess_insn_constraints): Likewise.
	(recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
	* tree-vect-stmts.c (vectorizable_operation): Simplify.

2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR rtl-optimization/61657
	* loop-iv.c (iv_number_of_iterations): Declare up and down as
	unsigned.  Remove superflous uint64_t cast.

2014-08-21  Felix Yang  <felix.yang@huawei.com>
	    Jiji Jiang  <jiangjiji@huawei.com>

	* value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
	argument and get builtin function code directly from CALL.
	(gimple_stringop_fixed_value): Modified accordingly.
	(gimple_stringops_transform, gimple_stringops_values_to_profile):
	Modified accordingly and only accept BUILT_IN_NORMAL string operations.

2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390-builtins.def: Fix value range of vec_load_bndry.

2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
	to match.pd.
	Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
	Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
	Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
	Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
	Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
	Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
	Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
	Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
	Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
	Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.

	* match.pd (SIN ) : New Operator.
	(TAN) : New Operator.
	(mult (SQRT@1 @0) @1) : New simplifier.
	(mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
	(mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
	(mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
	(rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
	(rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
	(rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
	(rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
	(rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
	(rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
	(rdiv @0 (POW:s @1 @2)) : New simplifier.

2015-08-21  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
	loop if EXPR is simplified to const value.

2015-08-21  Yury Gribov  <y.gribov@samsung.com>

	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
	BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.

2015-08-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/67285
	* gimple-fold.c (replace_stmt_with_simplification): Assert
	seq is empty when replacing a call with itself but different
	arguments.
	* gimple-match-head.c (maybe_push_res_to_seq): When pushing
	a call require that it is const.

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (CONSTANT_ALIGNMENT): New macro definition.
	* builtins.c (get_object_alignment_2): Adjust.
	* varasm.c (align_variable): Likewise.
	(get_variable_align): Likewise.
	(build_constant_desc): Likewise.
	(force_const_mem): Likewise.
	* doc/tm.texi.in: Likewise.
	* doc/tm.texi: Regenerate.

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_cc0.
	* recog.c (rest_of_handle_peephole2): Adjust.

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c (relax_delay_slots): Don't use #if to check value of
	HAVE_cc0.

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
	* targhooks.c (default_have_conditional_execution): Adjust.

2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (rtvec_all_equal_p): Declare.
	(const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
	* rtl.c (rtvec_all_equal_p): New function.
	* expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
	* config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
	(aarch64_simd_dup_constant): Use const_vec_duplicate_p.
	* config/arm/arm.c (neon_vdup_constant): Likewise.
	* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
	* config/tilegx/constraints.md (W, Y): Likewise.
	* config/tilepro/constraints.md (W, Y): Likewise.
	* config/spu/spu.c (spu_legitimate_constant_p): Likewise.
	(classify_immediate): Use unwrap_const_vec_duplicate.
	* config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
	(reg_or_v2s8bit_operand): Likewise.
	* config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
	(reg_or_v4s8bit_operand): Likewise.

2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.h (vec_pmsum_be): New #define.
	(vec_shasigma_be): New #define.
	* config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPMSUMD): Likewise.
	(VPMSUM): New BU_P8V_OVERLOAD_2.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
	entries for VEC_MADD and VEC_VPMSUM.

2015-08-20  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
	Multiply argument avr_n_flash by 64 to match unit of "KiB".
	(avr_pgm_check_var_decl): Same.

2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
	initialization of HFmode scalar type (float16_t) to...
	(arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
	code.

	(arm_init_builtins): Call arm_init_fp16_builtins earlier and always.

	* config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
	having an -mfp16-format.

2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/predicates.md (vector_all_ones_operand): Use
	CONSTM1_RTX to simplify definition.

2015-08-20  Richard Biener  <rguenther@suse.de>

	* toplev.c (compile_file): Remove loop calling late_global_decl
	on all symbols.
	* varpool.c (varpool_node::assemble_decl): Call late_global_decl
	on decls we assembled.

2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>

	* common/config/aarch64/aarch64-common.c
	(AARCH64_CPU_NAME_LENGTH): Delete.
	(aarch64_option_extension): New.
	(all_extensions): Likewise.
	(processor_name_to_arch): Likewise.
	(arch_to_arch_name): Likewise.
	(all_cores): New.
	(all_architectures): Likewise.
	(aarch64_get_extension_string_for_isa_flags): Likewise.
	(aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
	architecture names.
	* config/aarch64/aarch64-protos.h
	(aarch64_get_extension_string_for_isa_flags): New.
	* config/aarch64/aarch64.c (aarch64_print_extension): Delete.
	(aarch64_option_print): Get the string to print from
	aarch64_get_extension_string_for_isa_flags.
	(aarch64_declare_function_name): Likewise.
	* config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
	(MCPU_TO_MARCH_SPEC): This.
	(ASM_CPU_SPEC): Use it.
	(BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
	(MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
	(EXTRA_SPEC_FUNCTIONS): Use it.

2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>

	* config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
	expansion when !ISA_HAS_LWL_LWR.
	(mips_block_move_straight): Update the size of elements copied to
	account for alignment when !ISA_HAS_LWL_LWR.
	* config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.

2015-08-19  Jiong Wang  <jiong.wang@arm.com>

	* expr.c (expand_expr_real_2): Check gimple statement during
	LSHIFT_EXPR expand.

2015-08-19  Magnus Granberg  <zorry@gentoo.org>

	* common.opt (fstack-protector): Initialize to -1.
	(fstack-protector-all): Likewise.
	(fstack-protector-strong): Likewise.
	(fstack-protector-explicit): Likewise.
	* configure.ac: Add --enable-default-ssp.
	* defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
	* opts.c (finish_options): Update opts->x_flag_stack_protect if it is
	-1.
	* doc/install.texi: Document --enable-default-ssp.
	* config.in: Regenerated.
	* configure: Likewise.

2015-08-19  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/64164
	* cfgexpand.c (parm_maybe_byref_p): Renamed to...
	(parm_in_stack_slot_p): ... this.  Disregard mode, what
	matters is whether the parm will live in a pseudo or a stack
	slot.
	(expand_one_ssa_partition): Deal with params without a default
	def.  Disregard mode.
	* cfgexpand.h: Renamed function declaration.
	* tree-ssa-coalesce.c: Adjust.
	* function.c (split_complex_args): Allocate stack slot for
	unassigned parms before splitting.
	(parm_in_unassigned_mem_p): New.  Use it instead of
	parm_maybe_byref_p throughout this file.
	(assign_parm_setup_block): Use it.  Accept pseudos in the
	expand-assigned rtl.
	(assign_parm_setup_reg): Drop BLKmode requirement.
	(assign_parm_setup_stack): Allocate and fill in the address of
	unassigned MEM parms.

2015-08-19  David Sherwood  <david.sherwood@arm.com>

	* genmodes.c (emit_mode_unit_size_inline): New function.
	(emit_mode_unit_precision_inline): New function.
	(emit_insn_modes_h): Emit new #define.  Emit new functions.
	(emit_mode_unit_size): New function.
	(emit_mode_unit_precision): New function.
	(emit_mode_adjustments): Add mode_unit_size adjustments.
	(emit_insn_modes_c): Emit new arrays.
	* machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
	use new inline methods.

2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (bit_count): Delete prototype
	and definition.
	(aarch64_print_operand): Use popcount_hwi instead of the above.

2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-option-extensions.def: Delete obsolete
	comment.

2015-08-19  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67133
	* gimple-ssa-isolate-paths.c
	(insert_trap_and_remove_trailing_statements): Rename to ...
	(insert_trap): ... this.  Don't remove trailing statements; split
	block instead.
	(find_explicit_erroneous_behaviour): Don't remove all outgoing edges.

2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>

	PR other/67042
	* hwint.h (sext_hwi): Switch to unsigned for the left shift, and
	conditionalize the whole on __GNUC__.  Add fallback code
	depending neither on undefined nor implementation-defined behaviour.

2015-08-19  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
	whitespaces with tab.

2015-08-19  Florian Weimer  <fweimer@redhat.com>

	* prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
	Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
	* prj-proc.adb (Process.Process_Expression_Variable_Decl):
	Move Name_Ids instantiation to the Prj.Proc package, to avoid
	trampolines.

2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (bounds_check): Use %wd print format
	for HOST_WIDE_INT arguments.

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
	dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
	mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
	signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
	tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
	tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
	tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
	tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
	typedefs.

2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>

	* bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
	function.c, graphite-scop-detection.c, haifa-sched.c,
	ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
	tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
	varasm.c: Remove typedefs of structs.

2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* config/rs6000/altivec.h (vec_adde): New define.
	(vec_addec): Likewise.
	(vec_double): Likewise.
	(vec_bperm): Likewise.
	(vec_gb): Likewise.
	* config/rs6000/rs6000-builtin.def (ADDE): New
	BU_ALTIVEC_OVERLOAD_3.
	(ADDEC): Likewise.
	(DOUBLE): New BU_VSX_OVERLOAD_1.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
	entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
	ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
	VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
	ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
	ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
	ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
	P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
	and P8V_BUILTIN_VEC_VBPERMQ.

2015-08-18  Jason Merrill  <jason@redhat.com>

	* print-tree.c (print_node): Handle TREE_BINFO.

2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR middle-end/36757
	* builtins.c (expand_builtin_signbit): Add asserts to make sure
	we can expand BUILT_IN_SIGNBIT inline.
	* builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
	* doc/extend.texi: Document the type-generic __builtin_signbit.

2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/67218
	* simplify-rtx.c (exact_int_to_float_conversion_p): New function.
	(simplify_unary_operation_1): Use it.

2015-08-18  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67222
	* gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
	if the call isn't valid.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
	gimple_call_builtin_p.
	(call_may_clobber_ref_p_1): Likewise.
	(stmt_kills_ref_p): Likewise.

2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
	* config/mips/mips.c (mips_hard_regno_rename_ok): New function.
	(mips_hard_regno_scratch_ok): Likewise.
	(TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
	* config/mips/mips.h (HARD_REGNO_RENAME_OK): New.

2015-08-18  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
	(determine_value_range): Call refine_value_range_using_guard for
	each loop initial condition to improve value range.

2015-08-17  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.c: Remove include of fibheap.h.

2015-08-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67221
	* tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
	(sccvn_dom_walker::before_dom_children): Mark backedges of
	non-executable blocks as not executable.

2015-08-17  David Sherwood  <david.sherwood@arm.com>

	* config/arm/arm.c (neon_element_bits): Replace call to
	GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
	* config/arm/neon.md (neon_vget_lane<mode>): Likewise.
	(neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
	(neon_vdup_lane<mode>): Likewise.
	* config/i386/i386.c (ix86_expand_int_vcond): Likewise.
	(ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
	(expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
	* config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
	* config/spu/spu.c (arith_immediate_p): Likewise.
	* expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
	* expr.c (expand_expr_real_2): Likewise.
	* optabs.c (shift_amt_for_vec_perm_mask): Likewise.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	* tree-cfg.c (verify_gimple_assign_ternary): Likewise.
	* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
	New variable.
	* fold-const.c (fold_binary_loc): Replace call to
	GET_MODE_PRECISION (GET_MODE_INNER (m)) with
	GET_MODE_UNIT_PRECISION (m).

2015-08-17  Mike Stump  <mikestump@comcast.net>

	* config/arm/arm.c (arm_block_move_unaligned_straight):
	Emit normal move instead of unaligned load when source or destination
	are appropriately aligned.

2015-08-17  Richard Biener  <rguenther@suse.de>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/16107
	* match.pd (div (coss (op @0) : New simplifier.

2015-08-14  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/64164
	PR bootstrap/66978
	PR middle-end/66983
	PR rtl-optimization/67000
	PR middle-end/67034
	PR middle-end/67035
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Do not coalesce
	maybe-byref parms with SSA_NAMEs of other variables, or
	anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
	(ssa_default_def_partition): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(align_local_variable, add_stack_var): Support anonymous SSA
	names.
	(defer_stack_allocation): Likewise.  Declare earlier.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	Do no record deferred-allocation marker in
	SA.partition_to_pseudo.
	(expand_stack_vars): Adjust check for the marker in it.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c: Include stor-layout.h.
	(set_reg_attrs_for_parm): Handle NULL decl.
	(set_reg_attrs_for_decl_rtl): Take mode from expression if
	it's not a DECL.
	* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
	rather than its possibly-NULL DECL.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	(read_complex_part): Export.
	* expr.h (read_complex_part): Declare.
	* cfgexpand.h (parm_maybe_byref_p): Declare.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(split_complex_args): Take assign_parm_data_all argument.
	Pass it to rtl_for_parm.  Set up rtl and context for split
	args.  Reset complex parm before fetching its default decl
	rtl.
	(assign_parms_unsplit_complex): Use the default-def complex
	parm rtl if it matches the components.
	(assign_parms_augmented_arg_list): Adjust.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.  Recognize split complex args.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location, and
	fill in its address if the memory location of a maybe-byref
	parm was not assigned by cfgexpand.
	(assign_parm_setup_reg): Likewise.  Adjust its mode as
	needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
	sure passed_pointer parms don't need conversion.  Copy address
	or value as needed.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
	to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* stor-layout.c (layout_decl): Don't set mem attributes of
	non-MEMs.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.

2015-08-14  Marek Polacek  <polacek@redhat.com>

	* tree-core.h (tree_base): Fix typo.

2015-08-14  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67133
	* gimple.c (infer_nonnull_range_by_attribute): Check that the
	nonnull argument position is not outside function arguments.

2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/67143
	* config/aarch64/atomics.md (atomic_<optab><mode>): Replace
	'lconst_atomic' with 'const_atomic'.
	(atomic_fetch_<optab><mode>): Likewise.
	(atomic_<optab>_fetch<mode>): Likewise.
	* config/aarch64/iterators.md (lconst-atomic): Move below
	'const_atomic'.
	(const_atomic): New.

2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_option_override): Don't override
	debug options.
	* config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
	(DWARF2_DEBUGGING_INFO): Don't define.
	* debug.h (dwarf2_lineno_debug_hooks): Declare.
	* toplev.c (process_options): Add a case for it.
	* dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
	(dwarf2out_init): Skip most initializations if
	DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
	case.
	* defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
	DWARF2_LINENO_DEBUGGING_INFO.
	* opts.c (set_debug_level): Likewise.

2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/types.md (is_neon_type): Add missing types.

2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Add support
	for skylake.
	* config/i386/i386.c (PTA_SKYLAKE): New macros.
	(processor_alias_table): Add skylake description.
	(enum processor_model): Add skylake processor.
	(arch_names_table): Add skylake record.
	* doc/invoke.texi: Add skylake item.

2015-08-13  Andrew MacLeod  <amacleod@redhat.com>

	* ira-int.h: Include recog.h.
	* ira-build.c: Don't include recog.h.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* sched-deps.c: Likewise.
	* sel-sched.c: Likewise.
	* target-globals.c: Likewise.

2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/55035
	* reload1.c (elimination_costs_in_insn): Make it obvious to the
	compiler that the n_dups and n_operands loop bounds are invariant.

2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
	expressions in A and B.

2015-08-13  Richard Biener  <rguenther@suse.de>

	* tree.c (nonnull_arg_p): Move from ...
	* tree-vrp.c (nonnull_arg_p): ... here.
	* tree.h (nonnull_arg_p): Declare.
	* tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
	here, register ptr != 0 for nonnull_arg_p pointer arguments.
	Properly initialize static chain and by-reference result pointer.
	(run_scc_vn): Adjust.

2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
	TUNE_I6400.

2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_gen_atomic_cas): Declare.
	* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
	Choose appropriate instruction pattern for the target.
	(aarch64_gen_atomic_cas): New.
	* config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
	(atomic_compare_and_swap<mode>_1): Rename to
	aarch64_compare_and_swap<mode>.  Fix some indentation.
	(aarch64_compare_and_swap<mode>_lse): New.
	(aarch64_atomic_cas<mode>): New.

2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
	(TARGET_LSE): New.

2015-08-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67191
	* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
	assert we value-numbered last stmts operand because it can validly
	trigger for unreachable code.

2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/67103
	* ifcvt.c (noce_try_store_flag_constants): Move
	x = (-(test != 0) & (b - a)) + a transformation to...
	(noce_try_cmove): ... Here.  Try it if normal conditional
	move fails.

2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
	pseudo-processors.
	* config/mips/mips.md (processor): Remove w32 and w64.

2015-08-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66502
	PR tree-optimization/67167
	* tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
	backedge arguments.
	(vn_phi_lookup): Adjust.
	(vn_phi_insert): Likewise.
	(visit_phi): Prefer to value-number to another PHI node
	over value-numbering to a PHI argument.
	(init_scc_vn): Mark DFS back edges.

2015-08-13  Richard Biener  <rguenther@suse.de>

	* gimple.h (gcall::code_): New constant static member.
	(gcond::code_): Likewise.
	* gimple.c (gcall::code_): Define.
	(gcond::code_): Likewise.
	(is_a_helper <const gcond *>): Add.
	(gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
	and forward to a new gcall overload with less checking and a
	cheaper way to access the operand.
	(gimple_call_lhs_ptr): Likewise.
	(gimple_call_set_lhs): Likewise.
	(gimple_call_internal_p): Likewise.
	(gimple_call_with_bounds_p): Likewise.
	(gimple_call_set_with_bounds): Likewise.
	(gimple_call_internal_fn): Likewise.
	(gimple_call_set_ctrl_altering): Likewise.
	(gimple_call_ctrl_altering_p): Likewise.
	(gimple_call_fntype): Likewise.
	(gimple_call_fn): Likewise.
	(gimple_call_fn_ptr): Likewise.
	(gimple_call_set_fndecl): Likewise.
	(gimple_call_fndecl): Likewise.
	(gimple_call_chain): Likewise.
	(gimple_call_num_args): Likewise.
	(gimple_call_arg): Likewise.
	(gimple_call_arg_ptr): Likewise.
	(gimple_call_set_arg): Likewise.
	(gimple_call_noreturn_p): Likewise.
	(gimple_cond_code): Likewise.
	(gimple_cond_lhs): Likewise.
	(gimple_cond_rhs): Likewise.
	(gimple_has_lhs): Reduce checking.

2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/25529
	* match.pd (div (mult @0 @1) @1) : New simplifier.

2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/67071
	* config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
	predicate to allow construction of vector constants using the
	VSLDOI vector shift instruction.

	* config/rs6000/rs6000-protos.h (vspltis_shifted): Add
	declaration.

	* config/rs6000/rs6000.c (vspltis_shifted): New function to return
	the number of bytes to be shifted left and filled in with either
	all zero or all one bits.
	(gen_easy_altivec_constant): Call vsplitis_shifted if no other
	methods exist.
	(output_vec_const_move): On power8, generate XXLORC to generate
	a vector constant with all 1's. Do a split if we need to use a
	VSLDOI instruction.

	* config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
	properly test for the MSB.

	* config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
	vector constants that can be created with VSLDOI.

2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>

	revert:
	* compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
	gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
	ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
	omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
	tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
	tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
	tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
	vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous

2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/constraints.md (define_constraint "Y"): New
	constraint.
	* config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
	* config/xtensa/linux.h (ASM_SPEC): Likewise.
	* config/xtensa/predicates.md (move_operand): Match constants
	and symbols in the presence of TARGET_AUTO_LITPOOLS.
	* config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
	immediate references to TLS data.
	(xtensa_emit_move_sequence): Don't force constants to memory in
	the presence of TARGET_AUTO_LITPOOLS.
	(print_operand): Add 'y' format, same as default, but capable of
	printing SF mode constants as well.
	* config/xtensa/xtensa.md (movsi_internal, movhi_internal)
	(movsf_internal): Add movi pattern that loads literal.
	(movsf, movdf): Don't force constants to memory in the presence
	of TARGET_AUTO_LITPOOLS.
	(movdf_internal): Add 'Y' constraint.
	* config/xtensa/xtensa.opt (mauto-litpools): New option.
	* doc/invoke.text (Xtensa options): Document -mauto-litpools.

2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-fpus.def: Replace booleans with feature flags.
	Update comment.
	* config/arm/arm.c (ARM_FPU): Update macro.
	* config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
	(TARGET_FP16): Likewise.
	(TARGET_CRYPTO): Likewise.
	(TARGET_NEON): Likewise.
	(struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
	field features.

2015-08-12  Tom de Vries  <tom@codesourcery.com>

	PR other/67092
	PR other/67098
	* doc/install.texi: Remove --with_host_libstdcxx item.  Update
	--with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
	accordingly.  Mention default for --with-stage1-ldflags.

2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm.h (arm_fpu_feature_set): New.
	(ARM_FPU_FSET_HAS): New.
	(FPU_FL_NONE): New.
	(FPU_FL_NEON): New.
	(FPU_FL_FP16): New.
	(FPU_FL_CRYPTO): New.

2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
	after -mcmodel=large -fPIC sorry.

2015-08-12  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
	comparison operand order and commutative ternary op operand order.
	(sccvn_dom_walker::cond_stack): New state to track temporary
	expressions.
	(sccvn_dom_walker::after_dom_children): Remove tempoary expressions
	no longer valid.
	(sccvn_dom_walker::record_cond): Add a single temporary conditional
	expression.
	(sccvn_dom_walker::record_conds): Add a temporary conditional
	expressions and all related expressions also true/false.
	(sccvn_dom_walker::before_dom_children): Record temporary
	expressions based on the controlling condition of a single
	predecessor.  When trying to simplify a conditional statement
	lookup expressions we might have inserted earlier.

2015-08-12  Yvan Roux  <yvan.roux@linaro.org>

	PR target/67127
	* config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
	to ARM core registers.

2015-08-12  Nathan Sidwell  <nathan@acm.org>

	* tree-vrp.c (simplify_min_or_max_using_ranges): New.
	(simplify_stmt_using_ranges): Simplify MIN and MAX exprs.

2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>

	* config/mips/mips.c (mips_store_data_bypass_p): Bring code into
	line with comments.
	* config/mips/sb1.md: Update usage of mips_store_data_bypass_p.

2015-08-12  Richard Biener  <rguenther@suse.de>

	* gimple.h (remove_pointer): New trait.
	(GIMPLE_CHECK2): New inline template function.
	(gassign::code_): New constant static member.
	(is_a_helper<const gassign *>): Add.
	(gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
	and forward to a new gassign overload with less checking and a
	cheaper way to access the operand.
	(gimple_assign_lhs_ptr): Likewise.
	(gimple_assign_set_lhs): Likewise.
	(gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
	Likewise.
	(gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
	Likewise.
	(gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
	Likewise.
	(gimple_assign_rhs_code): Likewise.
	* gimple.c (gassign::code_): Define.

2015-08-12  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Eliminate edges marked as not executable by SCCVN.
	* tree-ssa-sccvn.c: Include gimple-iterator.h.
	(cond_dom_walker): Rename to sccvn_dom_walker.
	(sccvn_dom_walker::before_dom_children): Value-number defs
	of all stmts.
	(run_scc_vn): Remove loop value-numbering all SSA names.
	Drop not visited SSA names to varying.

2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
	gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
	ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
	omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
	tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
	tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
	tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
	vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous

2015-08-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66954
	* config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
	to enum feature_priority and feature_list.
	(fold_builtin_cpu): Add F_PCLMUL to enum processor_features
	and isa_names_table.

2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-vect-stmts.c (vectorizable_shift): Add missed test on
	vect_induction_def.

2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/66098
	PR c/66711
	* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
	account when deciding what was the command-line status.

2015-08-11  Nathan Sidwell  <nathan@acm.org>

	* tree-vrp.c (simplify_abs_using_ranges): Simplify.

	* tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
	we're not the only contributor to target phi.

2015-08-11  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
	FIXED_REG0.

2015-08-11  Tom de Vries  <tom@codesourcery.com>

	* tree-cfg.c (move_sese_region_to_fn): Add todo comment.

2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (processor_alias_table): Replace CPU_KNL
	with CPU_SLM.
	* config/i386/i386.md (cpu): Remove knl.

2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/65742
	PR middle-end/66332
	* builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
	open-coded sequence.
	* omp-low.c (oacc_process_reduction_data): Remove handline of
	GOMP_DEVICE_HOST_NONSHM.

	* lto-streamer-in.c (lto_input_mode_table): Adjust to
	GET_MODE_INNER changes.

2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.

2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/options.texi (EnabledBy): Document that the argument must be
	a Common option.
	* doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
	Not enabled by -Wall.
	* optc-gen.awk: Give nicer error messages. Detect if the argument
	of EnabledBy is not a Common option.
	* common.opt (Wnull-dereference): Not enabled by -Wall.
	* opt-functions.awk (lang_enabled_by): Nicer error messages.

2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Treat
	model == 0x4f as Broadwell.

2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67028
	* combine.c (simplify_comparison): Fix comment.  Rearrange code.
	Add test to see if a const_int fits in the new mode.

2015-08-07  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.

2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/67029
	* ira-color.c: Include "recog.h" before including "ira-int.h".
	* target-globals.c: Likewise.
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
	adds an alternative_mask argument and use it instead of
	preferred_alternatives.
	* ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
	* ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
	* sched-deps.c: Include "ira-int.h" after including "ira.h".
	(sched_analyze_insn): Update call to
	ira_implicitly_set_insn_hard_regs.
	* sel-sched.c: Include "ira-int.h" after including "ira.h".
	(implicit_clobber_conflict_p): Update call to
	ira_implicitly_set_insn_hard_regs.

2015-08-06  Uros Bizjak  <ubizjak@gmail.com>

	* Makefile.in (.INTERMEDIATE): Add gpl.pod.

2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67002
	* config/sh/sh.c (sh_recog_treg_set_expr): Return false when
	currently_expanding_to_rtl is set.

2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>

	* configure.ac: Define LIBICONV_DEP with in-tree libiconv.
	* configure: Regenerate.

2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
	* config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_load_symref_appropriately): Invoke the new added pattern if
	possible.
	* config/aarch64/constraints.md (Uc0): New constraint.

2015-08-06  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/constraints.md (Usf): Add the test of
	aarch64_is_noplt_call_p.

2015-08-06  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
	declaration.
	* config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
	* config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
	(call_symbol): Likewise.

2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>

	* tree-vect-patterns.c (vect_recog_mult_pattern): New function
	for vectorizing multiplication patterns.
	* tree-vectorizer.h: Adjust the number of patterns.

2015-08-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_concatv2df): Declare added
	alternatives as sselog type.

2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
	all GPRs.

2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_tbegin): Expand either
	tbegin_1_z13 or tbegin_1 depending on VX flag.
	* config/s390/s390.md ("tbegin_1_z13"): New expander.

2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.opt: Clarify description for -mzvector
	* doc/invoke.texi: Add documentation for -mhtm, -mvx, and
	-mzvector.

2015-08-06  Richard Biener  <rguenther@suse.de>

	* gimple.h (gimple_call_set_fn): Access op member directly.
	(gimple_call_chain_ptr): Likewise.
	(gimple_call_set_chain): Likewise.
	(gimple_cond_lhs_ptr): Likewise.
	(gimple_cond_set_lhs): Likewise.
	(gimple_cond_rhs_ptr): Likewise.
	(gimple_cond_set_rhs): Likewise.
	(gimple_cond_true_label): Likewise.
	(gimple_cond_set_true_label): Likewise.
	(gimple_cond_set_false_label): Likewise.
	(gimple_cond_false_label): Likewise.
	(gimple_label_label): Likewise.
	(gimple_label_set_label): Likewise.
	(gimple_goto_set_dest): Likewise.
	(gimple_asm_input_op): Likewise.
	(gimple_asm_input_op_ptr): Likewise.
	(gimple_asm_set_input_op): Likewise.
	(gimple_asm_output_op): Likewise.
	(gimple_asm_output_op_ptr): Likewise.
	(gimple_asm_set_output_op): Likewise.
	(gimple_asm_clobber_op): Likewise.
	(gimple_asm_set_clobber_op): Likewise.
	(gimple_asm_label_op): Likewise.
	(gimple_asm_set_label_op): Likewise.
	(gimple_switch_index): Likewise.
	(gimple_switch_index_ptr): Likewise.
	(gimple_return_retval_ptr): Likewise.
	(gimple_return_retval): Likewise.
	(gimple_return_set_retval): Likewise.
	(gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
	(gimple_switch_label): Likewise.
	(gimple_switch_set_label): Likewise.

2015-08-06  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
	bool comparison canonicalization and restrict to integers.

2015-08-05  Andrew MacLeod  <amacleod@redhat.com>

	* coretypes.h (enum symbol_visibility): Relocate here.
	* flag-types.h (enum symbol_visibility): Remove.
	* tree-core.h (enum symbol_visibility): Remove.

2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>

	PR target/66870
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Check
	for no_split_stack function attribute along with
	flag_split_stack.
	(rs6000_expand_split_stack_prologue): Likewise.

2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jeff Law  <law@redhat.com>

	PR c/16351
	* doc/invoke.texi (Wnull-dereference): New.
	* tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
	Warn for potential NULL dereferences.
	(find_explicit_erroneous_behaviour): Warn for NULL dereferences.
	* ubsan.c (instrument_nonnull_arg): Call
	infer_nonnull_range_by_attribute.
	(instrument_nonnull_return): Likewise.
	* common.opt (Wnull-dereference); New.
	* gimple.c (infer_nonnull_range): Remove bool arguments.
	(infer_nonnull_range_by_dereference): New.
	(infer_nonnull_range_by_attribute): New.
	* gimple.h: Update declarations.

2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.c (sequence_num): Replace with...
	(insn_sequence_num, split_sequence_num, peephole2_sequence_num):
	...these new variables.
	(init_rtx_reader_args_cb): Update accordingly.
	(get_num_code_insns): Likewise.
	(read_md_rtx): Rework to use a while loop and get_c_test.
	Use the new counters.  Remove redundant DEFINE_SUBST case.
	* genoutput.c (gen_split): Delete.
	(main): Don't call it.

2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.h (get_c_test): Declare.
	* gensupport.c (get_c_test): New function.
	* genconditions.c (main): Use it.
	* genrecog.c (validate_pattern): Likewise.
	(match_pattern_1): Likewise.  Remove c_test argument.
	(match_pattern): Update accordingly and remove c_test argument.
	(main): Update accordingly.

2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.h (get_num_insn_codes): Declare.
	* gensupport.c (get_num_insn_codes): New function.
	* genattrtab.c (optimize_attrs): Rename max_insn_code to
	num_insn_codes.
	(main): Likewise.  Use get_num_insn_codes.
	* gencodes.c (main): Remove "last" and use get_num_insn_codes.

2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/66311
	* wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
	is zero- rather than sign-extended.

2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (can_extend): Delete.

2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67121
	* tree-if-conv.c (combine_blocks): Clear range-info produced
	by stmts no longer executed conditionally.

2015-08-05  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
	to allow identical far pointers to remain.

2015-08-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/67120
	* match.pd: Compare address bases with == if they are decls
	or SSA names, not operand_equal_p.  Otherwise fail.

2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67055
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
	NULL gimple_block.

	* g++.dg/torture/pr67055.C: New testcase.

2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
	noavx512vl.
	(define_attr "enabled"): Handle avx521vl and noavx512vl.
	* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
	AVX-512 alternative out of SSE.
	(define_insn "*vec_concatv2df"): Ditto.

2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
	CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
	CODE_FOR_avx_ptestv4di.
	* config/i386/sse.md (define_mode_iterator V_AVX): New.
	(define_mode_attr sse4_1): Extend to other 128/256-bit modes.
	(define_insn "avx_ptest256"): Merge this ...
	(define_insn "sse4_1_ptest"): And this ...
	(define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.

2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67109
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Check
	against too big groups.  Print whether this is a load or store
	group.  Rename from ...
	(vect_analyze_group_access): ... this which is now a wrapper
	dissolving an invalid group.
	(vect_analyze_data_ref_accesses): Print whether this is a load
	or store group.

2015-08-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/67107
	* match.pd: Guard const_binop result checking against NULL_TREE
	result.

2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* cse.c (cse_insn): Restoring old behaviour for src_eqv
	 when dest and value in the REG_EQUAL are same and dest
	 is STRICT_LOW_PART.

2015-08-04  Anatoly Sokolov  <aesok@post.ru>

	* config/moxie/moxie.h (PRINT_OPERAND,
	  PRINT_OPERAND_ADDRESS): Remove macros.
	* config/moxie/moxie-protos.h (moxie_print_operand,
	  moxie_print_operand_address): Remove declaration.
	* config/moxie/moxie.c (TARGET_PRINT_OPERAND,
	  TARGET_PRINT_OPERAND_ADDRESS): Define.
	  (moxie_print_operand, moxie_print_operand_address): Make static.

2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
	(aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.

2015-08-04  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
	generated code.
	(dt_operand::gen_gimple_expr): Adjust.

2015-08-04  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
	bool compares on RHS.
	* match.pd: Add X ==/!= !X is false/true pattern.

2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>

	* config/aarch64/aarch64.c: Change inner loop statement cost
	to be consistent with other targets.

2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
	targets.

2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
	(machine_function): Remove pseudos field.

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

	* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
	Exit early and use target_option_current_node if processing current
	pragma.

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

	* doc/extend.texi (AArch64 Function Attributes): New node.
	(AArch64 Pragmas): Likewise.

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

	* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
	Initialize simd builtins if TARGET_SIMD.
	* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
	Make sure that the builtins are initialized only once no matter how
	many times the function is called.
	(aarch64_init_builtins): Unconditionally initialize crc builtins.
	(aarch64_relayout_simd_param): New function.
	(aarch64_simd_expand_args): Use above during argument expansion.
	* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
	simd builtins if TARGET_SIMD.
	* config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
	prototype.
	(aarch64_relayout_simd_types): Likewise.

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

	* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
	* config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
	(TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
	* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
	static keyword.
	(aarch64_reset_previous_fndecl): New function.
	(aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
	the string.
	* config/aarch64/aarch64-c.c: New file.
	* config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
	Push and pop options at beginning and end.  Remove ifdef
	__ARM_FEATURE_CRC32.
	* config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
	Add pragma +nothing+simd and +nothing+crypto where appropriate.
	* config/aarch64/t-aarch64 (aarch64-c.o): New rule.
	* config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
	Define prototype.
	(aarch64_register_pragmas): Likewise.
	(aarch64_reset_previous_fndecl): Likewise.
	(aarch64_process_target_attr): Likewise.
	(aarch64_override_options_internal): Likewise.

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

	* config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
	New function.
	(aarch64_can_inline_p): Likewise.
	(TARGET_CAN_INLINE_P): Define.

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

	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
	Remove static.  Handle OPT_mgeneral_regs_only,
	OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
	OPT_momit_leaf_frame_pointer.
	* config/aarch64/aarch64.c: Include opts.h and diagnostic.h
	(aarch64_attr_opt_type): New enum.
	(aarch64_attribute_info): New struct.
	(aarch64_handle_attr_arch): New function.
	(aarch64_handle_attr_cpu): Likewise.
	(aarch64_handle_attr_tune): Likewise.
	(aarch64_handle_attr_isa_flags): Likewise.
	(aarch64_attributes): New table.
	(aarch64_process_one_target_attr): New function.
	(num_occurences_in_str): Likewise.
	(aarch64_process_target_attr): Likewise.
	(aarch64_option_valid_attribute_p): Likewise.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
	* config/aarch64/aarch64-protos.h: Include input.h
	(aarch64_handle_option): Declare prototype.

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

	* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
	* config/aarch64/aarch64.c: Include target-globals.h
	(aarch64_previous_fndecl): New variable.
	(aarch64_set_current_function): New function.
	(TARGET_SET_CURRENT_FUNCTION): Define.

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

	* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
	(explicit_arch): Likewise.
	(x_aarch64_isa_flags): Likewise.
	(mgeneral-regs-only): Mark as Save.
	(mfix-cortex-a53-835769): Likewise.
	(mcmodel=): Likewise.
	(mstrict-align): Likewise.
	(momit-leaf-frame-pointer): Likewise.
	(mtls-dialect): Likewise.
	(master=): Likewise.
	* config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
	(aarch64_isa_flags): Remove extern declaration.
	* config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
	to indicate success or failure.
	(aarch64_validate_march): Likewise.
	(aarch64_validate_mtune): Likewise.
	(aarch64_isa_flags): Delete.
	(aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
	instead of aarch64_isa_flags.
	(aarch64_get_tune_cpu): New function.
	(aarch64_get_arch): Likewise.
	(aarch64_override_options): Use above and set up explicit_tune_core
	and explicit_arch.
	(aarch64_print_extension): Move earlier in file.  Add isa_flags
	argument and use that instead of the global aarch64_isa_flags.
	(aarch64_option_save): New function.
	(aarch64_option_restore): Likewise.
	(aarch64_option_print): Likewise.
	(aarch64_declare_function_name): Likewise.
	(aarch64_start_file): Delete.
	(TARGET_ASM_FILE_START): Do not define.
	(TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
	* config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
	Declare prototype.

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

	* config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
	flag_omit_leaf_frame_pointer to 2.

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

	* config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
	define to 0 or 1.
	(TARGET_FIX_ERR_A53_835769): New macro.
	* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
	handling of opts->x_aarch64_fix_a53_err835769.
	(aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
	than aarch64_fix_a53_err835769.
	* config/aarch64/aarch64-elf-raw.h: Update for above changes.
	* config/aarch64/aarch64-linux.h: Likewise.

2015-08-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_int_movcc): Check result of
	ix86_expand_int_movcc as boolean.

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

	* config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
	(aarch64_cpu_string): Likewise.
	(aarch64_tune_string): Likewise.
	* config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
	(aarch64_parse_extension): Return aarch64_parse_opt_result.
	Add extra argument to put result into.
	(aarch64_parse_arch): Likewise.  Do not set selected_cpu.
	(aarch64_parse_cpu): Add arguments to put results into. Return
	aarch64_parse_opt_result.
	(aarch64_parse_tune): Likewise.
	(aarch64_override_options_after_change_1): New function.
	(aarch64_override_options_internal): New function.
	(aarch64_validate_mcpu): Likewise.
	(aarch64_validate_march): Likewise.
	(aarch64_validate_mtune): Likewise.
	(aarch64_override_options): Update to reflect above changes.
	Move some logic into aarch64_override_options_internal.
	Initialize target_option_default_node and target_option_current_node.
	(aarch64_override_options_after_change): Move logic into
	aarch64_override_options_after_change_1 and call it with global_options.
	(initialize_aarch64_code_model): Take a gcc_options pointer and use the
	flag values from that.

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

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_ARCH_8A directly rather than with cpp_define_formatted.
	* config/aarch64/aarch64.c (struct processor): Add arch field.
	(all_architectures): Handle above, move above all_cores.
	(all_cores): Handle above.
	(aarch64_parse_arch): Handle above changes.
	* config/aarch64/aarch64-arches.def (armv8-a): Extend according to
	above.  Update comments.
	(armv8.1-a): Likewise.
	* config/aarch64/aarch64-cores.def: Update according to above.
	* config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
	* config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
	aarch64_arch_driver_info.

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

	* config/aarch64/aarch64.c (struct processor): Add ident field.
	Rename core sched_core.
	(all_cores): Handle above changes.
	(all_architectures): Likewise.
	(aarch64_parse_arch): Likewise.
	(aarch64_override_options): Likewise.

2015-08-04  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
	dispatching to fold_binary for GIMPLE_BINARY_RHS and for
	comparisons embedded in [VEC_]COND_EXPRs.

2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>

	* tree-if-conv.c: Fix various typos in comments.
	* tree-vect-stmts.c: Likewise.

2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/67043
	* loop-invariant.c (move_invariant_reg): Recompute luids in loop
	preheader after hoisting invariant in it.
	(find_defs): Force recomputation of all luids.

2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/htm.md (tabort.): Restrict the source operand to
	using a base register.

2015-08-03  David Malcolm  <dmalcolm@redhat.com>

	* main.c (main): Pass in NULL for toplev's external_timer.
	* timevar.c: Include coretypes.h.
	(class timer::named_items): New.
	(timer::named_items::named_items): New.
	(timer::named_items::~named_items): New.
	(timer::named_items::push): New.
	(timer::named_items::pop): New.
	(timer::named_items::print): New.
	(timer::timer): Initialize field "m_jit_client_items".
	(timer::~timer): New.
	(timer::push): Move bulk of implementation to...
	(timer::push_internal): ...here.  New function.
	(timer::pop): Move bulk of implementation to...
	(timer::pop_internal): ...here.  New function.
	(timer::push_client_item): New.
	(timer::pop_client_item): New.
	(timer::print_row): New function, taken from timer::print.
	(timer::print): Print "GCC items" header if we also have client
	items.  Move row-printing to timer::print_row.  Print any client
	items.
	(timer::get_topmost_item_name): New method.
	* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
	(TV_JIT_CLIENT_CODE): New.
	* timevar.h (timer::push_client_item): New declaration.
	(timer::pop_client_item): New declaration.
	(timer::get_topmost_item_name): New method.
	(timer::push_internal): New declaration.
	(timer::pop_internal): New declaration.
	(timer::print_row): New declaration.
	(timer::named_items): New declaration.
	(timer::m_jit_client_items): New field.
	(timer): Add friend class named_items.
	(auto_timevar::auto_timevar): Add timer param.
	(auto_timevar::~auto_timevar): Use field "m_timer".
	(auto_timevar::m_timer): New field.
	* toplev.c (initialize_rtl): Add g_timer as param when
	constructing auto_timevar instance.
	(toplev::toplev): Add "external_timer" param, and use it to
	initialize the "g_timer" global if non-NULL.
	(toplev::~toplev): If this created "g_timer", delete it.
	* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
	with "external_timer" timer *.

2015-08-03  Alexander Basov  <coohpt@gmail.com>

	PR middle-end/64744
	PR middle-end/48470
	PR middle-end/43404
	* cfgexpand.c (expand_one_var): Add check if stack is going to
	be used in naked function.
	* expr.c (expand_expr_addr_expr_1): Remove excess checking
	whether expression should not reside in MEM.
	* function.c (use_register_for_decl): Do not use registers for
	non-register things (volatile, float, BLKMode) in naked functions.

2015-08-03  John David Anglin  <danglin@gcc.gnu.org>

	PR target/67060
	* config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
	Adjust splits to match new pattern.

2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
	(VEC_M): Likewise.
	(VEC_N): Likewise.
	(mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
	point in VSX registers.

	* config/rs6000/constraints.md (wb constraint): Document unused
	w<x> constraint.
	(we constraint): Likewise.
	(wo constraint): Likewise.
	(wp constraint): New constraint for IEEE 128-bit floating point in
	VSX registers.
	(wq constraint): Likewise.

	* config/rs6000/predicates.md (easy_fp_constant): Add support for
	IEEE 128-bit floating point in VSX registers.
	(easy_scalar_constant): Likewise.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
	constraints (wp, wq) for IEEE 128-bit floating point in VSX
	registers.
	(rs6000_init_hard_regno_mode_ok): Likewise.

	* config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
	floating point in VSX registers.
	(VSX_L): Likewise.
	(VSX_M): Likewise.
	(VSX_M2): Likewise.
	(VSm): Likewise.
	(VSs): Likewise.
	(VSr): Likewise.
	(VSa): Likewise.
	(VSv): Likewise.
	(vsx_le_permute_<mode>): Add support to properly swap bytes for
	IEEE 128-bit floating point in VSX registers on little endian.
	(vsx_le_undo_permute_<mode>): Likewise.
	(vsx_le_perm_load_<mode>): Likewise.
	(vsx_le_perm_store_<mode>): Likewise.
	(splitters for IEEE 128-bit fp moves): Likewise.

	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
	wq constraints.

	* config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
	floating point in VSX registers.
	(VM2): Likewise.

	* doc/md.text (Machine Constraints): Document wp and wq
	constraints on PowerPC.

2015-08-03  Jeff Law  <law@redhat.com>

	PR middle-end/66314
	PR gcov-profile/66899
	* tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
	iterate over the jump threading paths when an element in the
	jump threading paths array is eliminated.

2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>

	* Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.

2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>

	* tree-ssa-uninit.c (find_uninit_use): Declare and pass to
	is_use_properly_guarded the variable def_preds.  Free its
	contents before returning.
	(prune_uninit_phi_opnds_in_unrealizable_paths): Same.
	(is_use_properly_guarded): Replace local variable def_preds with
	a parameter.  Adjust accordingly.  Only update *def_preds if it's
	the empty vector.

2015-08-03  Richard Biener  <rguenther@suse.de>

	* genmatch.c (simplify::for_subst_vec): New member.
	(binary_ok): New helper for for lowering.
	(lower_for): Delay substituting operators into result expressions
	if we can merge the results eventually again.
	(capture_info::walk_result): Adjust for user_id appearing as
	result expression operator.
	(expr::gen_transform): Likewise.
	(dt_simplify::gen_1): Likewise.
	(dt_simplify::gen): Pass not substituted operators to tail
	functions or initialize local variable with it.
	(decision_tree::gen): Adjust function signature.
	* match.pd: Fix tests against global code and add default
	cases to switch stmts.

2015-08-03  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_simplify::gen): Create captures array
	with an initializer.

2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Set aliasing_flags to -fno-strict-aliasing if
	the host compiler is affected by placement new aliasing bug.
	* configure: Regenerate.
	* Makefile.in (ALIASING_FLAGS): New variable.
	(ALL_CXXFLAGS): Add $(ALIASING_FLAGS).

2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
	(negmulsf3_vfp): Likewise.
	(muldf3negdf_vfp): Disable for -frounding-math.
	(mulsf3negsf_vfp): Likewise.
	* config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
	fix MULT cost with -frounding-math.

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

	* ifcvt.c (noce_try_store_flag_constants): Make logic of the case
	when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
	explicit.  Prefer to add the flag whenever possible.
	(noce_process_if_block): Try noce_try_store_flag_constants before
	noce_try_cmove.

2015-08-03  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
	New hash-map to record equivalent transforms.
	(dt_node::analyze): Populate the equivalent transforms hash-map.
	(dt_simplify::info): Add reference to hash-map entry.
	(dt_simplify::gen): If we have split out a function for the
	transform, generate a call to it.
	(sinfo_hashmap_traits::hash): New function.
	(compare_op): New helper function for ...
	(sinfo_hashmap_traits::equal_keys): ... this new function.
	(decision_tree::gen): Split out common equivalent transforms
	into functions.

2015-08-03  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_assign): Remove folding of
	the comparison in COND_EXPRs.

2015-08-03  Richard Biener  <rguenther@suse.de>

	* gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
	on the rhs of assignments first simplify the embedded
	GENERIC condition.

2015-08-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66917
	* tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
	field.
	(DR_VECT_AUX): New macro.
	(set_dr_misalignment): Adjust.
	(dr_misalignment): Likewise.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
	Compute whether the base is at least element aligned.
	* tree-vect-stmts.c (ensure_base_align): Adjust.
	(vectorizable_store): If the base is not element aligned
	preserve alignment of the original access if misalignment is unknown.
	(vectorizable_load): Likewise.

2015-08-02  Martin Sebor  <msebor@redhat.com>

	* doc/invoke.texi (Wframe-address): Document it.
	* doc/extend.texi (__builtin_frame_address, __builtin_return_address):
	Clarify possible effects of calling the functions with non-zero
	arguments and mention -Wframe-address.
	* builtins.c (expand_builtin_frame_address): Handle -Wframe-address.

2015-08-01  Michael Collison  <michael.collison@linaro.org
	    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/arm.md (*arm_smin_cmp): New pattern.
	(*arm_umin_cmp): Likewise.

2015-08-01  Caroline Tice  <cmtice@google.com>

	PR 66521
	* vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
	global variables.
	(vtbl_find_mangled_name):  New function.
	(vtbl_register_mangled_name):  New function.
	(vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
	mangled name in mangled name vectors.
	(find_or_create_vtbl_map_node):  Ditto.
	(var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
	update recursion_depth on function entry; pass it to every recursive
	call; automatically exit if depth > 25 (give up looking at that point).
	(verify_bb_vtables):  Initialize recursion_depth and pass it to
	var_is_used_for_virtual_call_p.
	* vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
	global variable decls.
	(vtbl_register_mangled_name): New extern function decl.

2015-08-01  Tom de Vries  <tom@codesourcery.com>

	* tree.c (operation_can_overflow, operation_no_trapping_overflow): New
	function.
	* tree.h (operation_can_overflow, operation_no_trapping_overflow):
	Declare.
	* tree-vect-loop.c (vect_is_simple_reduction_1): Use
	operation_no_trapping_overflow.  Allow non-overflow operations.
	* graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
	operations.

2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67049
	* config/sh/sh.md (GOTaddr2picreg): Fix typo.

2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
	Enable for TARGET_32BIT.
	(*if_move_neg): Likewise.

2015-07-31  Nick Clifton  <nickc@redhat.com>

	* config/m32r/m32r.c (m32r_attribute_identifier): New function.
	Returns true for __model__.
	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.

2015-07-31  Alan Modra  <amodra@gmail.com>

	PR target/66870
	* config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
	(rs6000_emit_prologue): Set it.
	(rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.

2015-07-31  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
	-> X == (C1 ^ C2) which is already implemented in match.pd.
	Remove redundant dispatching to fold_relational_const.
	Move unordered self and NaN compares ...
	* match.pd: ... as patterns here.  Remove some stray captures
	and add a comment.

2015-07-31  Petr Murzin  <petr.murzin@intel.com>

	* config/i386/i386.c
	(bdesc_special_args): Convert mask type from signed to unsigned for
	masked builtins.
	(ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
	UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
	V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
	V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
	V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
	V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
	V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
	V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
	V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
	HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
	V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
	V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
	V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
	V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
	V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
	V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
	V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
	V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
	V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
	V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
	V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
	HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
	VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
	V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
	* config/i386/i386-builtin-types.def
	(V16QI_FTYPE_V16SI): Remove.
	(V8DF_FTYPE_V8SI): Ditto.
	(V8HI_FTYPE_V8DI): Ditto.
	(V8SI_FTYPE_V8DI): Ditto.
	(V8SF_FTYPE_V8DF): Ditto.
	(V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
	(V16HI_FTYPE_V16SI): Ditto.
	(V16SF_FTYPE_V16HI): Ditto.
	(V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SI): Ditto.
	(V4DI_FTYPE_V4DI): Ditto.
	(V16SI_FTYPE_V16SF): Ditto.
	(V16SF_FTYPE_FLOAT): Ditto.
	(V8DF_FTYPE_DOUBLE): Ditto.
	(V8DI_FTYPE_INT64): Ditto.
	(V8DI_FTYPE_V4DI): Ditto.
	(V16QI_FTYPE_V8DI): Ditto.
	(UINT_FTYPE_V4SF): Ditto.
	(UINT64_FTYPE_V4SF): Ditto.
	(UINT_FTYPE_V2DF): Ditto.
	(UINT64_FTYPE_V2DF): Ditto.
	(V16SI_FTYPE_V16SI): Ditto.
	(V8DI_FTYPE_V8DI): Ditto.
	(V16SI_FTYPE_PV4SI): Ditto.
	(V16SF_FTYPE_PV4SF): Ditto.
	(V8DI_FTYPE_PV2DI): Ditto.
	(V8DF_FTYPE_PV2DF): Ditto.
	(V4DI_FTYPE_PV2DI): Ditto.
	(V4DF_FTYPE_PV2DF): Ditto.
	(V16SI_FTYPE_PV2SI): Ditto.
	(V16SF_FTYPE_PV2SF): Ditto.
	(V8DI_FTYPE_PV4DI): Ditto.
	(V8DF_FTYPE_PV4DF): Ditto.
	(V8SF_FTYPE_FLOAT): Ditto.
	(V4SF_FTYPE_FLOAT): Ditto.
	(V4DF_FTYPE_DOUBLE): Ditto.
	(V8SF_FTYPE_PV4SF): Ditto.
	(V8SI_FTYPE_PV4SI): Ditto.
	(V4SI_FTYPE_PV2SI): Ditto.
	(V8SF_FTYPE_PV2SF): Ditto.
	(V8SI_FTYPE_PV2SI): Ditto.
	(V16SF_FTYPE_PV8SF): Ditto.
	(V16SI_FTYPE_PV8SI): Ditto.
	(V8DI_FTYPE_V8SF): Ditto.
	(V4DI_FTYPE_V4SF): Ditto.
	(V2DI_FTYPE_V4SF): Ditto.
	(V64QI_FTYPE_QI): Ditto.
	(V32HI_FTYPE_HI): Ditto.
	(V8UHI_FTYPE_V8UHI): Ditto.
	(V16UHI_FTYPE_V16UHI): Ditto.
	(V32UHI_FTYPE_V32UHI): Ditto.
	(V2UDI_FTYPE_V2UDI): Ditto.
	(V4UDI_FTYPE_V4UDI): Ditto.
	(V8UDI_FTYPE_V8UDI): Ditto.
	(V4USI_FTYPE_V4USI): Ditto.
	(V8USI_FTYPE_V8USI): Ditto.
	(V16USI_FTYPE_V16USI): Ditto.
	(V2DF_FTYPE_V2DF_UINT64): Ditto.
	(V2DI_FTYPE_V2DF_V2DF): Ditto.
	(V2UDI_FTYPE_V4USI_V4USI): Ditto.
	(V8DF_FTYPE_V8DF_V8DI): Ditto.
	(V4SF_FTYPE_V4SF_UINT64): Ditto.
	(V4SI_FTYPE_V4SF_V4SF): Ditto.
	(V16SF_FTYPE_V16SF_V16SI): Ditto.
	(V64QI_FTYPE_V32HI_V32HI): Ditto.
	(V32HI_FTYPE_V16SI_V16SI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
	(V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI): Ditto.
	(V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
	(V16SI_FTYPE_V16SI_V4SI): Ditto.
	(V16SI_FTYPE_V16SI_V16SI): Ditto.
	(V16SI_FTYPE_V32HI_V32HI): Ditto.
	(V16SI_FTYPE_V16SI_SI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI): Ditto.
	(V4UDI_FTYPE_V8USI_V8USI): Ditto.
	(V8DI_FTYPE_V16SI_V16SI): Ditto.
	(V8DI_FTYPE_V8DI_V2DI): Ditto.
	(QI_FTYPE_QI): Ditto.
	(SI_FTYPE_SI): Ditto.
	(DI_FTYPE_DI): Ditto.
	(QI_FTYPE_QI_QI): Ditto.
	(QI_FTYPE_QI_INT): Ditto.
	(HI_FTYPE_HI_INT): Ditto.
	(SI_FTYPE_SI_INT): Ditto.
	(DI_FTYPE_DI_INT): Ditto.
	(HI_FTYPE_V16QI_V16QI): Ditto.
	(SI_FTYPE_V32QI_V32QI): Ditto.
	(DI_FTYPE_V64QI_V64QI): Ditto.
	(QI_FTYPE_V8HI_V8HI): Ditto.
	(HI_FTYPE_V16HI_V16HI): Ditto.
	(SI_FTYPE_V32HI_V32HI): Ditto.
	(QI_FTYPE_V4SI_V4SI): Ditto.
	(QI_FTYPE_V8SI_V8SI): Ditto.
	(QI_FTYPE_V2DI_V2DI): Ditto.
	(QI_FTYPE_V4DI_V4DI): Ditto.
	(QI_FTYPE_V8DI_V8DI): Ditto.
	(HI_FTYPE_V16SI_V16SI): Ditto.
	(HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
	(QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
	(HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
	(V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
	(V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
	(V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
	(V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
	(V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
	(V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
	(V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
	(V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
	(V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
	(V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
	(V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
	(V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
	(V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
	(V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
	(V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
	(V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
	(V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
	(V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
	(V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
	(V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
	(V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
	(V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
	(V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
	(V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
	(V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
	(VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
	(VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
	(V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
	(V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
	(V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
	(V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
	(V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
	(V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
	(V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
	(V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
	(V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
	(V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
	(V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
	(V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
	(V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
	(V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
	(V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
	(V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
	(PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
	(V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
	(V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
	(V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
	(V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
	(V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
	(V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
	(V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
	(V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
	(V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
	(V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
	(V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
	(V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
	(V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
	(V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
	(V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
	(V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
	(V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
	(V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
	(V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
	(V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
	(V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
	(V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
	(V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
	(V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
	(V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
	(V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
	(V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
	(V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
	(V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
	(V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
	(V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
	(V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
	(V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
	(V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
	(V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
	(HI_FTYPE_HI): Ditto.
	(HI_FTYPE_V16QI): Ditto.
	(SI_FTYPE_V32QI): Ditto.
	(DI_FTYPE_V64QI): Ditto.
	(QI_FTYPE_V8HI): Ditto.
	(HI_FTYPE_V16HI): Ditto.
	(SI_FTYPE_V32HI): Ditto.
	(QI_FTYPE_V4SI): Ditto.
	(QI_FTYPE_V8SI): Ditto.
	(HI_FTYPE_V16SI): Ditto.
	(QI_FTYPE_V2DI): Ditto.
	(QI_FTYPE_V4DI): Ditto.
	(QI_FTYPE_V8DI): Ditto.
	(V16QI_FTYPE_HI): Ditto.
	(V32QI_FTYPE_SI): Ditto.
	(V64QI_FTYPE_DI): Ditto.
	(V8HI_FTYPE_QI): Ditto.
	(V16HI_FTYPE_HI): Ditto.
	(V32HI_FTYPE_SI): Ditto.
	(V4SI_FTYPE_QI): Ditto.
	(V4SI_FTYPE_HI): Ditto.
	(V8SI_FTYPE_QI): Ditto.
	(V8SI_FTYPE_HI): Ditto.
	(V2DI_FTYPE_QI): Ditto.
	(V4DI_FTYPE_QI): Ditto.
	(HI_FTYPE_HI_HI): Ditto.
	(SI_FTYPE_SI_SI): Ditto.
	(DI_FTYPE_DI_DI): Ditto.
	(HI_FTYPE_V16QI_V16QI_HI): Ditto.
	(HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
	(SI_FTYPE_V32QI_V32QI_SI): Ditto.
	(SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
	(DI_FTYPE_V64QI_V64QI_DI): Ditto.
	(DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
	(QI_FTYPE_V8HI_V8HI_QI): Ditto.
	(QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
	(HI_FTYPE_V16HI_V16HI_HI): Ditto.
	(HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
	(SI_FTYPE_V32HI_V32HI_SI): Ditto.
	(SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
	(QI_FTYPE_V4SI_V4SI_QI): Ditto.
	(QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
	(QI_FTYPE_V8SI_V8SI_QI): Ditto.
	(QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
	(QI_FTYPE_V2DI_V2DI_QI): Ditto.
	(QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
	(QI_FTYPE_V4DI_V4DI_QI): Ditto.
	(QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
	(QI_FTYPE_V8DI_V8DI_QI): Ditto.
	(HI_FTYPE_V16SI_V16SI_HI): Ditto.
	(QI_FTYPE_V8DI_V8DI_INT): Ditto.
	(QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
	(HI_FTYPE_V16SI_V16SI_INT): Ditto.
	(HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
	(QI_FTYPE_V8DF_V8DF_INT): Ditto.
	(QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
	(HI_FTYPE_V16SF_V16SF_INT): Ditto.
	(HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
	(QI_FTYPE_V2DF_V2DF_INT): Ditto.
	(QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
	(QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
	(QI_FTYPE_V4SF_V4SF_INT): Ditto.
	(QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
	(QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
	(V16SI_FTYPE_HI): Ditto.
	(V8DI_FTYPE_QI): Ditto.
	(V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
	(V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
	(V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
	(V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
	(V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
	(V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
	(V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
	(V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
	(V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
	(V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
	(V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
	(V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
	(V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
	(V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
	(V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
	(V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
	(V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
	(V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
	(V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
	(V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
	(V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
	(V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
	(V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
	(V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
	(V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
	(V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
	(V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
	(V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
	(V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
	(V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
	(V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
	(V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
	(V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
	(V16SI_FTYPE_SI_V16SI_HI): Ditto.
	(V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
	(V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
	(V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
	(V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
	(V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
	(V8DI_FTYPE_DI_V8DI_QI): Ditto.
	(V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
	(V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
	(V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
	(V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
	(V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
	(V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
	(V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_SI_V8SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
	(V4SI_FTYPE_SI_V4SI_QI): Ditto.
	(V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_DI_V4DI_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
	(V2DI_FTYPE_DI_V2DI_QI): Ditto.
	(V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
	(V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
	(V64QI_FTYPE_QI_V64QI_DI): Ditto.
	(V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
	(V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
	(V32QI_FTYPE_QI_V32QI_SI): Ditto.
	(V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
	(V16QI_FTYPE_QI_V16QI_HI): Ditto.
	(V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
	(V32HI_FTYPE_HI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
	(V16HI_FTYPE_HI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
	(V8HI_FTYPE_HI_V8HI_QI): Ditto.
	(V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
	(V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
	(V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
	(V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
	(V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
	(V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
	(V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
	(V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
	(V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
	(V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
	(V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
	(V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
	(V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
	(V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
	(V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
	(V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
	(V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
	(V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
	(V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
	(V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
	(V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
	(V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
	(V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
	(V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
	(V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
	(V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
	(V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
	(V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
	(V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
	(V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
	(V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
	(V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
	(V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
	(V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
	(V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
	(VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
	(VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
	(VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
	(VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
	(VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
	(VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
	(VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
	(VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
	(VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
	(VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
	(VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
	(VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
	(VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
	(VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
	(VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
	(VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
	(VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
	(VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
	(VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
	(V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
	(V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
	(V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
	(V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
	(V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
	(V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
	(V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
	(V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
	(V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
	(V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
	(V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
	(V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
	(V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
	(V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
	(V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
	(V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
	(V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
	(V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
	(V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
	(V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
	(V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
	(V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
	(QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
	(QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
	(QI_FTYPE_V8DF_INT_QI): Ditto.
	(QI_FTYPE_V4DF_INT_QI): Ditto.
	(QI_FTYPE_V2DF_INT_QI): Ditto.
	(HI_FTYPE_V16SF_INT_HI): Ditto.
	(QI_FTYPE_V8SF_INT_QI): Ditto.
	(QI_FTYPE_V4SF_INT_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.

2015-07-31  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_assign): Remove folding of
	GIMPLE_BINARY_RHS.

2015-07-31  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66846
	* omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
	verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
	(expand_omp_target) [ENABLE_CHECKING]: Same.
	(execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
	cfun if !LOOPS_NEED_FIXUP.
	(expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
	that omp_for already has its own loop struct.
	* tree-parloops.c (create_phi_for_local_result)
	(create_call_for_reduction): Handle simple latch bb.
	(create_parallel_loop): Add simple latch bb to preserve
	LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
	(gen_parallel_loop): Remove call to cancel_loop_tree.
	(parallelize_loops): Skip loops that are inner loops of parallelized
	loops.
	(pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
	verify_loop_structure.

2015-07-30  Anatoly Sokolov  <aesok@post.ru>

	* config/v850/v850.h (LIBCALL_VALUE): Remove macros.
	* config/v850/v850.md (RV_REGNUM): New constants.
	* config/v850/v850.c (v850_libcall_value): New functions.
	(v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
	(TARGET_LIBCALL_VALUE): Define.

2015-07-30  Anatoly Sokolov  <aesok@post.ru>

	* rtl.h (lowpart_subreg): Move in file.
	* loop-iv.c (lowpart_subreg): Move to...
	* simplify-rtx.c (lowpart_subreg): ...here.
	  (simplify_binary_operation_1): Use lowpart_subreg instead of
	  simplify_gen_subreg.
	* expr.c (expand_expr_real_2): Ditto.
	* emit-rtl.c (gen_lowpart_common): Ditto.
	* combine.c (gen_lowpart_for_combine): Ditto.
	* cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
	  expand_debug_source_expr): Ditto.

2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>

	* builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
	(expand_builtin_atomic_clear): Remove support for atomic_clear
	pattern.

2015-07-30  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
	binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
	(fold_stmt_1): ... here and work on GIMPLE directly.  Remove
	redundant operand canonicalization.

2015-07-30  David Sherwood  <david.sherwood@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
	GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
	* config/arm/arm.c (neon_valid_immediate): Likewise.
	* config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
	(expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
	(expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
	(expand_vec_perm_vpshufb2_vpermq): Likewise.
	(expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
	(expand_vec_perm_vpshufb4_vpermq2): Likewise.
	* config/i386/sse.md
	(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
	(*ssse3_palignr<mode>_perm): Likewise.
	* config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
	* config/spu/spu.c (arith_immediate_p): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_binary_operation_1, simplify_ternary_operation): Likewise.

2015-07-30  Richard Biener  <rguenther@suse.de>

	* genmatch.c (decision_tree::gen_gimple): Merge with ...
	(decision_tree::gen_generic): ... this into ...
	(decision_tree::gen): ... this.
	(main): Adjust callers.

2015-07-30  Richard Biener  <rguenther@suse.de>

	* genmatch.c (verbose): New global.
	(warning_at): Add overload with source_location.
	(capture_info::capture_info): Add bool whether generating gimple
	or generic.  Add gimple member.
	(capture_info::cinfo): Add capture member.
	(capture_info::walk_match): Record capture.  Warn on
	non-captured leafs.
	(capture_info::walk_c_expr): Add more fragments captures cannot
	escape through.  Warn on escaped captures.
	(dt_simplify::gen_1): Warn on operands we force to have no
	side-effects.
	(main): Initialize verbose.
	* match.pd: Add integer_nonzerop and HONOR_NANS predicates.

2015-07-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/67053
	* match.pd: Allow both operands to independently have conversion
	when simplifying compares of addresses.

2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/66217
	PR target/67045
	* config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
	around those cases that need one.

2015-07-29  Aditya Kumar  <hiraditya@msn.com>

	* params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.

2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
	New.  Copied from config/i386/gnu-user.h.
	(ASM_COMMENT_START): Likewise.
	(DBX_REGISTER_NUMBER): Likewise.

2015-07-29  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_cond): Remove.
	(fold_stmt_1): Do not call it.

2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
	(aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.

	* config/aarch64/aarch64-modes.def: Add HFmode.

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.

	* config/aarch64/aarch64.c (aarch64_init_libfuncs,
	aarch64_promoted_type): New.

	(aarch64_float_const_representable_p): Disable HFmode.
	(aarch64_mangle_type): Mangle half-precision floats to "Dh".
	(TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
	(TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.

	* config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
	(movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.

	* config/aarch64/iterators.md (GPF_F16): New.

2015-07-29  Richard Biener  <rguenther@suse.de>

	* match.pd: Merge address comparison patterns and make them
	handle some more cases.

2015-07-29  Richard Biener  <rguenther@suse.de>

	* genmatch.c (c_expr::gen_transform): Error on unknown captures.
	(parser::parse_capture): Add bool argument on whether to reject
	unknown captures.
	(parser::parse_expr): Adjust.
	(parser::parse_op): Likewise.
	(parser::parse_pattern): Likewise.

2015-07-29  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (has_use_on_stmt): New function.
	(replace_stmt_with_simplification): Use it to allow
	abnormals originally referenced in the stmt.
	(fold_stmt_1): Canonicalize operand order.

2015-07-28  David Sherwood  <david.sherwood@arm.com>

	* config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
	GET_MODE_INNER unconditionally.
	* config/spu/spu.c (arith_immediate_p): Likewise.
	* config/i386/i386.c (ix86_build_signbit_mask): Likewise.
	* expmed.c (synth_mult): Remove check for VOIDmode result from
	GET_MODE_INNER.
	(expand_mult_const): Likewise.
	* fold-const.c (fold_binary_loc): Replace call to element_precision
	with call to GET_MODE_PRECISION.
	* genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
	m->name.
	(emit_mode_inner): Likewise.
	* lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
	result check.
	* machmode.h (GET_MODE_UNIT_SIZE): Simplify.
	(GET_MODE_UNIT_PRECISION): Likewise.
	* rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	* stor-layout.c (bitwise_type_for_mode): Update assert.
	(element_precision): Remove.

2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (reload_load_address): New targetm instruction
	pattern.
	* reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.

2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (atomic_test_and_set): New targetm instruction
	pattern.
	* optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
	HAVE_*/gen_* interface.

2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (can_extend, ptr_extend): New targetm instruction
	patterns.
	* optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
	* emit-rtl.c (set_reg_attrs_from_value): Likewise.
	* rtlanal.c (nonzero_bits1): Likewise.
	(num_sign_bit_copies1): Likewise.

2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (eh_return): New targetm instruction pattern.
	* except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
	interface.
	* function.c (thread_prologue_and_epilogue_insns): Remove
	preprocessor condition.

2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (indirect_jump): New targetm instruction pattern.
	* optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
	interface.

2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>

	* config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
	instead of nonimmediate_operand.  Remove C condiition.

2015-07-28  Richard Biener  <rguenther@suse.de>

	* match.pd: Add more simplification of address comparisons.

2015-07-28  Richard Biener  <rguenther@suse.de>

	* match.pd: Re-order two cases in comparison with max/min
	value simplification to make it apply for bools.

2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
	Handle simple SIGN_EXTEND or ZERO_EXTEND.
	(aarch64_rtx_costs): Properly strip extend or extract before
	passing down to rtx costs again.

2015-07-28  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_addsi3_internal): New function.
	Optimizes the case where -mes0 is active and a constant symbolic
	address is used.
	* config/rl78/rl78-protos.h: Prototype the new function.
	* config/rl78/rl78.md (addsi3_internal_real): Call new function.

2015-07-28  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (reduc_stmt_res): New function.
	(initialize_reductions, add_field_for_reduction)
	(create_phi_for_local_result, create_loads_for_reductions)
	(create_stores_for_reduction, build_new_reduction): Handle case that
	reduc_stmt is a phi.
	(gather_scalar_reductions): Allow double_reduc reductions.

2015-07-28  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_comparison): Remove equality folding
	of decl addresses ...
	* match.pd: ... here and merge with existing pattern.

2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/66828
	* tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
	from int64_t to uint64_t.

2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* opts-common.c (read_cmdline_option): List DriverOnly enum values
	as valid only in the error message of the driver, not in the
	messages of the language compilers.

2015-07-27  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (gather_scalar_reductions): Simplify function
	structure.

2015-07-27  Marek Polacek  <polacek@redhat.com>

	* ipa-devirt.c (types_same_for_odr): Fix typo.

2015-07-27  Jason Merrill  <jason@redhat.com>

	PR debug/66468
	* dwarf2out.c (gen_inlined_subroutine_die): Check
	cgraph_function_possibly_inlined_p.

2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
	Place integer variant first.
	(aarch64_ashr_sisd_or_int_<mode>3): Likewise.

2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR/63870
	* config/arm/arm-builtins.c (enum arm_builtins):
	Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
	(ARM_BUILTIN_NEON_BASE): Rename macro to....
	(ARM_BUILTIN_NEON_PATTERN_START): ...this.
	(arm_init_neon_builtins): Register __builtin_arm_lane_check.
	(arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.

2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR/63870
	* config/arm/arm-builtins.c (enum arm_type_qualifiers):
	Add qualifier_lane_index.
	(arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
	(arm_getlane_qualifiers): Use qualifier_lane_index.
	(arm_lanemac_qualifiers): Rename to...
	(arm_mac_n_qualifiers): ...this.
	(LANEMAC_QUALIFIERS): Rename to...
	(MAC_N_QUALIFIERS): ...this.
	(arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
	(arm_setlane_qualifiers): Use qualifier_lane_index.
	(arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
	(enum builtin_arg): Add NEON_ARG_LANE_INDEX.
	(arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
	(arm_expand_neon_builtin): Handle qualifier_lane_index.

	* config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
	* config/arm/arm.c (bounds_check): Likewise, improve error message.
	(neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
	* config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
	vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
	vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
	vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
	(vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
	qualifiers to TERNOP_IMM.
	(vdup_lane): Change qualifiers to GETLANE.
	(vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
	vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
	(vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
	vqdmlsl_n): Change qualifiers to MAC_N.

	* config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
	neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
	neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
	neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
	neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
	neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
	neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
	neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
	neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
	Remove call to neon_lane_bounds.

2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
	Place integer variant first.

2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
	and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
	* config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
	for armv6kz targets.
	* config/arm/arm-cores.def: Replace 6ZK with 6KZ.
	* config/arm/arm-protos.h (FL_ARCH6KZ): New.
	(FL_FOR_ARCH6ZK): Remove.
	(FL_FOR_ARCH6KZ): New.
	(arm_arch6zk): New declaration.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (arm_arch6kz): New.
	(arm_option_override): Set arm_arch6kz.
	* config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
	* config/arm/driver-arm.c: Add comment to "armv6zk" entry.
	* doc/invoke.texi: Replace "armv6zk" with "armv6kz".

2015-07-27  Marek Polacek  <polacek@redhat.com>

	PR c++/66555
	PR c/54979
	* doc/invoke.texi: Document -Wtautological-compare.

2015-07-27  Richard Biener  <rguenther@suse.de>

	* genmatch.c (decision_tree::gen_gimple): Split out large
	subtrees into separate functions.
	(decision_tree::gen_generic): Likewise.

2015-07-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c: Use SUBREG_P predicate.
	* config/alpha/predicates.md: Ditto.

2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config.host (s390*-*-*): Include driver-native.c only when
	building with s390* as host *and* target.

2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/66930
	* config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
	T bit register modified_between_p check.

2015-07-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c: Use SUBREG_P predicate.
	* config/i386/i386.md: Ditto.
	* config/i386/sse.md: Ditto.
	* config/i386/predicates.md: Ditto.

2015-07-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67004
	* config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
	predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.

2015-07-25  Sebastian Pop  <s.pop@samsung.com>

	* Makefile.in: Remove use of TREEBROWSER.
	* config.in: Regenerated.
	* configure: Regenerated.
	* configure.ac: Remove definition of TREEBROWSER.
	* tree-browser.c: Removed.
	* tree-browser.def: Removed.

2015-07-25  Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c: Include gimple-pretty-print.h.
	(stmt_simple_for_scop_p): Print when a stmt is not handled in
	Graphite.
	(scopdet_basic_block_info): Print when a loop or bb cannot be
	represented in Graphite.

2015-07-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66648
	* config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
	execution guard when min_size is less than size_needed.

2015-07-25  Sebastian Pop  <s.pop@samsung.com>

	* doc/install.texi: Document supported versions of ISL.

2015-07-25  Jeff Law  <law@redhat.com>

	Revert:
	PR lto/66752
	* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
	unable to find X NE 0 in the tables, return X as the simplified
	condition.
	(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
	in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
	to VISISTED_BBS.  */
	* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
	after removing the control flow statement and unnecessary edges.

2015-07-25  David Edelsohn  <dje.gcc@gmail.com>

	Revert:
	2015-07-23  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/64164
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Moved to
	tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(split_complex_args): Take assign_parm_data_all argument.
	Pass it to rtl_for_parm.  Set up rtl and context for split
	args.
	(assign_parms_augmented_arg_list): Adjust.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.  Recognize split complex args.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location.
	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
	if stack_parm is NULL.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* stor-layout.c (layout_decl): Don't set mem attributes of
	non-MEMs.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.

2015-07-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_va_start): Remove
	unneeded !TARGET_64BIT check.
	(ix86_gimplify_va_arg): Ditto.

2015-07-24  Tom de Vries  <tom@codesourcery.com>

	* graphite-sese-to-poly.c (build_poly_scop): Always call
	rewrite_commutative_reductions_out_of_ssa.

2015-07-24  Tom de Vries  <tom@codesourcery.com>

	* graphite-sese-to-poly.c (is_reduction_operation_p): Limit
	flag_associative_math to FLOAT_TYPE_P.  Honour
	TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.

2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/64079
	* toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
	and "%qD" in warning_at instead of "%q+D" in warning.

2015-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
	(ix86_function_abi): Cleanup.

2015-07-24  Michael Darling  <darlingm@gmail.com>

	PR other/66259
	* acinclude.m4: Reflects renaming of configure.in to configure.ac
	* configure: Likewise
	* configure.ac: Likewise
	* doc/install.texi: Likewise
	* doc/tm.texi: Likewise
	* doc/tm.texi.in: Likewise

2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
	manually swapping values.
	* cse.c (fold_rtx): Likewise.
	* lra-eliminations.c (form_sum): Likewise.

2015-07-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64003
	* config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
	* config/i386/i386.md (maybe_prefix_bnd): New attribute.
	(*jcc_1, *jcc_2, jump, simple_return_internal)
	(simple_return_pop_internal): Set attribute maybe_prefix_bnd.
	Set length_nobnd attribute instead of length attribute.
	(indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
	(length_nobnd): Remove attribute.
	(length): Remove length_nobnd processing.

2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>

	* gimplify.c (omp_default_clause): New function.  Reorganize flow
	for clarity. Broken out of ...
	(omp_notice_variable): ... here.

2015-07-24  Gary Funck  <gary@intrepid.com>

	PR middle-end/66984
	* fold-const.c (fold_binary_loc): Call fold_convert on arguments to
	fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.

2015-07-24  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (gen_parallel_loop): Add debug print for alternative
	exit-first loop transform.

2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>

	PR 66714
	* tree-cfg.c (struct replace_decls_d): New struct.
	(replace_block_vars_by_duplicates_1): New function.
	(replace_block_vars_by_duplicates): Use it to replace the decls
	in the value exprs by duplicates.

2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
	-shared, -symbolic, -rdynamic.

2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/65711
	* config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
	-dynamic-linker within %{!static %{!shared, and -rdynamic within
	%{!static.

2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR ipa/66566
	* ipa-inline-analysis.c (estimate_calls_size_and_time): Check
	edge summary is available.

2015-07-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct dt_node): Add statistic fields.
	(dt_node::analyze): New method.
	(decision_tree::gen_gimple): Call analyze on the root node
	and print statistics to stderr.
	(decision_tree::gen_generic): Likewise.

2015-07-24  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move simplifying of comparisons
	against the highest or lowest possible integer ...
	* match.pd: ... as patterns here.

2015-07-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct capture_info): Add same_as field.
	(capture_info::capture_info): Initialize same_as.
	(capture_info::walk_match): Compute same_as.
	(capture_info::walk_result): Compute stuff for the leader.
	(capture_info::walk_c_expr): Likewise.
	(dt_simplify::gen_1): Only look at leaders when deciding
	to force no side-effects or emit side-effects of omitted operands.

2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
	reg note to the GPR -> FPR save instructions.

2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_rtx_costs): Make risbg patterns
	cheaper.
	(s390_expand_insv): Don't generate risbg pattern for constant zero
	sources.
	* config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
	("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
	splitters.

2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_reorg): Clean up handling of processors
	with
	-mtune=
	(s390_issue_rate): Likewise.
	(s390_sched_reorder): Likewise.
	(s390_sched_variable_issue): Likewise.
	(s390_loop_unroll_adjust): Likewise.
	(s390_option_override):  Likewise.

2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
	processor capabilities with -march=native.
	* config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
	(DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
	(S390_TARGET_BITS_STRING): Macro to simplify specs.

2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_issue_rate): Handle
	PROCESSOR_2094_Z9_EC.
	(s390_option_override): Likewise.
	(s390_adjust_priority): Likewise.

2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
	when cross compiling.

2015-07-24  Richard Biener  <rguenther@suse.de>

	* fold-const.c (maybe_canonicalize_comparison_1): Move
	A code CST canonicalization ...
	* match.pd: ... to a pattern here.

2015-07-24  Jiong Wang  <jiong.wang@arm.com>

	Revert:
	2015-07-22  Jiong Wang  <jiong.wang@arm.com>
	PR target/63521
	* config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
	(HONOR_REG_ALLOC_ORDER): Define.

2015-07-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (add_operator): Allow SSA_NAME as predicate.
	* fold-const.c (fold_comparison): Move parameter does not
	alias &local simplification ...
	* match.pd: ... as a pattern here.

2015-07-24  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (replace_stmt_with_simplification): Special-case
	valueizing call operands.
	* gimple-match-head.c (maybe_push_res_to_seq): Take
	number of call arguments from ops array.
	(do_valueize): New function.
	(gimple_simplify): Return true if valueization changed
	any operand even if the result didn't simplify further.

2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/25530
	* match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.

2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/25529
	* match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.

2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
	instruction.

2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
	clean up.

2015-07-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
	from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
	targets here.
	(ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
	ms_va_list_type_node initialization.

2015-07-23  Jeff Law  <law@redhat.com>

	PR lto/66752
	* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
	unable to find X NE 0 in the tables, return X as the simplified
	condition.
	(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
	in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
	to VISISTED_BBS.  */
	* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
	after removing the control flow statement and unnecessary edges.

2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tree-pass.h (get_current_pass_name): Removed.

2015-07-23  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/64164
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Moved to
	tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(split_complex_args): Take assign_parm_data_all argument.
	Pass it to rtl_for_parm.  Set up rtl and context for split
	args.
	(assign_parms_augmented_arg_list): Adjust.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.  Recognize split complex args.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location.
	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
	if stack_parm is NULL.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* stor-layout.c (layout_decl): Don't set mem attributes of
	non-MEMs.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.

2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/66217
	* config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
	prototype.
	* config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
	(rs6000_emit_2insn_and): Handle dot forms.
	* config/rs6000/rs6000.md (and<mode>3): Adjust.
	(*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
	(*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.

2015-07-23  Richard Biener  <rguenther@suse.de>

	* generic-match-head.c: Include cgraph.h.
	* gimple-match-head.c: Likewise.
	* tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
	SSA names.
	* fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
	* match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
	pattern.

2015-07-23  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_cond): Do not require folding
	results to pass valid_gimple_rhs_p.
	* tree-cfg.h (fold_cond_expr_cond): Remove.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.
	(make_edges): Do not call it.
	* tree-inline.c (tree_function_versioning): Likewise.

2015-07-23  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (gather_scalar_reductions): Add arg to call to
	vect_force_simple_reduction.
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
	(vect_is_simple_reduction_1): Add and handle
	need_wrapping_integral_overflow parameter.
	(vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
	need_wrapping_integral_overflow parameter.
	(vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
	* tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
	decl.

2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/66926,66951
	* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
	INNER_LOOP and fix up condition for renaming virtual operands.

2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (try_combine): Use std::swap instead of manually
	swapping.

2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>

	* config/mips/i6400.md: New file.
	* config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
	(mips64r6): Likewise.
	(i6400): Define.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
	(mips_issue_rate): Add support for i6400.
	(mips_multipass_dfa_lookahead): Likewise.
	* config/mips/mips.h (TUNE_I6400): Define.
	* config/mips/mips.md: Include i6400.md.
	(processor): Add i6400.
	* doc/invoke.texi (-march=@var{arch}): Add i6400.

2015-07-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/66916
	* match.pd: Guard widen and sign-change comparison simplification
	with single_use.

2015-07-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66945
	* tree-ssa-propagate.c (substitute_and_fold_dom_walker
	::before_dom_children): Force the propagators idea of
	non-executable edges to materialize, not what the folder
	chooses.

2015-07-23  Richard Biener  <rguenther@suse.de>

	* gimple.h (gimple_cond_make_false): Use 0 != 0.
	(gimple_cond_make_true): Use 1 != 0.

2015-07-22  DJ Delorie  <dj@redhat.com>

	* config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
	slashes.

	* config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
	(ashrhi3): Likewise.
	(lshrhi3): Likewise.
	(movhi): Take advantage of zero-extend to load small constants.
	(movpsi): Likewise.
	(and<mode>3): Likewise.
	(zero_extendqihi2): Likewise.
	(zero_extendqisi2): New.
	* config/msp430/constraints.md (N,O): New.
	* config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.

2015-07-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66954
	* config/i386/i386.c (get_builtin_code_for_version): Add P_AES
	to enum feature_priority and feature_list.
	(fold_builtin_cpu): Add F_AES to enum processor_features
	and isa_names_table.

2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR driver/66737
	* config/i386/linux-common.h (MPX_SPEC): Use linker option
	for 64bit target only.

2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>

	* config/nvptx/nvptx.c: Expand some comments.

2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
	(cortex_a53_advsimd): ...This.

2015-07-22  Richard Biener  <rguenther@suse.de>

	* genmatch.c (expr::gen_transform): Clarify error message
	and display location.

2015-07-22  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct operand): Add location member.
	(predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
	constructors.
	(struct simplify): Remove match_location and result_location
	members.
	(elsehwere): Adjust.

2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>

	* config/mips/m5100.md: New file.
	* config/mips/mips-cpus.def (m5100, m5101): Define.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
	-march=m5101 to -mips32r5.
	(MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
	(MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
	!-msoft-float.
	* config/mips/mips.md: Include m5100.md.
	(processor): Add m5100.
	* doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.

2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips-cpus.def (interaptiv): Define.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
	-mips32r2.
	(BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
	* doc/invoke.texi (-march=@var{arch}): Add interaptiv.

2015-07-22  Jiong Wang  <jiong.wang@arm.com>

	PR target/63521
	* config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
	(HONOR_REG_ALLOC_ORDER): Define.

2015-07-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66952
	* tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
	blocks we end up executing unconditionally reset all SSA
	info such as range and alignment.
	* tree-ssanames.h (reset_flow_sensitive_info): Declare.
	* tree-ssanames.c (reset_flow_sensitive_info): New function.

2015-07-22  Charles Baylis  <charles.baylis@linaro.org>

	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
	typo in attribute.

2015-07-22  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::parse_result): Properly handle
	match with result operands and conditions.

2015-07-22  Charles Baylis  <charles.baylis@linaro.org>

	PR target/63870
	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
	Add qualifier_struct_load_store_lane_index.
	(aarch64_types_loadstruct_lane_qualifiers): Use
	qualifier_struct_load_store_lane_index for lane index argument for
	last argument.
	(aarch64_types_storestruct_lane_qualifiers): Ditto.
	(builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
	(aarch64_simd_expand_args): Add new argument describing mode of
	builtin. Check lane bounds for arguments with
	SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
	(aarch64_simd_expand_builtin): Emit error for incorrect lane indices
	if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
	(aarch64_simd_expand_builtin): Handle arguments with
	qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
	aarch64_simd_expand_args.
	* config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
	vst[234]_lane with BUILTIN_VALLDIF.
	* config/aarch64/aarch64-simd.md:
	(aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
	endianness reversal on lane index.
	(aarch64_vec_load_lanesci_lane<mode>): Ditto.
	(aarch64_vec_load_lanesxi_lane<mode>): Ditto.
	(vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
	(vec_store_lanesci_lane<mode>): Ditto.
	(vec_store_lanesxi_lane<mode>): Ditto.
	(aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
	reversal of lane index.
	(aarch64_ld3_lane<mode>): Ditto.
	(aarch64_ld4_lane<mode>): Ditto.
	(aarch64_st2_lane<mode>): Ditto.
	(aarch64_st3_lane<mode>): Ditto.
	(aarch64_st4_lane<mode>): Ditto.
	* config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
	to qmode. Add new mode parameter. Update uses.
	(__LD3_LANE_FUNC): Ditto.
	(__LD4_LANE_FUNC): Ditto.
	(__ST2_LANE_FUNC): Ditto.
	(__ST3_LANE_FUNC): Ditto.
	(__ST4_LANE_FUNC): Ditto.

2015-07-22  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Language Independent Options): Rename node to
	Diagnostic Message Formatting Options.

2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR ipa/66424.
	* lra-remat.c (operand_to_remat): Prevent using insns with input
	subregs processed separately by IRA.

2015-07-21  Andrew MacLeod  <amacleod@redhat.com>

	* ssa-iterators.h (has_zero_uses, has_single_use): Implement as
	straight loops.
	(single_imm_use): Check for iterator node.
	(num_imm_uses): Likewise.
	* tree-ssa-operands.c (has_zero_uses_1): Delete.
	(single_imm_use_1): Check for iterator node.

2015-07-21  Mike Frysinger  <vapier@gentoo.org>
	    Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* configure.ac: Add check for new options in isl-0.15.
	* config.in, configure: Rebuilt.
	* graphite-blocking.c: Include <isl/constraint.h>
	* graphite-interchange.c,  graphite-poly.c: Likewise.
	* graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
	<isl/union_set.h>.
	* graphite-dependences.c: Include <isl/constraint.h>.
	(max_number_of_out_dimensions): Returns isl_stat.
	(extend_schedule_1): Likewise
	(extend_schedule): Corresponding changes.
	* graphite-optimize-isl.c: Include <isl/constraint.h> and
	<isl/union_set.h>.
	(getSingleMap): Change return type of isl_stat.
	(optimize_isl): Conditionally use
	isl_options_set_schedule_serialize_sccs.
	* graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
	if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.

2015-07-21  Georg-Johann Lay  <avr@gjlay.de>

	PR target/66956
	* config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
	(<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.

2015-07-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66948
	* genmatch.c (capture_info::walk_match): Also recurse to
	captures.  Properly compute expr state from captures of
	captures.
	* match.pd: Add single-use guards to
	(X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.

2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Add static destructor call.

2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR middle-end/66915
	* match.pd (A - B -> A + (-B)): Don't allow folding
	when type if a fixed-point type.

2015-07-20  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
	(iorqi3_real): Likewise for set1.

2015-07-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
	for !TARGET_64BIT.

2015-07-20  Aditya Kumar  <hiraditya@msn.com>

	* graphite-isl-ast-to-gimple.c:
	Refactor so that each function can access 'region'. This will help
	maintain a parameter rename_map within a region.

2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*lt0_disi): New.

2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/66217
	* config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
	"available letters" comment.
	* config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
	mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
	and_2rld_operand):  Delete.
	(and_operand): Adjust.
	(rotate_mask_operator): New.
	* config/rs6000/rs6000-protos.h (build_mask64_2_operands,
	includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
	includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
	extract_ME): Delete.
	(rs6000_is_valid_mask, rs6000_is_valid_and_mask,
	rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
	rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
	rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
	rs6000_emit_2insn_and): New.
	* config/rs6000/rs6000.c (num_insns_constant): Adjust.
	(build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
	includes_rldic_lshift_p, includes_rldicr_lshift_p,
	insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
	(rs6000_is_valid_mask, rs6000_is_valid_and_mask,
	rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
	s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
	rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
	rs6000_emit_2insn_and): New.
	(print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
	(rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
	handling.
	<NOT>: Don't fall through to next case.
	<AND>: Handle the various rotate-and-mask cases directly.
	<IOR>: Always cost as one insn.
	* config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
	(and<mode>3): Adjust expander for the new patterns.
	(and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
	and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
	(*and<mode>3_imm_dot_shifted): New.
	(*and<mode>3_mask): Delete, rewrite as ...
	(and<mode>3_mask): ... New.
	(*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
	(andsi3_internal0_nomc): Delete.
	(*andsi3_internal6): Delete.
	(*and<mode>3_2insn): New.
	(insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
	*insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
	*insvsi_internal6, insvdi_internal, *insvdi_internal2,
	*insvdi_internal3): Delete.
	(*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
	*rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
	*rotl<mode>3_insert_4, two splitters for multi-precision shifts,
	*ior<mode>_mask): New.
	(extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
	*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
	*ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
	*lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
	Delete.
	(ashr<mode>3): Delete expander.
	(*ashr<mode>3): Rename to ...
	(ashr<mode>3): ... This.
	(ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
	(*rotldi3_internal4, *rotldi3_internal5 and split,
	*rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
	and split, *ashldi3_internal6 and split, *ashldi3_internal7,
	ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
	(*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
	(splitter for loading a mask): Adjust.
	* doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.

2015-07-20  Marek Polacek  <polacek@redhat.com>

	* genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
	output_add_clobbers, output_added_clobbers_hard_reg_p,
	gen_rtx_scratch): Remove declarations.

2015-07-20  Marek Polacek  <polacek@redhat.com>

	PR c++/55095
	* doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.

2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* simplify-rtx.c (simplify_unary_operation_1, NEG case):
	(neg (x ? (neg y) : y)) -> !x ? (neg y) : y.

2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (combine_simplify_rtx): Move simplification step
	before various transformations/substitutions.

2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>

	* wide-int.h (struct binary_traits): Fix partial specialization syntax.
	(struct int_traits): Likewise.

2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
	function to vmsdbgout_function_decl.

2015-07-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66922
	* config/i386/i386.c (ix86_expand_pextr): Reject extractions
	from misaligned positions.
	(ix86_expand_pinsr): Reject insertions to misaligned positions.

2015-07-18  Sebastian Pop  <s.pop@samsung.com>

	PR middle-end/46851
	PR middle-end/60340
	* Makefile.in: Removed omega.o.
	* common.opt: Document flag fcheck-data-deps as deprecated.
	* doc/invoke.texi: Remove documentation for fcheck-data-deps and
	its associated params: omega-max-vars, omega-max-geqs,
	omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
	omega-max-keys, omega-eliminate-redundant-constraints.
	* doc/loop.texi: Remove all the section on Omega.
	* graphite-blocking.c: Include missing params.h: it used to be
	included through tree-data-ref.h and omega.h.
	* graphite-isl-ast-to-gimple.c: Same.
	* graphite-optimize-isl.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.
	* omega.c: Remove.
	* omega.h: Remove.
	* params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
	PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
	PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
	PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
	* passes.def: Remove pass_check_data_deps.
	* tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
	(dump_conflict_function): Same.
	(dump_subscript): Same.
	(print_direction_vector): Same.
	(print_dir_vectors): Same.
	(print_lambda_vector): Same.
	(print_dist_vectors): Same.
	(dump_data_dependence_relation): Same.
	(dump_data_dependence_relations): Same.
	(dump_dist_dir_vectors): Same.
	(dump_ddrs): Same.
	(init_omega_eq_with_af): Removed.
	(omega_extract_distance_vectors): Removed.
	(omega_setup_subscript): Removed.
	(init_omega_for_ddr_1): Removed.
	(init_omega_for_ddr): Removed.
	(ddr_consistent_p): Removed.
	(compute_affine_dependence): Do not use omega to check data
	dependences.
	(compute_data_dependences_for_bb): Removed.
	(analyze_all_data_dependences): Removed.
	(tree_check_data_deps): Removed.
	* tree-data-ref.h: Do not include omega.h.
	(compute_data_dependences_for_bb): Removed.
	(tree_check_data_deps): Removed.
	* tree-ssa-loop.c (pass_check_data_deps): Removed.
	(make_pass_check_data_deps): Removed.
	* tree-ssa-phiopt.c: Include params.h.
	* tree-vect-data-refs.c: Same.
	* tree-vect-slp.c: Same.

2015-07-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (pushsf splitter): Pass curr_insn to
	find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
	(mem->fpreg splitters): Ditto.
	(general_operand->nonimmediate_operand splitter): Use explicit modes.
	Disable DFmode for TARGET_64BIT.

2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66906
	* config/i386/i386.c (ix86_expand_prologue): Replicate static
	chain on the stack.

2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Constify host data.
	* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
	Constify host data.
	(generate_host_descr_file): Likewise.

2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	PR middle-end/61929
	* graphite-dependences.c (add_pdr_constraints): Renamed
	pdr->extent to pdr->subscript_sizes.
	* graphite-interchange.c (build_linearized_memory_access): Add
	back all gcc_assert's that the "isl_int to isl_val conversion"
	patch has removed.  Refactored.
	(pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
	* graphite-poly.c (new_poly_dr): Same.
	(free_poly_dr): Same.
	* graphite-poly.h (struct poly_dr): Same.
	* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
	all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
	* graphite-scop-detection.h: Fix space.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
	back all gcc_assert's removed by a previous patch.
	(wrap): Remove the_isl_ctx global variable that the same patch has
	added.
	(build_loop_iteration_domains): Same.
	(add_param_constraints): Same.
	(pdr_add_data_dimensions): Same.  Refactored.
	(build_poly_dr): Renamed extent to subscript_sizes.

2015-07-17  Marek Polacek  <polacek@redhat.com>

	* fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
	* match.pd: ... here.

2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Constify target data.
	* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
	Constify target data.
	(generate_target_offloadend_file): Likewise.

2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
	to allow renaming of PHI arguments on edges incoming from outer
	loop header, add corresponding check before start PHI iterator.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
	variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
	with true force_vectorize.  Set-up dominator for outer loop too.
	Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
	(slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
	was marked with force_vectorize and has restricted cfg.
	(slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
	inner loop.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
	do peeling for outer loops.

2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
	    Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
	build-sysroot, sysroot from the `Miscenalleous configure options' to
	the `Directories' section and strip trailing `/' from with_sysroot.
	(gcc_gxx_include_dir): Don't strip a `/' sysroot value.
	* configure: Regenerated.

2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66824
	* config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
	(TARGET_HARD_DF_REGS): Ditto.
	(TARGET_HARD_XF_REGS): Ditto.
	* config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
	Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
	(*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
	alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
	(*movsf_internal): Add alternatives 16 and 17. Enable
	alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.

2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/66891
	* calls.c (expand_call): Wrap precompute_register_parameters with
	NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.

2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Constify mapping variables.
	Define target data struct and initialize it.

2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/66626
	* ira.h (emit-rtl.h): Include.
	(non_spilled_static_chain_regno_p): New.
	* ira-color.c (setup_profitable_hard_regs): Clear profitable regs
	unless it is non spilled static chain pseudo.
	(assign_hard_rego): Spill memory profitable allocno unless it is
	non spilled static chain pseudo.
	(allocno_spill_priority_compare): Put non spilled static chain
	pseudo at the end of sorted array.
	(improve_allocation): Do nothing if we have static chain and
	non-local goto.
	(allocno__priority_compare_func): Put non spilled static chain
	pseudo at the beginning of sorted array.
	(move_spill_restore): Ignore non spilled static chain pseudo.
	* ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
	to non spilled static chain pseudo.
	* lra-assigns.c (pseudo_compare_func): Put non spilled static chain
	pseudo at the beginning of sorted array.
	(spill_for): Spill non spilled static chain pseudo last.
	* lra-constraints.c (lra_constraints): Remove static chain pseudo
	check for equivalence.

2015-07-16  Martin Liska  <mliska@suse.cz>

	PR ipa/66896.
	* ipa-prop.c (update_jump_functions_after_inlining): Create properly
	dst_ctx if it does not exist.

2015-07-16  Martin Liska  <mliska@suse.cz>

	* hash-set.h (remove): New function.
	(iterator): New iteration class for hash_set.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* genattrtab.c (make_canonical): Add a file_location parameter.
	Use fatal_at rather than fatal.
	(get_attr_value): Likewise.  Update call to make_canonical.
	(fill_attr, make_length_attrs, optimize_attrs, gen_attr)
	(make_internal_attr): Update calls accordingly.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* read-md.h (message_with_line, error_with_line): Delete.
	* read-md.c (message_with_line, error_with_line): Delete.
	* gensupport.h: Include read-md.h.
	(md_rtx_info): New structure.
	(read_md_rtx): Use it.  Return a bool success value.
	* gensupport.c (read_md_rtx): Likewise.
	* genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.
	* genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.
	* genattrtab.c (insn_code_number): Delete.
	(optimize_attrs): Add a max_insn_code parameter and use it instead
	of insn_code_number.
	(gen_attr): Take an md_rtx_info rather than an rtx and lineno.
	Use *_at rather than *_with_line functions.
	(gen_insn): Likewise.
	(gen_delay): Likewise.
	(gen_insn_reserv): Likewise.
	(gen_bypass): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.  Use a local max_insn_code
	variable instead of insn_code_number.
	* genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
	an rtx.  Use fatal_at rather than fatal.
	(gen_query_cpu_unit, gen_bypass, gen_excl_set)
	(gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
	(gen_absence_set, gen_final_absence_set, gen_automaton)
	(gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
	(main): Update after interface changes.
	* gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
	and code number.
	(main): Update after interface changes.
	* genconditions.c (main): Use new read_md_rtx interface.
	* genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
	(gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
	(main): Update after interface changes.
	* genemit.c (insn_code_number, insn_index_number): Delete.
	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
	Use fatal_at rather than fatal.
	(gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
	rather than fatal.
	(gen_split): Likewise.
	(main): Update after interface changes.
	* genextract.c (line_no): Delete.
	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
	Update call to walk_rtx.
	(VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
	rather than message_with_line.
	(walk_rtx): Add an md_rtx_info argument.  Update call to
	VEC_safe_set_locstr.
	(main): Update after interface changes.
	* genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
	and lineno.  Use error_at rather than separate message_with_line
	calls and have_error assignments.
	(main): Update after interface changes.
	* genmddump.c (main): Use new read_md_rtx interface.
	* genopinit.c (insn): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.
	* genoutput.c (next_code_number): Delete.
	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
	(gen_peephole, gen_expand, gen_split): Likewise.
	(note_constraint): Likewise.  Use *_at rather than *_with_line
	functions.
	(main): Update after interface changes.
	* genpeep.c (gen_peephole): Take an md_rtx_info rather than an
	rtx and lineno.
	(main): Update after interface changes.
	* genpreds.c (process_define_predicate): Take an md_rtx_info rather
	than an rtx and lineno.
	(process_define_constraint): Likewise.
	(process_define_register_constraint): Likewise.
	(main): Update after interface changes.
	* genrecog.c (next_insn_code, pattern_lineno): Delete.
	(validate_pattern): Replace top-level rtx with an md_rtx_info.
	Use *_at rather than *_with_line functions.
	(match_pattern_2): Likewise.
	(match_pattern_1, match_pattern): Add an md_rtx_info parameter.
	(get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
	Use *_at rather than *_with_line functions.
	* gentarget-def.c (add_insn): New function.
	(main): Use it.  Use new read_md_rtx interface.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.h (compute_test_codes): Take a file_location rather
	than a line number.
	* gensupport.c (compute_test_codes): Likewise.  Use *_at functions
	rather than *_with_line functions.
	(process_define_predicate): Update call to compute_test_codes.
	* genpreds.c (validate_exp): Take a file_location rather than a
	line number.  Use *_at functions rather than *_with_line functions.
	(process_define_predicate): Update call to validate_exp.
	(constraint_data): Replace lineno field with a file_location.
	(add_constraint): Take a file_location rather than a line number.
	Use *_at functions rather than *_with_line functions.  Fix error
	message for address constraints.  Update after changes to
	validate_exp, constraint_data and compute_test_codes.
	(process_define_constraint): Update accordingly.
	(process_define_register_constraint): Likewise.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* genoutput.c (data): Use a file_location to record the source
	position.
	(nothing): Delete.
	(idata, idata_end): Remove initialization.
	(constraint_data): Replace lineno with a file_location.
	(output_insn_data): Update after changes to data.
	(gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
	(scan_operands): Likewise, using *_at rather than *_with_line
	functions.
	(process_template): Likewise.
	(validate_insn_alternatives): Likewise.
	(validate_insn_operands): Likewise.
	(validate_optab_operands): Likewise.
	(init_insn_for_nothing): Initialize idata and idata_end.
	(note_constraint): Update after changes to constraint_data,
	using at rather than with_line functions.
	(mdep_constraint_len): Take a file_location rather than a
	line number.  Use at rather than with_line functions.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* read-md.h (fatal_at): Declare.
	* read-md.c (fatal_at): New function.
	* genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
	to record the source position.
	(check_attr_test): Take a file_location instead of a line number.
	Use fatal_at instead of fatal.
	(check_attr_value): Update after above changes, using "at"
	rather than "with_line" reporting functions.
	(convert_set_attr_alternative): Likewise.
	(gen_attr): Likewise.
	(check_defs): Likewise.  Don't assign to read_md_filename.
	(gen_insn): Update initialization after above changes.
	(gen_delay): Likewise.
	(write_insn_cases): Print the filename for a define_peephole.
	(gen_insn_reserv): Take a line number as argument and update
	the call to check_attr_test.
	(main): Pass a line number to gen_insn_reserv.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* read-md.h (file_location): New structure.
	(directive_handler_t): Take a file_location rather than a line number.
	(message_at, error_at): Declare.
	(read_skip_construct): Delete.
	* read-md.c (message_with_line_1): Replace with...
	(message_at_1): ...this new function.
	(message_at, error_at): New functions.
	(message_with_line, error_with_line): Update to use message_at_1.
	(handle_enum): Take a file_location rather than a line number
	and use error_at for error reporting.
	(handle_include): Likewise.
	(read_skip_construct): Likewise.  Make static.
	(handle_file): Update after above changes.  Pass a file_location
	rather than a line number to handle_directive.
	* gensupport.c (queue_elem): Replace separate filename and lineno
	with a file_location.
	(queue_pattern): Replace filename and lineno arguments with a
	file_location.  Update after change to queue_elem.
	(process_define_predicate): Replace lineno argument with a
	file_location and use error_at for error reporting.  Update
	after above changes.
	(process_rtx): Likewise.
	(subst_pattern_match): Likewise.
	(get_alternatives_number): Likewise.
	(alter_predicate_for_insn): Likewise.
	(rtx_handle_directive): Likewise.
	(is_predicable): Update after above changes, using error_at rather
	than error_with_line.
	(has_subst_attribute): Likewise.
	(identify_predicable_attribute): Likewise.
	(alter_attrs_for_subst_insn): Likewise.
	(process_one_cond_exec): Likewise.
	(process_substs_on_one_elem): Likewise.
	(process_define_subst): Likewise.
	(check_define_attr_duplicates): Likewise.
	(read_md_rtx): Update after change to queue_elem.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* genoutput.c (next_index_number): Delete.
	(data): Remove index_number.
	(gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
	(main): Remove manipulation of next_index_number.

2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>

	* genattrtab.c (check_attr_value): Remove handling of null attrs.
	(make_canonical): Likewise.

2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
	instead of adjust_address_nv.
	(restore_stack_nonlocal): Likewise.
	(nonlocal_goto): Likewise.

2015-07-16  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (create_parallel_loop): Handle case that exit phi does
	not have a corresponding loop header phi.

2015-07-16  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (create_loads_for_reductions): Handle case that
	reduction is unused.

2015-07-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66894
	* tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
	about deriving NE_EXPR from truncated values.

2015-07-16  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h
	(object_allocator): Add new class.
	(pool_allocator::initialize): Use the underlying class.
	(pool_allocator::allocate): Likewise.
	(pool_allocator::remove): Likewise.
	(operator new): A new generic allocator.
	* asan.c (struct asan_mem_ref): Remove unused members.
	(asan_mem_ref_new): Replace new operator with
	object_allocator::allocate.
	(free_mem_ref_resources): Change deallocation.
	* cfg.c (initialize_original_copy_tables): Replace pool_allocator
	with object_allocator.
	* config/sh/sh.c (add_constant): Replace new operator with
	object_allocator::allocate.
	(sh_reorg): Change call to a release method.
	* cselib.c (struct elt_list): Remove unused members.
	(new_elt_list): Replace new operator with
	object_allocator::allocate.
	(new_elt_loc_list): Likewise.
	(new_cselib_val): Likewise.
	(unchain_one_elt_list): Change delete operator with remove method.
	(unchain_one_elt_loc_list): Likewise.
	(unchain_one_value): Likewise.
	(cselib_finish): Release newly added static allocators.
	* cselib.h (struct cselib_val): Remove unused members.
	(struct elt_loc_list): Likewise.
	* df-problems.c (df_chain_alloc): Replace pool_allocator with
	object_allocator.
	* df-scan.c (struct df_scan_problem_data): Likewise.
	(df_scan_alloc): Likewise.
	* df.h (struct dataflow): Likewise.
	* dse.c (struct read_info_type): Likewise.
	(struct insn_info_type): Likewise.
	(struct dse_bb_info_type): Likewise.
	(struct group_info): Likewise.
	(struct deferred_change): Likewise.
	(get_group_info): Likewise.
	(delete_dead_store_insn): Likewise.
	(free_read_records): Likewise.
	(replace_read): Likewise.
	(check_mem_read_rtx): Likewise.
	(scan_insn): Likewise.
	(dse_step1): Likewise.
	(dse_step7): Likewise.
	* et-forest.c (struct et_occ): Remove unused members.
	(et_new_occ): Use allocate instead of new operator.
	(et_new_tree): Likewise.
	(et_free_tree): Call release method explicitly.
	(et_free_tree_force): Likewise.
	(et_free_pools): Likewise.
	(et_split): Use remove instead of delete operator.
	* et-forest.h (struct et_node): Remove unused members.
	* ipa-cp.c: Change pool_allocator to object_allocator.
	* ipa-inline-analysis.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-prop.h: Likewise.
	* ira-build.c (initiate_cost_vectors): Cast return value.
	(ira_allocate_cost_vector): Likewise.
	* ira-color.c (struct update_cost_record): Remove unused members.
	* lra-int.h (struct lra_live_range): Likewise.
	(struct lra_copy): Likewise.
	(struct lra_insn_reg): Likewise.
	* lra-lives.c (lra_live_ranges_finish): Release new static allocator.
	* lra.c (new_insn_reg): Replace new operator with allocate method.
	(free_insn_regs): Same for operator delete.
	(finish_insn_regs): Release new static allocator.
	(finish_insn_recog_data): Likewise.
	(lra_free_copies): Replace delete operator with remove method.
	(lra_create_copy): Replace operator new with allocate method.
	(invalidate_insn_data_regno_info): Same for remove method.
	* regcprop.c (struct queued_debug_insn_change): Remove unused members.
	(free_debug_insn_changes): Replace delete operator with remove method.
	(replace_oldest_value_reg): Replace operator new with allocate method.
	(pass_cprop_hardreg::execute): Release new static variable.
	* sched-deps.c (sched_deps_init): Change pool_allocator to
	object_allocator.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.
	* stmt.c (expand_case): Likewise.
	(expand_sjlj_dispatch_table): Likewise.
	* tree-sra.c (struct access): Remove unused members.
	(struct assign_link): Likewise.
	(sra_deinitialize): Release newly added static pools.
	(create_access_1):Replace operator new with allocate method.
	(build_accesses_from_assign): Likewise.
	(create_artificial_child_access): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
	pool_allocator to object_allocator.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* var-tracking.c (onepart_pool_allocate): New function.
	(unshare_variable): Use the newly added function.
	(variable_merge_over_cur): Likewise.
	(variable_from_dropped): Likewise.
	(variable_was_changed): Likewise.
	(set_slot_part): Likewise.
	(emit_notes_for_differences_1): Likewise.
	(vt_finalize): Release newly added static pools.

2015-07-16  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
	all uses.  Fix two typos in its general comment.
	(func_body_info): Rename to ipa_func_body_info.  Adjust all uses.

2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/linux-common.h (LINK_MPX): New.
	(MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
	* configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
	indicating '-z bndplt' support by linker.
	* configure: Regenerate.
	* config.in: Regenerate.

2015-07-16  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_widened_comparison): Remove.
	(fold_sign_changed_comparison): Likewise.
	(fold_comparison): Move widened and sign-changed comparison
	simplification ...
	* match.pd: ... to patterns here.
	* generic-match-head.c: Include target.h.
	* gimple-match-head.c: Likewise.

2015-07-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.c (dom_valueize): New function.
	(record_temporary_equivalences): Also record equivalences
	for dominating stmts that have uses of equivalences we are
	about to record.

2015-07-16  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (add_candidate): Remove call to
	add_autoinc_candidates.
	(add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
	(add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
	(add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
	(add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
	Call new function.
	(add_iv_value_candidates): Rename to add_iv_candidate_for_use.
	(add_iv_candidate_for_use): Rename from add_iv_value_candidates.
	Remove parameter struct iv*.  Call add_autoinc_candidates here.
	(add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
	(add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
	Call new function.
	(find_iv_candidates): Call new functions.

2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
	uninitialized-variable warning.

2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65249
	* config/sh/sh.md (movdi): Split simple reg move to two movsi
	when the destination is R0.

2015-07-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66866
	* config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
	* config/i386/i386.c (ix86_expand_pextr): New function.
	(ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
	for non-lowpart subregs.
	* config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
	(insv<mode>): Use SWI248 mode iterator.
	(insv<mode>_1): Ditto.

2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
	iterator to use_stmt.

2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (build_scops_1): Discard scops for
	which entry==exit.

2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
	case of a return statement in scop.

2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* graphite-sese-to-poly.c (parameter_index_in_region): Only handle
	INTEGER_TYPE parameters.
	(scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
	VECTOR_CST in scan_tree_for_params.
	(add_conditions_to_domain): Only constrain on INTEGER_TYPE.

2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-pretty-print.h: Don't include pretty-print.h.
	* tree-streamer.h: Don't include lto-streamer.h.
	* gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
	* gimple-streamer-in.c: Remove redundant includes.
	* gimple-streamer-out.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.

2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
	include input.h.
	* opts.c: Remove multiline #include comment.

2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Add C++ protection to
	emitted code.

2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/66854
	* config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
	null before IEEE 128-bit floating point support patch.

2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* simplify-rtx.c (simplify_ternary_operation): Add simplification
	for (!c) != {0,...,0} ? a : b for vector modes.

2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
	    Martin Jambor  <mjambor@suse.cz>

	* ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
	struct func_body_info* instead of struct ipa_node_params*, expecting
	fbi->info to be filled in.  Replace throughout.  Adjust call to
	ipa_load_from_parm_agg.
	(set_cond_stmt_execution_predicate): Accept struct func_body_info*
	instead of struct ipa_node_params*.  Adjust calls to other functions
	so that they pass either fbi or fbi->info.
	(set_switch_stmt_execution_predicate): Likewise.
	(will_be_nonconstant_predicate): Likewise.
	(compute_bb_predicates): Likewise.
	(estimate_function_body_sizes): Move asserts earlier.  Fill in
	struct func_body_info, replace parms_info with fbi.info.  Adjust
	calls to functions that now accept struct func_body_info.
	* ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
	(struct func_body_info): Likewise.
	(ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
	remove static.  Adjust callers.
	(ipa_load_from_parm_agg): Remove.
	* ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
	(func_body_info): Likewise.
	(ipa_load_from_parm_agg): Adjust prototype.

2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gensupport.c (rtx_handle_directive): Adjust.
	* read-rtl.c (apply_iterators): Take vector to add rtxs to
	instead of expr list rtx.
	(add_define_attr_for_define_subst): Likewise.
	(add_define_subst_attr): Likewise.
	(read_subst_mapping): Likewise.
	(read_rtx): Likewise.
	* rtl.h (read_rtx): Adjust.

2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.

2015-07-15  Uros Bizjak  <ubizjak@gmail.com>

	PR target/58066
	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
	(*tls_local_dynamic_base_64_<mode>): Ditto.
	(*tls_local_dynamic_base_64_largepic): Ditto.
	(tls_global_dynamic_64_<mode>): Update expander pattern.
	(tls_local_dynamic_base_64_<mode>): Ditto.

2015-07-15  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
	and bool_var == 1 -> bool_var simplifications ...
	* match.pd: ... to patterns here.  Factor out negate_expr_p
	cases from the A - B -> A + (-B) patterns as negate_expr_p
	predicate and add a -(A + B) -> (-B) - A pattern.

2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_emit_save_slot_move): Fix typo.

2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
	    Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_int_mask): New enum.
	(mips_shadow_set): Likewise.
	(int_mask): New variable.
	(use_shadow_register_set_p): Change type to enum mips_shadow_set.
	(machine_function): Add int_mask and use_shadow_register_set.
	(mips_attribute_table): Add attribute handlers for interrupt and
	use_shadow_register_set.
	(mips_interrupt_mask): New static function.
	(mips_handle_interrupt_attr): Likewise.
	(mips_handle_use_shadow_register_set_attr): Likewise.
	(mips_use_shadow_register_set): Change return type to enum
	mips_shadow_set.  Add argument handling for use_shadow_register_set
	attribute.
	(mips_interrupt_extra_called_saved_reg_p): Update the conditional to
	compare with mips_shadow_set enum.
	(mips_compute_frame_info): Add interrupt mask and
	use_shadow_register_set to per-function information structure.
	Add a stack slot for EPC unconditionally.
	(mips_expand_prologue): Compare use_shadow_register_set value
	with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
	masked interrupt register but in EIC mode use K0 and save Cause in K0.
	EPC saved and restored unconditionally.  Use PMODE_INSN macro when
	copying the stack pointer from the shadow register set.
	* config/mips/mips.h (SR_IM0): New define.
	* config/mips/mips.md (mips_rdpgpr): Rename to...
	(mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
	* doc/extend.texi (Declaring Attributes of Functions): Document
	optional arguments for interrupt and use_shadow_register_set
	attributes.

2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
	interrupt attribute.
	(mips_expand_prologue): Disable the floating point unit in an ISR.
	* config/mips/mips.h (SR_COP1): New define.

2015-07-15  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::peek, parser::peek_ident): Add argument
	to tell how many tokens to peek ahead (default 1).
	(parser::eat_token, parser::eat_ident): Return token consumed.
	(parser::parse_result): Parse new switch statement.
	* match.pd: Use case statements where appropriate.

2015-07-15  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/58066
	* calls.c (expand_call): Precompute register parameters before stack
	alignment is performed.

2015-07-15  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/66838
	* postreload.c (reload_cse_move2add): Also process
	CALL_INSN_FUNCTION_USAGE when resetting information of
	call-clobbered registers.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/constraints.md (U, v): New constraints.
	* config/nios2/predicates.md (rdprs_dcache_operand): New.
	(ldstex_memory_operand): New.
	* config/nios2/sync.md: New file.
	* config/nios2/nios2.md (unspecv): Add new builtin function
	UNSPECV codes.
	(rdprs, flushd, flushda, wrpie, eni): New patterns.
	(top-level): Include sync.md.
	* config/nios2/nios2.c (N2_FTYPES): Add function types for
	new builtins.
	(N2_BUILTINS): Add arch field setting, add new builtins.
	(enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
	for arch field.
	(nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
	Also handle ldex/stex/ldsex/stsex builtins.
	(nios2_expand_rdprs_builtin): New function.
	(nios2_expand_cache_builtin): New function.
	(nios2_expand_wrpie_builtin): New function.
	(nios2_expand_eni_builtin): New function.
	(nios2_expand_builtin): Add arch field handling and new builtin
	cases.
	* doc/extend.texi (Altera Nios II Built-in Functions): Document
	new builtins.
	* doc/md.texi (Machine Constraints): Document U and v constraints.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2-protos.h (nios2_expand_return): Declare.
	* config/nios2/nios2.c (struct GTY (()) machine_function): Add
	callee_save_reg_size and uses_anonymous_args fields.
	(nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
	(nios2_create_cfa_notes): New function.
	(nios2_adjust_stack): New function for adjusting stack.
	(nios2_expand_prologue): Update for CDX push.n/pop.n usage.
	Use nios2_adjust_stack.
	(nios2_expand_epilogue): Likewise.
	(nios2_expand_return): New function.
	(nios2_can_use_return_insn): Update for CDX pop.n usage.
	(nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
	If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
	* config/nios2/nios2.md (return): Use nios2_expand_return.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/predicates.md (pop_operation): New.
	(ldwm_operation, stwm_operation): New.
	(nios2_hard_register_operand): New.
	* config/nios2/nios2-protos.h (pop_operation_p): Declare.
	(ldstwm_operation_p): Declare.
	(gen_ldstwm_peep): Declare.
	* config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
	(base_reg_adjustment_p): New.
	(pop_operation_p): New.
	(CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
	(nios2_ldstwm_regset_p): New.
	(ldstwm_operation_p): New.
	(gen_ldst): New.
	(nios2_ldst_parallel): New.
	(struct ldswm_operand): Declare.
	(compare_ldstwm_operands): New.
	(can_use_cdx_ldstw): New.
	(gen_ldstwm_peep): New.
	* config/nios2/nios2-ldstwm.sml: New.
	* config/nios2/nios2.md: Include ldstwm.md.
	* config/nios2/ldstwm.md: Generated.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.h (LABEL_ALIGN): Define.
	(REG_ALLOC_ORDER): Define.
	(ADJUST_REG_ALLOC_ORDER): Define.
	(HONOR_REG_ALLOC_ORDER): Define.
	(CDX_REG_P): Define.
	(ANDCLEAR_INT): Define.
	* config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
	(nios2_label_align): Declare.
	(nios2_cdx_narrow_form_p): Declare.
	(nios2_adjust_reg_alloc_order): Declare.
	* config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
	operation.
	(nios2_large_unspec_reloc_p): New function, split from...
	(nios2_legitimate_pic_operand_p): ...here.
	(nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
	(nios2_print_operand_punct_valid_p): New.
	(nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
	(split_mem_address): New.
	(split_alu_insn): New.
	(cdxreg): New.
	(cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
	(enum nios2_add_insn_kind): New.
	(nios2_add_insn_names, nios2_add_insn_narrow): New.
	(nios2_add_insn_classify): New.
	(nios2_add_insn_asm): New.
	(nios2_cdx_narrow_form_p): New.
	(label_align, min_labelno, max_labelno): New.
	(nios2_reorg): New.
	(nios2_label_align): New.
	(nios2_adjust_reg_alloc_order): New.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
	(TARGET_MACHINE_DEPENDENT_REORG): Define.
	* config/nios2/constraints.md (P): New constraint.
	* config/nios2/predicates.md (const_and_operand): New.
	(and_operand): New.
	(stack_memory_operand): New.
	* config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
	(length): Update to use nios2_cdx_narrow_form_p().
	(type): Add new insn type values.
	(control, alu, st, ld, shift): Update insn reservations with
	new insn type values.
	(*high, *lo_sum): Define new insn patterns for constant generation.
	(movqi_internal, movhi_internal, movsi_internal): Reduce
	alternatives, update asm template to handle CDX variants, update
	type attributes.
	(zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
	template, update type attributes.
	(extendhisi2, extendqi<mode>2): Likewise.
	(addsi3): Change to use function for asm string.
	(subsi3): Add CDX notation to asm template, update type attributes.
	(negsi3, one_cmplsi3): Likewise.
	(andsi3): New pattern, specialized from logical patterns.
	(<code>si3): Remove and case, combine alternatives, update asm
	template.
	(<shift_op>si3): Add CDX notation, update type attributes.
	(rotrsi3): Update type attribute.
	(*merge, extzv, insv): New insn patterns.
	(return): Change to define_expand.
	(simple_return): Add CDX notation, update type attributes.
	(indirect_jump): Add CDX notation.
	(jump): Update asm cases, update length attribute expression.
	(*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
	(nios2_cbranch): Update asm cases and length attribute expression
	to handle CDX variants.
	(nios2_cmp<code>): Update asm template.
	(nop): Add CDX notation, update type attributes.
	(trap): Add CDX notation.
	(ctrapsi4): Update asm cases and length attribute expression to
	handle CDX variant.
	* doc/md.texi (Machine Constraints): Document P constraint.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.h (SMALL_INT12): New macro.
	* config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
	(nios2_valid_addr_expr_p): Use it.
	(nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
	with implicit "io" instructions on R2.
	* config/nios2/constraints.md (w): New constraint.
	* config/nios2/predicates.md (ldstio_memory_operand): New.
	* config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
	operand predicate and constraint.
	(ld<bh>io_signed, st<bhw>io>): Likewise.
	* doc/md.texi (Machine Constraints): Document w constraint.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.opt (march, mbmx, mcdx): New options.
	* config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
	Nios II architecture level.
	* config/nios2/nios2.h (TARGET_ARCH_R2): New define.
	(TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
	(OPTION_DEFAULT_SPECS): Define.
	(ASM_SPEC): Add -march= spec strings.
	* config/nios2/nios2.c (nios2_option_override): Check for
	conflicts involving new options.
	* config.gcc (nios2*-*-*): Support --with-arch=.
	* doc/invoke.texi (Option Summary, Nios II Options): Document
	-march=, -mbmx,	and -mcdx.

2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/66626
	* lra-constraints.c (lra_constraints): Prevent equivalence
	substitution for static chain pseudo in functions with nonlocal
	goto.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
	(nios2_emit_stack_limit_check): Add size parameter.  Handle
	-fstack-limit-symbol as well as -fstack-limit-register.
	(nios2_expand_prologue): Emit only a single stack limit check,
	even if multiple stack adjustments are required.
	(nios2_option_override): Diagnose unsupported combination of -fpic
	and -stack-limit-symbol.

2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (top_srcdir): New.
	* configure.ac: Use AM_ZLIB.
	* configure: Regeneated.

2015-07-14  Matthias Klose  <doko@ubuntu.com>

	PR target/66840
	* config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.

2015-07-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66863
	* tree-vrp.c (register_edge_assert_for_2): Properly restrict
	what we record for conversion use stmt lhs inequalities.

2015-07-14  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
	(decision_tree::gen_gimple): Likewise.

2015-07-14  Tom de Vries  <tom@codesourcery.com>

	* gcc.c (greater_than_spec_func): Declare forward.
	(LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
	-ftree-parallelize-loops={0,1}.
	(static_spec_functions): Add greater_than_spec_func function with name
	"gt".
	(greater_than_spec_func): New function.

2015-07-14  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.c (record_temporary_equivalences): Merge
	wideing type conversion case from record_equivalences_from_incoming_edge
	and use record_equality to record equivalences.
	(record_equivalences_from_incoming_edge): Call
	record_temporary_equivalences.

2015-07-14  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
	(struct if_expr): New.
	(struct with_expr): Likewise.
	(is_a_helper): Add helpers for if_expr and with_expr.
	(struct simplify): Add simplify_kind enum and member.  Remove
	ifexpr_vec member.
	(simplify::simplify): Adjust.
	(lower_commutative): Adjust.
	(lower_opt_convert): Likewise.
	(lower_cond): Likewise.
	(replace_id): Handle with_expr and if_expr.
	(lower_for): Adjust.
	(dt_simplify::gen_1): New recursive worker, split out from ...
	(dt_simplify::gen): ... here.  Deal with if and with expansion
	recursively.
	(capture_info::capture_info): Take context argument
	(capture_info::walk_result): Only analyze specific result.
	(parser::parse_result): New function.
	(parser::parse_simplify): Adjust to parse ifs with then end
	else case.
	(parser::parse_if): Simplify.
	(parser::parse_pattern): Pass down simplify kind.
	* match.pd: Convert if structure to new syntax.

2015-07-13  Marek Polacek  <polacek@redhat.com>

	* rtl.c (rtx_equal_p_cb): Fix typo.

2015-07-13  Andrew MacLeod  <amacleod@redhat.com>

	* omega.h: Don't include config.h, don't include params.h again if
	omega.h has already been included.
	* graphite-poly.h: Include sese.h.
	* graphite.c: Don't include sese.h, remove needless includes and
	minimize includes outside #ifdef HAVE_isl block.
	* graphite-blocking.c: Don't include sese.h, remove needless includes,
	and wrap entire file in #ifdef HAVE_isl
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.

2015-07-13  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.

2015-07-13  Renlin Li  <renlin.li@arm.com>

	PR rtl/66556
	* simplify-rtx.c (simplify_const_relational_operation): Add
	side_effects_p checks.

2015-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* bitmap.h: Fix double word typos.
	* builtins.c: Same.
	* calls.c: Same.
	* cfgloopmanip.c: Same.
	* cgraph.c: Same.
	* cgraph.h: Same.
	* cgraphclones.c: Same.
	* combine.c: Same.
	* config/aarch64/aarch64-protos.h: Same.
	* config/aarch64/aarch64.c: Same.
	* config/aarch64/aarch64.md: Same.
	* config/arm/arm.md: Same.
	* config/arm/arm1020e.md: Same.
	* config/arm/arm1026ejs.md: Same.
	* config/arm/arm926ejs.md: Same.
	* config/arm/fa526.md: Same.
	* config/arm/fa606te.md: Same.
	* config/arm/fa626te.md: Same.
	* config/arm/fa726te.md: Same.
	* config/arm/fmp626.md: Same.
	* config/darwin.c: Same.
	* config/epiphany/epiphany.c: Same.
	* config/frv/frv.c: Same.
	* config/ft32/ft32.c: Same.
	* config/gnu-user.h: Same.
	* config/h8300/constraints.md: Same.
	* config/i386/i386.c: Same.
	* config/i386/i386.md: Same.
	* config/iq2000/iq2000.md: Same.
	* config/mips/mips.c: Same.
	* config/mmix/mmix.md: Same.
	* config/moxie/moxie.c: Same.
	* config/nds32/nds32.md: Same.
	* config/pa/pa.h: Same.
	* config/rs6000/aix.h: Same.
	* config/rs6000/rs6000.h: Same.
	* config/sh/sh.c: Same.
	* config/tilegx/tilegx.md: Same.
	* config/tilepro/gen-mul-tables.cc: Same.
	* cse.c: Same.
	* dbxout.c: Same.
	* doc/invoke.texi: Same.
	* dse.c: Same.
	* dwarf2out.c: Same.
	* final.c: Same.
	* gcc.c: Same.
	* genmatch.c: Same.
	* gimplify.c: Same.
	* hash-table.h: Same.
	* internal-fn.c: Same.
	* ipa-cp.c: Same.
	* ipa-devirt.c: Same.
	* ipa-icf.c: Same.
	* ipa-icf.h: Same.
	* ipa-profile.c: Same.
	* ipa-prop.c: Same.
	* ipa-prop.h: Same.
	* ira.c: Same.
	* omp-low.c: Same.
	* reg-stack.c: Same.
	* regcprop.c: Same.
	* reorg.c: Same.
	* rtl.h: Same.
	* sbitmap.h: Same.
	* tree-eh.c: Same.
	* tree-inline.c: Same.
	* tree-sra.c: Same.
	* tree-ssa-dom.c: Same.
	* tree-ssa-loop-ivopts.c: Same.
	* tree-ssa-structalias.c: Same.
	* tree-ssa-tail-merge.c: Same.
	* tree-ssa-ter.c: Same.
	* tree-ssa-threadupdate.c: Same.
	* tree-ssa-uninit.c: Same.
	* tree-ssanames.c: Same.
	* tree-vect-loop-manip.c: Same.
	* tree-vrp.c: Same.
	* tree.c: Same.
	* valtrack.c: Same.
	* vec.h: Same.

2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/66726
	* tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
	tree_ssa_phiopt_worker): Call it.

2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
	* emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
	REG_EQUAL note.

2015-07-11  Marek Polacek  <polacek@redhat.com>

	PR middle-end/66353
	* basic-block.h	(has_abnormal_call_or_eh_pred_edge_p): New function.
	* ira-lives.c (bb_has_abnormal_call_pred): Remove function.
	(process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
	rather than bb_has_abnormal_call_pred.
	* lra-lives.c (bb_has_abnormal_call_pred): Remove function.
	(process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
	rather than bb_has_abnormal_call_pred.

2015-07-10  Anatoly Sokolov  <aesok@post.ru>

	* config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
	REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
	RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
	* config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
	v850_legitimate_address_p): New functions.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.

2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66819
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
	indirect sibcall with register arguments if register available
	for argument passing.
	(init_cumulative_args): Set cfun->machine->arg_reg_available
	to (cum->nregs > 0) or to true if function has a variable
	argument list.
	(function_arg_advance_32): Set cfun->machine->arg_reg_available
	to false if cum->nregs <= 0.
	* config/i386/i386.h (machine_function): Add arg_reg_available.

2015-07-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (movdi_to_sse): Use gen_lowpart
	and gen_higpart instead of gen_rtx_SUBREG.
	* config/i386/i386.md
	(floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
	(read-modify peephole2): Use gen_lowpart instead of
	gen_rtx_SUBREG for operand 5.

2015-07-10  Andrew MacLeod  <amacleod@redhat.com>

	* config/tilepro/gen-mul-tables.cc (main): Change include list for
	generated files.
	* config/tilepro/mul-tables.c: Regenerate.
	* config/tilegx/mul-tables.c: Regenerate.

2015-07-10  Richard Biener  <rguenther@suse.de>

	* fold-const.c (distribute_bit_expr): Remove.
	(fold_binary_loc): Move simplifying (A & C1) + (B & C2)
	to (A & C1) | (B & C2), distributing (A & B) | (A & C)
	to A & (B | C) and simplifying A << C1 << C2 to ...
	* match.pd: ... patterns here.

2015-07-10  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Mark mem as READONLY and NOTRAP for PIC symbol.

2015-07-10  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-predict.h: New file.
	(gimple_predict_predictor, gimple_predict_set_predictor,
	gimple_predict_outcome, gimple_predict_set_outcome,
	gimple_build_predict): Relocate here.
	* gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
	gimple_predict_outcome, gimple_predict_set_outcome): Move to
	gimple-predict.h.
	* gimple.c (gimple_build_predict): Move to gimple-predict.h
	* basic-block.h: Don't include cfghooks.h.
	* backend.h: Don't include predict.h.
	* cfghooks.h: Include predict.h.
	* gimple-pretty-print.c: Include gimple-predict.h.
	* gimplify.c: Likwise.
	* predict.c: Adjust includes.
	* tree-inline.c: Likewise.
	* asan.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* dce.c: Likewise.
	* dojump.c: Likewise.
	* dse.c: Likewise.
	* except.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcc-plugin.h: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* genemit.c: Likewise.
	* gengtype.c: Likewise.
	* genopinit.c: Likewise.
	* genoutput.c: Likewise.
	* genpreds.c: Likewise.
	* genrecog.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* graph.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* haifa-sched.c: Likewise.
	* ifcvt.c: Likewise.
	* internal-fn.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* jump.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-lives.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* postreload.c: Likewise.
	* postreload-gcse.c: Likewise.
	* profile.c: Likewise.
	* recog.c: Likewise.
	* regstat.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* rtlanal.c: Likewise.
	* sched-ebb.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sese.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* store-motion.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* ubsan.c: Likewise.
	* value-prof.c: Likewise.
	* varasm.c: Likewise.
	* var-tracking.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/epiphany/mode-switch-use.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/ft32/ft32.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/nvptx/nvptx.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/visium/visium.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2015-07-10  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
	(decision_tree::gen_gimple): Likewise.
	(decision_tree::gen_generic): Likewise.

2015-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66813
	* config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
	sequence for TARGET_ZERO_EXTEND_WITH_AND targets.

2015-07-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66820
	* gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
	or ORT_TASK contexts.
	* omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
	is non-zero.

2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* expr.c (expand_cond_expr_using_cmove): Fix typos in comment
	above function.

2015-07-10  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
	insert nit + 1 bound.

2015-07-10  Richard Biener  <rguenther@suse.de>

	* tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
	Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
	(if_convertible_loop_p_1): For this always compute bb predicates.
	(if_convertible_loop_p): And free them.

2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
	in dump message.

2015-07-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66823
	* tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
	inverted predicate.

2015-07-09  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
	to handle mips[32|64]r3 and mips[32|64]r5.

2015-07-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66633
	* tree-nested.c (get_static_chain): Or in a flag into
	info->static_chain_added.
	(get_frame_field, get_nonlocal_debug_decl): Likewise.
	(convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
	2015-07-01 changes.
	(convert_tramp_reference_stmt): If a frame_decl or chain_decl
	is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
	add it to clauses.

	PR tree-optimization/66718
	* tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
	field.
	(vect_simd_lane_linear): New function.
	(vectorizable_simd_clone_call): Support using linear arguments for
	addresses of arrays elements indexed by GOMP_SIMD_LANE result.

2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66821
	* config/i386/i386.c (iamcu_cost): Adjust variable shift costs.

2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
	Use machine mode, not enum machine_mode in the prototype.

	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
	classify 128-bit floating point support.
	(FLOAT128_IBM_P): Likewise.
	(FLOAT128_VECTOR_P): Likewise.
	(FLOAT128_2REG_P): Likewise.
	(SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
	(SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
	(HARD_REGNO_CALLER_SAVE_MODE): Likewise.
	(HARD_REGNO_CALL_PART_CLOBBERED): Likewise.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
	tests against TFmode/TDmode, since those modes do not use VSX
	addresses.
	(rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
	support.
	(rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
	tests against TFmode, etc.
	(invalid_e500_subreg): Add tests against IFmode/KFmode.
	(reg_offset_addressing_ok_p): Likewise.
	(rs6000_legitimate_offset_address_p): Likewise.
	(rs6000_legitimize_address): Likewise.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_legitimate_address_p): Clean up tests against TFmode and
	TDmode to use the new helper macros, which will include IFmode and
	KFmode.
	(rs6000_emit_move): Likewise.
	(rs6000_darwin64_record_arg_recurse): Likewise.
	(print_operand): Likewise.
	(rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
	that uses a single vector register as a vector and not as a
	floating point register in terms of the calling sequence.
	(rs6000_discover_homogeneous_aggregate): Likewise.
	(rs6000_return_in_memory): Likewise.
	(init_cumulative_args): Likewise.
	(rs6000_function_arg_boundary): Likewise.
	(rs6000_function_arg_advance_1): Likewise.
	(rs6000_function_arg): Likewise.
	(rs6000_pass_by_reference): Likewise.
	(rs6000_gimplify_va_arg): Likewise.
	(rs6000_secondary_reload_memory): Use machine_mode not enum
	machine mode.
	(rs6000_split_multireg_move): Use new helper macros.
	(spe_func_has_64bit_regs_p): Likewise.
	(rs6000_output_function_epilogue): Add IFmode/KFmode support.
	(output_toc): Use new helper macros.
	(rs6000_register_move_cost): Likewise.
	(rs6000_function_value): Add IEEE 128-bit floating point calling
	sequence support.
	(rs6000_libcall_value): Likewise.
	(rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
	floating point support.
	(rs6000_vector_mode_supported_p): Likewise.

2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/66782
	* lra-int.h (struct lra_insn_recog_data): Add comment about
	clobbered hard regs for arg_hard_regs.
	* lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
	* lra-lives.c (process_bb_lives): Process clobbered hard regs.
	Add condition for processing used hard regs.
	* lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
	Process clobbered hard regs.

2015-07-09  Michael Matz  <matz@suse.de>

	* genmatch.c (fprintf_indent): New function.
	(operand::gen_transform): Add indent parameter.
	(expr::gen_transform, c_expr::gen_transform,
	capture::gen_transform): Ditto and use fprintf_indent.
	(dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
	(dt_operand::gen, dt_operand::gen_predicate,
	dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
	dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
	(decision_tree::gen_gimple): Adjust calls and indent generated
	code.
	(decision_tree::gen_generic): Ditto.
	(write_predicate): Ditto.

2015-07-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66814
	* config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
	* config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
	(varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
	{GENERAL,SSE,MMX}_REG_P where appropriate.

2015-07-09  Andrew MacLeod  <amacleod@redhat.com>

	* lto-streamer.h: Don't include target.h and alloc-pool.h.
	* builtins.c: Adjust includes.
	* gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* lto-opts.c: Likewise.
	* ipa-reference.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* opts-global.c: Likewise.
	* symtab.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* config/darwin.c: Likewise.
	* config/i386/winnt.c: Likewise.

2015-07-09  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct expr): Add force_single_use flag.
	(expr::expr): Add copy constructor.
	(capture_info::walk_match): Gather force_single_use captures.
	(expr::gen_transform): Use possibly NULLified sequence.
	(dt_simplify::gen): Apply single-use restrictions by NULLifying
	seq if any constrained expr is not single-use.
	(parser::parse_expr): Refactor to allow multiple flags.  Handle
	's' flag to force an expression have a single-use if the pattern
	simplifies to more than one statement.
	* match.pd: Convert most single_use conditionals to :s flags.

2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
	(ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.

2015-07-09  Andrew MacLeod  <amacleod@redhat.com>

	* flags.h: Don't include flag-types.h or options.h.
	* opts-common.c: Adjust includes.
	* opts-global.c: Likewise.
	* common/config/epiphany/epiphany-common.c: Likewise.

2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66818
	* config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
	for IA MCU.

2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66817
	* config/i386/i386.c (ix86_return_in_memory): Return true
	if int_size_in_bytes returns negative for IA MCU.

2015-07-09  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/66718
	* Makefile.in (OBJS): Add gimple-laddress.o.
	* passes.def: Schedule pass_laddress.
	* timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
	* tree-pass.h (make_pass_laddress): Declare.
	* gimple-laddress.c: New file.

2015-07-09  Richard Biener  <rguenther@suse.de>

	* toplev.c (compile_file): Reset maximum_field_alignment after parsing.

2015-07-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66807
	* tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.

2015-07-08  Kito Cheng  <kito.cheng@gmail.com>

	* function.c (stack_protect_epilogue): Use if rather than switch for
	check targetm.have_stack_protect_test.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
	* config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
	* config/arc/arc.h: Likewise.
	* config/arm/arm.h: Likewise.
	* config/bfin/bfin.h: Likewise.
	* config/epiphany/epiphany.h: Likewise.
	* config/frv/frv.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/iq2000/iq2000.h: Likewise.
	* config/lm32/lm32.h: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/mep/mep.h: Likewise.
	* config/microblaze/microblaze.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/mn10300/mn10300.h: Likewise.
	* config/nds32/nds32.h: Likewise.
	* config/nios2/nios2.h: Likewise.
	* config/pa/pa.h: Likewise.
	* config/rl78/rl78.h: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/tilegx/tilegx.h: Likewise.
	* config/tilepro/tilepro.h: Likewise.
	* config/v850/v850.h: Likewise.
	* config/xtensa/xtensa.h: Likewise.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Adjust.
	* combine.c (simplify_set): Likewise.
	(simplify_comparison): Likewise.
	* expr.c (store_constructor): Likewise.
	* internal-fn.c (expand_arith_overflow): Likewise.
	* reload.c (push_reload): Likewise.
	(find_reloads): Likewise.
	(find_reloads_subreg_address): Likewise.
	* reload1.c (eliminate_regs_1): Likewise.
	* rtlanal.c (nonzero_bits1): Likewise.
	(num_sign_bit_copies1): Likewise.
	* simplify-rtx.c (simplify_truncation): Likewise.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
	of AUTO_INC_DEC with the preprocessor.
	* combine.c (combine_instructions): Likewise.
	(can_combine_p): Likewise.
	(try_combine): Likewise.
	* emit-rtl.c (try_split): Likewise.
	* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
	* lower-subreg.c (resolve_simple_move): Likewise.
	* lra.c (update_inc_notes): Likewise.
	* recog.c (asm_operand_ok): Likewise.
	(constrain_operands): Likewise.
	* regrename.c (scan_rtx_address): Likewise.
	* reload.c (update_auto_inc_notes): Likewise.
	(reg_inc_found_and_valid_p): Likewise.
	* reload1.c (reload): Likewise.
	(emit_input_reload_insns): Likewise.
	(delete_output_reload): Likewise.
	* sched-deps.c (init_insn_reg_pressure_info): Likewise.
	* valtrack.c (cleanup_auto_inc_dec): Likewise.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtl.h: Always define AUTO_INC_DEC.
	* auto-inc-dec.c (pass_inc_dec::execute): Adjust.
	* combine.c (combine_instructions): Likewise.
	(can_combine_p): Likewise.
	(try_combine): Likewise.
	* emit-rtl.c (try_split): Likewise.
	* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
	* lower-subreg.c (resolve_simple_move): Likewise.
	* lra.c (update_inc_notes): Likewise.
	* recog.c (asm_operand_ok): Likewise.
	(constrain_operands): Likewise.
	* regrename.c (scan_rtx_address): Likewise.
	* reload.c (update_auto_inc_notes): Likewise.
	(find_equiv_reg): Likewise.
	* reload1.c (reload): Likewise.
	(reload_as_needed): Likewise.
	(choose_reload_regs): Likewise.
	(emit_input_reload_insns): Likewise.
	(delete_output_reload): Likewise.
	* sched-deps.c (init_insn_reg_pressure_info): Likewise.
	* valtrack.c (cleanup_auto_inc_dec): Likewise.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c (can_combine_def_p): Don't check the value of
	HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
	(combinable_i3pat): Likewise.
	(mark_used_regs_combine): Likewise.
	* regrename.c (rename_chains): Likewise.
	* reload.c (find_reloads_address): Likewise.
	* sel-sched.c (mark_unavailable_hard_regs): Likewise.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c (update_rsp_from_reg_equal): Don't check if
	SHORT_IMMEDIATES_SIGN_EXTEND is defined.
	(reg_nonzero_bits_for_combine): Likewise.
	* config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
	1.
	* config/frv/frv.h: Likewise.
	* config/lm32/lm32.h: Likewise.
	* config/mep/mep.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/sh/sh.h: Likewise.
	* config/tilegx/tilegx.h (enum reg_class): Likewise.
	* config/tilepro/tilepro.h: Likewise.
	* defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Adjust.
	* rtlanal.c (nonzero_bits1): Likewise.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
	with the preprocessor.
	(combine_instructions): Likewise.
	(try_combine): Likewise.
	(subst): Likewise.
	(distribute_notes): Likewise.

2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
	defined.
	(simplify_set): Likewise.
	* cse.c (cse_insn): Likewise.
	* fold-const.c (fold_single_bit_test): Likewise.
	(fold_unary_loc): Likewise.
	* postreload.c (reload_cse_simplify_set): Likewise.
	(reload_cse_simplify_operands): Likewise.

2015-07-08  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
	(TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.

2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66746
	* config/i386/x86intrin.h: Include <adxintrin.h> even if
	__iamcu__ is defined.

2015-07-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.

2015-07-08  Iain Sandoe  <iain@codesourcery.com>

	PR target/66523
	* config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
	names from preservation.

2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66806
	* config/i386/i386.c (type_natural_mode): Don't warn vector ABI
	change for IAMCU.
	(function_arg_advance_32): Don't pass vectors in registers for
	IAMCU.
	(function_arg_32): Likewise.
	(ix86_return_in_memory): Don't return vectors in registers for
	IAMCU.

2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/66334
	* ira-lives.c (process_bb_node_lives): Make conflicts with PIC
	hard regno live at the start of BB with incoming abnormal edges.
	* lra-lives.c (process_bb_lives): Ditto.

2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/65099
	* config/nvptx/mkoffload.c (main): Create an offload image only in
	64-bit configurations.

2015-07-08  Martin Liska  <mliska@suse.cz>

	PR bootstrap/66744
	* tree-sra.c (create_access_1): Call ctor without brackets.
	(create_artificial_child_access): Likewise.

2015-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66793
	* gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
	Properly split the block after stmts ending it.

2015-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66794
	* passes.c (execute_function_todo): Assert that post-dominators
	are not computed.
	* gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
	Free post-dominators.

2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_init_frame_layout): Replace assertion
	with early exit.

2015-07-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
	more than or equal 8 and less than 32 when optimizing for size.

2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
	COSTS_N_INSNS (1) and increment it appropriately throughout the
	function.

2015-07-08  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_widened_comparison): Fix inverted comparison.

2015-07-08  Alan Modra  <amodra@gmail.com>

	* target.def (rtx_costs): Remove "code" param, add "mode".
	* rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
	(set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
	(set_rtx_cost, get_full_set_rtx_cost): Move later in file.
	* rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
	call.  Track mode when given in rtx.
	(get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
	(default_address_cost): Pass Pmode to rtx_cost.
	(insn_rtx_cost): Pass dest mode of set to set_src_cost.
	* cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
	with NULL set.
	* cse.c (COST, COST_IN): Add MODE param.  Update all uses.
	(notreg_cost): Add mode param.  Use it.
	* gcse.c (want_to_gcse_p): Delete forward declaration.  Add
	mode param and pass to set_src_cost.  Update all calls.
	(hash_scan_set): Formatting.
	* hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
	(hook_bool_rtx_mode_int_int_intp_bool_false): New function.
	* hooks.h: Ditto.
	* expmed.c (init_expmed_one_conv, init_expmed_one_mode,
	init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
	emit_store_flag): Update set_src_cost and rtx_cost calls.
	* auto-inc-dec.c (attempt_change): Likewise.
	* calls.c (precompute_register_parameters): Likewise.
	* combine.c (expand_compound_operation, make_extraction,
	force_to_mode, distribute_and_simplify_rtx): Likewise.
	* dojump.c (prefer_and_bit_test): Likewise.
	* dse.c (find_shift_sequence): Likewise.
	* expr.c (compress_float_constant): Likewise.
	* fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
	* ifcvt.c (noce_try_sign_mask): Likewise.
	* loop-doloop.c (doloop_optimize): Likewise.
	* loop-invariant.c (create_new_invariant): Likewise.
	* lower-subreg.c (shift_cost, compute_costs): Likewise.
	* optabs.c (avoid_expensive_constant, prepare_cmp_insn,
	lshift_cheap_p): Likewise.
	* postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
	try_replace_in_use, reload_cse_move2add): Likewise.
	* reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
	Likewise.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.
	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
	add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
	to rtx_cost calls.
	* config/alpha/alpha.c (alpha_rtx_costs): Likewise.
	* config/arc/arc.c (arc_rtx_costs): Likewise.
	* config/arm/arm.c (arm_rtx_costs): Likewise.
	* config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
	* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
	* config/cris/cris.c (cris_rtx_costs): Likewise.
	* config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
	* config/frv/frv.c (frv_rtx_costs): Likewise.
	* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
	* config/i386/i386.c (ix86_rtx_costs): Likewise.
	* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
	* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
	* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
	* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
	* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
	* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
	* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
	* config/mep/mep.c (mep_rtx_cost): Likewise.
	* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
	* config/mips/mips.c (mips_rtx_costs): Likewise.
	* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
	* config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
	* config/msp430/msp430.c (msp430_rtx_costs): Likewise.
	* config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
	* config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
	* config/nds32/nds32.c (nds32_rtx_costs): Likewise.
	* config/nios2/nios2.c (nios2_rtx_costs): Likewise.
	* config/pa/pa.c (hppa_rtx_costs): Likewise.
	* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
	* config/rl78/rl78.c (rl78_rtx_costs): Likewise.
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
	* config/s390/s390.c (s390_rtx_costs): Likewise.
	* config/sh/sh.c (sh_rtx_costs): Likewise.
	* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
	* config/spu/spu.c (spu_rtx_costs): Likewise.
	* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
	* config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
	* config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
	* config/v850/v850.c (v850_rtx_costs): Likewise.
	* config/vax/vax.c (vax_rtx_costs): Likewise.
	* config/visium/visium.c (visium_rtx_costs): Likewise.
	* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
	* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
	"code" param, and pass as outer_code to first rtx_cost call.  Pass
	mode to rtx_cost calls.
	(aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
	calls.
	(aarch64_rtx_costs_wrapper): Update.
	* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
	arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
	rtx_cost calls.
	* config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
	and rtx_cost calls.
	(avr_operand_rtx_cost): Similarly.
	(avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
	for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
	* config/mips/mips.c (mips_stack_address_p): Comment typo.
	(mips_binary_cost): Update rtx_cost and set_src_cost calls.
	(mips_rtx_costs): Use GET_MODE (x) to detect const_int.
	* config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
	rtx_cost.
	(mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
	* config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
	* config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
	* doc/tm.texi: Regenerate.

2015-07-07  Andrew MacLeod  <amacleod@redhat.com>

	* tree-core.h: Include symtab.h.
	* rtl.h: Include hard-reg-set.h but not flags.h.
	(HARD_CONST): Remove condition compilation involving HARD_CONST since
	hard-reg-set.h is always included.
	* regs.h: Don't include hard-reg-set.h or rtl.h.
	* cfg.h: Include dominance.h.
	* gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
	* backend.h: New.  Aggregate commonly used backend header files.
	* gimple-ssa.h: Don't include tree-hasher.h.
	* ssa.h: New.  Aggregate commonly used SSA header files.
	* regset.h: Remove bitmap.h and hard-reg-set.h #includes.
	* sel-sched-ir.h: Flatten includes.
	* lra-int.h: Flatten completely.
	* sel-sched-dump.h: Flatten includes.
	* ira-int.h: Flatten includes.
	* gimple-streamer.h: Remove all includes.
	* cfgloop.h: Remove all #includes except cfgloopmanip.h.
	* resource.h: Flatten hard-reg-set.h and df.h.
	* sched-int.h: Flatten insn-arrt.h and df.h.
	* valtrack.h: flatten bitmap.h, df.h, and rtl.h
	* df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
	* genattrtab.c (write_header): Adjust generated includes.
	* genautomata.c (main): Likewise.
	* genconditions.c (write-header): Likewise.
	* genemit.c (main): Likewise.
	* gengtype.c (open_base_files): Likewise.
	* genopinit.c (main): Likewise.
	* genoutput.c (output_prologue): Likewise.
	* genpeep.c (main): Likewise.
	* genpreds.c (write_insn_preds_c): Likewise.
	* genrecog.c (write_header): Likewise.
	* alias.c: Adjust includes.
	* asan.c: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* ccmp.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* cppbuiltin.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* debug.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dfp.c: Likewise.
	* dojump.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* double-int.c: Likewise.
	* dse.c: Likewise.
	* dumpfile.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcc-plugin.h: Likewise.
	* gcse-common.c: Likewise.
	* gcse.c: Likewise.
	* generic-match-head.c: Likewise.
	* ggc-page.c: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-expr.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-match-head.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple-walk.c: Likewise.
	* gimple.c: Likewise.
	* gimplify-me.c: Likewise.
	* gimplify.c: Likewise.
	* godump.c: Likewise.
	* graph.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* ifcvt.c: Likewise.
	* init-regs.c: Likewise.
	* internal-fn.c: Likewise.
	* ipa-chkp.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omega.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* opts-global.c: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* real.c: Likewise.
	* realmpfr.c: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regrename.c: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl-chkp.c: Likewise.
	* rtlanal.c: Likewise.
	* rtlhooks.c: Likewise.
	* sanopt.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* stringpool.c: Likewise.
	* symtab.c: Likewise.
	* target-globals.c: Likewise.
	* targhooks.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-browser.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-scopedtables.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* ubsan.c: Likewise.
	* valtrack.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vmsdbgout.c: Likewise.
	* vtable-verify.c: Likewise.
	* web.c: Likewise.
	* wide-int.cc: Likewise.
	* xcoffout.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/aarch-common.c: Likewise.
	* config/arm/arm-builtins.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr-c.c: Likewise.
	* config/avr/avr-log.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/darwin.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/epiphany/mode-switch-use.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/ft32/ft32.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/msformat-c.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c-pragma.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep-pragma.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze-c.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430-c.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/nvptx/nvptx.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rl78/rl78-c.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390-c.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh-c.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sol2-c.c: Likewise.
	* config/sol2-cxx.c: Likewise.
	* config/sol2-stubs.c: Likewise.
	* config/sol2.c: Likewise.
	* config/sparc/sparc-c.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu-c.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/mul-tables.c: Likewise.
	* config/tilegx/tilegx-c.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/mul-tables.c: Likewise.
	* config/tilepro/tilepro-c.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/v850/v850-c.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/visium/visium.c: Likewise.
	* config/vms/vms-c.c: Likewise.
	* config/vms/vms.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2015-07-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
	Remove operand constraints.  Change operand 2 predicate to
	nonmemory operand.  Limit const_int values to mode bitsize.  Only
	allow const_int values less than 32 when optimizing for size.
	(*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
	Remove operand constraints.
	(*bt<mode>): Use SImode for const_int values less than 32.
	(regmode): Remove mode attribute.

2015-07-07  Anatoly Sokolov  <aesok@post.ru>

	* config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
	* config/moxie/moxie.c (moxie_reg_ok_for_base_p,
	  moxie_legitimate_address_p): New functions.
	  (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.

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

	PR tree-optimization/66642
	* tree-parloops.c (transform_to_exit_first_loop_alt): Update function
	header comment.  Rename split_edge variable to edge_at_split.  Split
	exit edge to create new loop exit bb.  Insert loop exit phis in new
	loop exit bb.

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

	* tree-cfg.c (get_virtual_phi): New function.
	* tree-cfg.h (get_virtual_phi): Declare.
	* tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
	(rewrite_virtuals_into_loop_closed_ssa): New function.
	* tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
	Declare.
	* tree-parloops.c (replace_uses_in_bbs_by): Remove.
	(transform_to_exit_first_loop_alt): Use
	rewrite_virtuals_into_loop_closed_ssa.

2015-07-07  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move
	(X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
	* match.pd: ... here.
	Add (X * C1) % C2 -> 0 simplification pattern derived from
	extract_muldiv_1.

2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66780
	* config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
	change for target/65249.

2015-07-07  Paulo Matos  <pmatos@broadcom.com>

	* symtab.c (address_matters_1): Fix typo in comment above.
	(can_increase_alignment_p): Likewise.

2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* function.c (free_after_compilation): Clear PROP_cfg in
	f->curr_properties.

2015-07-07  Richard Biener  <rguenther@suse.de>

	* tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
	add which use to.
	(add_control_edge): Remove excessive vertical space in dumping.
	(process_ssa_edge_worklist): Simulate at most one statement and
	return whether we did.  Do not simulate PHIs if they are in a
	BB not yet simulated.
	(ssa_propagate): Adjust to always drain the BB worklist whenever
	a BB is available there, likewise the VARYING edges list before
	the interesting edge list.

2015-07-07  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.

2015-07-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/66739
	* match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
	A - B.

2015-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
	modes for operands 0 and 3.  Use SImode for operands 2 and 3.
	Copy operand 0 to a temporary if !ext_register_operand.  Remove
	ancient extract_bit_field workaround.
	(insv<mode>_1): Rename from mov<mode>_insv_1.
	(*insvqi): Rename from *movqi_insv_2.
	* config/i386/i386.c (emit_i386_cw_initialization): Update calls
	for renamed insvsi_1.
	(promote_duplicated_reg): Ditto for renamed insv<mode>_1.

2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
	call to nvptx_reorg_subreg.

2015-07-06  Jim Wilson  <jim.wilson@linaro.org>

	* graphite-blocking.c (HAVE_isl): Include <stddef.h>.
	* graphite-dependencies.c, graphite-interchange.c,
	graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
	graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
	Likewise.

2015-07-06  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd: Remove element_mode inside HONOR_*.
	(~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
	(~X | X -> -1, ~X ^ X -> -1): Merge.
	* tree.c (build_each_one_cst): New function.
	* tree.h (build_each_one_cst): Likewise.

2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	PROCESSOR_IAMCU.

2015-07-06  Steve Ellcey  <sellcey@imgtec.com>

	* config.gcc <mips*-*-*>: Add fused-madd.opt.
	* config/mips/mips.opt (mfused-madd): Remove.
	* config/mips/mips.c (mips_rtx_costs): Update cost calculations.
	* config/mips/mips.h (TARGET_MIPS8000): New.
	(ISA_HAS_FP_MADD4_MSUB4): Remove.
	(ISA_HAS_FP_MADDF_MSUBF): Remove.
	(ISA_HAS_FP_MADD3_MSUB3): Remove.
	(ISA_HAS_NMADD4_NMSUB4): Remove.
	(ISA_HAS_NMADD3_NMSUB3): Remove.
	(ISA_HAS_FUSED_MADD4): New.
	(ISA_HAS_UNFUSED_MADD4): New.
	(ISA_HAS_FUSED_MADDF): New.
	(ISA_HAS_FUSED_MADD3): New.
	* config/mips/mips.md: (fma<mode>4) Change from insn to expand.
	(*fma<mode>4_madd3) New.
	(*fma<mode>4_madd4) New.
	(*fma<mode>4_maddf) New.
	(fms<mode>4) New.
	(*fms<mode>4_msub3) New.
	(*fms<mode>4_msub4) New.
	(fnma<mode>4) New.
	(*fnma<mode>4_nmadd3) New.
	(*fnma<mode>4_nmadd4) New.
	(fnms<mode>4) New.
	(*fnms<mode>4_nmsub3) New.
	(*fnms<mode>4_nmsub4) New.
	(*madd4<mode>) Modify to be unfused only.
	(*msub4<mode>) Modify to be unfused only.
	(*nmadd4<mode>) Modify to be unfused only.
	(*nmsub4<mode>) Modify to be unfused only.
	(*madd3<mode>) Remove.
	(*msub3<mode>) Remove.
	(*nmadd3<mode>) Remove.
	(*nmsub3<mode>) Remove.
	(*nmadd3<mode>_fastmath) Remove.
	(*nmsub3<mode>_fastmath) Remove.
	(*nmadd4<mode>_fastmath) Update condition.
	(*nmsub4<mode>_fastmath) Update condition.

2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/65956
	* config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
	alignment attribute, exploring one level down for records and arrays.

2015-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
	modes for operands 0 and 1.  Use SImode for operands 2 and 3.
	Copy operand 1 to a temporary if !ext_register_operand.  Remove
	ancient extract_bit_field workaround.
	(*extv<mode>): Rename from *mov<mode>_extv_1.
	(*extvqi): Rename from *movqi_extv_1.
	(extzv<mode>): Rename from extzv.  Use SWI248 modes for
	operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
	to a temporary if !ext_register_operand.  Remove ancient
	extract_bit_field workaround.
	(*extzv<mode>): Rename from *mov<mode>_extzv_1.
	(*extzvqi): Rename from *movqi_extzv_2.
	(*testqi_ext_3): Remove modes from const_int_operand predicated
	operands.  Add "n" constraint.
	(*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
	operand.  Add "J" constraint.
	(*btsq, *btrq, *btcq peephole2s): Remove mode from
	const_0_to_63 predicated operand.
	(regmode): New insn attribute.
	(*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
	to nonmemory_operand.  Use regmode insn attribute.
	(*jcc_bt<mode>_1): Convert operand 2 to SImode.
	(*jcc_bt<mode>_mask): Remove mode from operand 3.
	(*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
	(tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
	operands.  Use "N" constraint instead of "n".

2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.

2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66749
	* config/i386/i386.c (iamcu_cost): New.
	(m_IAMCU): Likewise.
	(initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
	(processor_target_table): Add an entry for "iamcu".
	(processor_alias_table): Likewise.
	(ix86_issue_rate): Handle PROCESSOR_IAMCU.
	(ix86_adjust_cost): Likewise.
	(ia32_multipass_dfa_lookahead): Likewise.
	* config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
	* config/i386/x86-tune.def: Updated for m_IAMCU.

2015-07-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66772
	* tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
	values are available in the PHI node BB when there are
	still unexecutable edges.

2015-07-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66767
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
	Make sure to build the alignment test on a SSA name without
	final alignment info valid only if the alignment test
	evaluates to true.

2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/66620
	* config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
	loop start when inserting LSETUP.

2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53383
	* config/i386/i386.c (ix86_option_override_internal): Allow
	-mincoming-stack-boundary=3 for 64-bit if SSE is disabled.

2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* read-md.c (decimal_string): Rename to ...
	(md_decimal_string): ... this.
	(handle_enum): Reflect this.

2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.

2015-07-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/66759
	* match.pd: Add missing constraint of y to REAL_CST in
	REAL_CST - x CMP y to y - CST CMP x simplification.

2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/66757
	* match.pd: Add missing condition to ~X ^ C -> X ^ ~C.

2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
	Delete extern declaration.
	(gprel_constant_p): Add extern declaration.
	* config/nios2/constraints.md ("S"): Use gprel_constant_p
	instead of nios2_symbol_ref_in_small_data_p.
	* config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
	(nios2_symbol_ref_in_small_data_p): Make static.
	(gprel_constant_p): Make non-static.

2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/fragments.texi (Target Fragment): Convert debian.org
	link to use https.
	* doc/install.texi (Configuration): Ditto.

2015-07-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/66718
	* tree-vect-stmts.c (vectorizable_call): Replace uses of
	GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.

	PR tree-optimization/66718
	* tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
	vectorizable_load, vectorizable_condition): Move vectype,
	nunits, ncopies computation after checking what kind of statement
	stmt is.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (extv, extzv, insv): New targetm instruction
	patterns.
	* optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
	interface.
	* recog.c (simplify_while_replacing): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (doloop_begin, doloop_end): New targetm
	instruction patterns.
	* loop-init.c: Include target.h.
	(pass_loop2::gate): Use the new targetm patterns instead of
	HAVE_*/gen_* interface.
	(pass_rtl_doloop::gate): Likewise.
	(pass_rtl_doloop::execute): Remove preprocessor condition.
	* hw-doloop.c: Build unconditionally.
	* loop-doloop.c: Likewise.
	(doloop_optimize): Use the new targetm patterns instead of
	HAVE_*/gen_* interface.
	(doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
	* modulo-sched.c (doloop_register_get): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (clear_cache): New targetm instruction pattern.
	* builtins.c (expand_builtin___clear_cache): Use it instead of
	HAVE_*/gen_* interface.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (allocate_stack, check_stack, probe_stack)
	(probe_stack_address, split_stack_prologue, split_stack_space_check):
	New targetm instruction patterns.
	* explow.c (allocate_dynamic_stack_space): Use them instead of
	HAVE_*/gen_* interface.
	(emit_stack_probe): Likewise.
	(probe_stack_range): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (stack_protect_set, stack_protect_test): New
	targetm instruction patterns.
	* cfgexpand.c (stack_protect_prologue): Use them instead of
	HAVE_*/gen_* interface.
	* function.c (stack_protect_epilogue): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* expr.h (gen_move_insn_uncast): Delete.
	* expr.c (gen_move_insn_uncast): Delete.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (restore_stack_block, restore_stack_function)
	(restore_stack_nonlocal, save_stack_block, save_stack_function)
	(save_stack_nonlocal): New targetm instruction patterns.
	* builtins.c (expand_builtin_apply): Use them instead of
	HAVE_*/gen_* interface.
	* explow.c (emit_stack_save, emit_stack_restore): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (trap): New targetm instruction pattern.
	* builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
	interface.
	* explow.c (allocate_dynamic_stack_space): Likewise.
	* ifcvt.c (find_if_header): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (prefetch): New targetm instruction pattern.
	* tree-ssa-loop-prefetch.c: Include targeth.
	(tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
	of HAVE_*/gen_* interface.
	* builtins.c (expand_builtin_prefetch): Likewise.
	* toplev.c (process_options): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (untyped_call, untyped_return): New targetm
	instruction patterns.
	* builtins.c (expand_builtin_apply): Use them instead of
	HAVE_*/gen_* interface.
	(result_vector): Define unconditionally.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
	(builtin_setjmp_setup, exception_receiver, nonlocal_goto)
	(nonlocal_goto_receiver): New targetm instruction patterns.
	* builtins.c (expand_builtin_setjmp_setup): Use them instead
	of HAVE_*/gen_* interface.
	(expand_builtin_setjmp_receiver): Likewise.
	(expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
	* except.c (expand_dw2_landing_pad_for_region): Likewise.

2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>

	* target.def: Add code_for_* hooks.
	* gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
	* defaults.h (HAVE_tablejump, gen_tablejump): Delete.
	* target-insns.def (casesi, tablejump): New targetm instruction
	patterns.
	* expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
	(do_tablejump): Likewise.
	* stmt.c (expand_switch_as_decision_tree_p): Likewise.
	(expand_sjlj_dispatch_table): Likewise.
	* targhooks.c (default_case_values_threshold): Likewise.

2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
	Use rtx_insn * instead of rtx.
	(nios2_emit_add_constant): Use rtx_insn * instead of rtx.
	(nios2_expand_prologue, nios2_expand_epilogue): Likewise.
	(nios2_call_tls_get_addr): Likewise.
	(nios2_emit_expensive_div): Likewise.
	(nios2_emit_move_sequence): Change return type to bool.
	* config/nios2/nios2-protos.h (nios2_emit_move_sequence):
	Change return type to bool.

2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR target/66747
	* config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.

2015-07-04  John David Anglin  <danglin@gcc.gnu.org>

	PR target/66114
	* config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
	of register_operand.  Remove constraint.

2015-07-04  Marc Glisse  <marc.glisse@inria.fr>

	* tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
	the first argument.

2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>

	* attribs.c (decl_attributes): Guard inform with the return value
	of the preceding warning.

2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/invoke.texi (moverride): Move to correct section.

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

	* genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
	Copy from tree.c
	(dt_operand::gen_gimple_expr): After valueizing operands
	re-canonicalize operand order for commutative tree codes.

2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66746.
	* config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
	is defined.
	(__crc32w): Likewise.
	(__crc32d): Likewise.
	(__rdpmc): Likewise.
	(__rdtscp): Likewise.
	(_rdpmc): Likewise.
	(_rdtscp): Likewise.
	* config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
	is defined.

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

	* fold-const.c (fold_mathfn_compare): Remove.
	(fold_inf_compare): Likewise.
	(fold_comparison): Move floating point comparison simplifications...
	* match.pd: ... to patterns here.  Introduce simple_comparisons
	operator list and use it for patterns formerly in fold_comparison.

2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>

	PR tree-optimization/66119
	* toplev.c (process_options): Don't set up default values for
	the sra_max_scalarization_size_{speed,size} parameters.
	* tree-sra (analyze_all_variable_accesses): If no values
	have been set for the sra_max_scalarization_size_{speed,size}
	parameters, call get_move_ratio to get target defaults.

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

	* fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
	* match.pd: ... here.

2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/37072
	* doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
	is not actually the default on FreeBSD.

2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
	definition.
	(CMPGE_8HI): Likewise.
	(CMPGE_4SI): Likewise.
	(CMPGE_2DI): Likewise.
	(CMPGE_U16QI): Likewise.
	(CMPGE_U8HI): Likewise.
	(CMPGE_U4SI): Likewise.
	(CMPGE_U2DI): Likewise.
	(CMPLE_16QI): Likewise.
	(CMPLE_8HI): Likewise.
	(CMPLE_4SI): Likewise.
	(CMPLE_2DI): Likewise.
	(CMPLE_U16QI): Likewise.
	(CMPLE_U8HI): Likewise.
	(CMPLE_U4SI): Likewise.
	(CMPLE_U2DI): Likewise.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
	ALTIVEC_BUILTIN_VEC_CMPLE.
	* config/rs6000/vector.md (vector_ge<mode>): Restrict to
	floating-point vector modes.
	(vector_nlt<mode>): New define_expand.
	(vector_nltu<mode>): Likewise.
	(vector_ngt<mode>): Likewise.
	(vector_ngtu<mode>): Likewise.

2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/66706
	* combine.c (make_compound_operation): If an AND of SUBREG of
	LSHIFTRT does not simplify, see if just the AND of SUBREG does.

2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-pass.h (make_pass_ch_vect): New.
	* passes.def: Add pass_ch_vect just before pass_if_conversion.

	* tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
	pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
	make_pass_ch_vect): New.
	(pass_ch): Extend ch_base.

	(pass_ch::execute): Move all but loop_optimizer_init/finalize to...
	(ch_base::copy_headers): ...here.

2015-07-02  Richard Biener  <rguenther@suse.de>

	* builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
	* fold-const.c (get_pointer_modulus_and_residue): Remove.
	(fold_binary_loc): Implement (T)ptr & CST in terms of
	get_pointer_alignment_1.
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
	Make sure to build the alignment test on a SSA name without
	final alignment info valid only after the prologue.

2015-07-02  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("epilogue"): Remove condition.
	("prologue"): Ditto.

2015-07-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.c (build_and_record_new_cond): Add optional
	parameter to record a condition that is false.
	(record_conditions): When recording an extra NE_EXPR that is
	true also record a EQ_EXPR that is false.

2015-07-02  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
	(tree_ssa_iv_optimize_init): Initialize iv_obstack.
	(alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
	(set_iv, find_interesting_uses_address, add_candidate_1): New
	argument to alloc_iv.
	(find_interesting_uses_op, find_interesting_uses_cond): Don't
	duplicate struct iv.
	(free_loop_data): Don't free struct iv explicitly.
	(tree_ssa_iv_optimize_finalize): Free iv_obstack.

2015-07-01  DJ Delorie  <dj@redhat.com>

	* config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
	(LIB_SPEC): Add.
	(SUPPORTS_DISCRIMINATOR): Define.

2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/66685
	* rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
	there are no CALLs in the same pattern.

2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/61047
	* rtlanal.c (get_initial_register_offset): New function.
	(rtx_addr_can_trap_p_1): Check offsets of stack references.

2015-07-01  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
	X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
	~X CMP C -> X CMP' ~C to ...
	* match.pd: ... patterns here.

2015-07-01  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
	a 16-bit value into a 20-bit memory slot.

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

	* doc/sourcebuild.texi (AArch64-specific attributes): Document
	"aarch64_tiny", "aarch64_small", "aarch64_large",
	"aarch64_little_endian", "aarch64_big_endian".

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

	* doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
	Document "aarch64_small_fpic".

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

	* configure.ac: Add check for aarch64 assembler -fpic relocation
	modifier support.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
	to -fPIC if not support of -fpic relocation modifier in assembler.

2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/66685
	* rtl.c (classify_insn): Handle returns in PARALLELs.

2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/66633
	* tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
	to true if the function is nested and if not optimizing.
	(convert_local_omp_clauses): Initialize need_frame to true if the
	function contains nested functions and if not optimizing.

2015-07-01  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
	(X & Y) ^ Y -> ~X & Y transforms to ...
	* match.pd: ... here.

2015-07-01  Richard Biener  <rguenther@suse.de>

	* genmatch.c (expr::gen_transform): Shortcut re-simplifying
	of converts to avoid uninteresting noise from the conversion
	simplifying patterns.

2015-06-30  Sandra Loosemore  <sandra@codesourcery.com>

	* config/c6x/c6x.c (try_rename_operands): Do not depend on
	gcc_assert evaluating its argument for side-effect.

2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64833
	* config/sh/sh.md (casesi_worker_1): Set length to 8 when
	flag_pic is set.

2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-streamer-out.c (class DFS): Adjust hash_scc method.
	(DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
	(hash_scc): Add this_ref_p and ref_p parameters and pass them
	to the inner DFS walk.

2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>

	* target-insns.def (jump): New targetm instruction pattern.
	* bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
	instead of gen_jump.
	(fix_up_crossing_landing_pad): Likewise.
	(add_labels_and_missing_jumps): Likewise.
	(fix_crossing_conditional_branches): Likewise.
	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
	(force_nonfallthru_and_redirect): Likewise.
	* cse.c (cse_insn): Likewise.
	* expmed.c (expand_divmod): Likewise.
	* expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
	* haifa-sched.c (init_before_recovery): Likewise.
	(sched_create_recovery_edges): Likewise.
	* ifcvt.c (find_cond_trap): Likewise.
	* optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
	(expand_float, expand_fix): Likewise.
	* stmt.c (emit_jump): Likewise.

2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>

	* defaults.h (HAVE_load_multiple, gen_load_multiple)
	(HAVE_store_multiple, gen_store_multiple): Delete.
	* target-insns.def (load_multiple, store_multiple): New targetm
	instruction patterns.
	* expr.c (move_block_to_reg, move_block_from_reg): Use them instead
	of HAVE_*/gen_* interface.

2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>

	* defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
	(HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
	(gen_mem_signal_fence): Delete.
	* target-insns.def (mem_signal_fence, mem_thread_fence)
	(memory_barrier): New targetm instruction patterns.
	* optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
	interface.
	(expand_mem_signal_fence): Likewise.

2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>

	* defaults.h (HAVE_epilogue, gen_epilogue): Delete.
	* target-insns.def (epilogue, prologue, sibcall_prologue): New
	targetm instruction patterns.
	* alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
	interface.
	* calls.c (expand_call): Likewise.
	* cfgrtl.c (cfg_layout_finalize): Likewise.
	* df-scan.c (df_get_entry_block_def_set): Likewise.
	(df_get_exit_block_use_set): Likewise.
	* dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
	* final.c (final_start_function): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	(reposition_prologue_and_epilogue_notes): Likewise.
	* reorg.c (find_end_label): Likewise.
	* toplev.c (process_options): Likewise.

2015-06-30  David Malcolm  <dmalcolm@redhat.com>

	* typed-splay-tree.h: New file.

2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR debug/66691
	* lra-int.h (lra_substitute_pseudo): Add a parameter.
	(lra_substitute_pseudo_within_insn): Ditto.
	* lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
	of constant.
	(lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
	to lra_substitute_pseudo.
	* lra-lives.c (process_bb_lives): Add an argument to
	lra_substitute_pseudo_within_insn call.
	* lra-constraints.c (inherit_reload_reg, split_reg): Add an
	argument to lra_substitute_pseudo and
	lra_substitute_pseudo_within_insn calls.
	(remove_inheritance_pseudos, undo_optional_reloads): Ditto.

2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Support i[34567]86-*-elfiamcu target.
	* config/i386/iamcu.h: New.
	* config/i386/i386.opt: Add -miamcu.
	* doc/invoke.texi: Document -miamcu.
	* common/config/i386/i386-common.c  (ix86_handle_option): Turn
	off x87/MMX/SSE/AVX codegen for -miamcu.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__iamcu/__iamcu__ for -miamcu.
	* config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
	to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
	(BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
	* config/i386/i386.c (ix86_option_override_internal): Ignore and
	warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
	MCU by default.  Default long double to 64-bit for Intel MCU.
	Turn on -freg-struct-return for Intel MCU.  Issue an error when
	-miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
	AVX is turned on.
	(function_arg_advance_32): Pass value whose size is no larger
	than 8 bytes in registers for Intel MCU.
	(function_arg_32): Likewise.
	(ix86_return_in_memory): Return value whose size is no larger
	than 8 bytes in registers for Intel MCU.
	(iamcu_alignment): New function.
	(ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
	true.
	(ix86_local_alignment): Don't increase alignment for Intel MCU.
	(x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
	true.

2015-06-30  Marek Polacek  <polacek@redhat.com>

	* match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
	both operands of the resulting expression.

	* match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
	the final expression with the operand's type and then convert
	it to the type of the expression.

2015-06-30  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
	~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
	(X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
	* match.pd: ... to patterns here.

2015-06-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66704
	* tree-vect-data-refs.c (vect_setup_realignment): Use
	make_ssa_name for non-SSA name source.

2015-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66702
	* omp-low.c (simd_clone_adjust): Handle addressable linear
	or uniform parameters or non-gimple type uniform parameters.

2015-06-30  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
	~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
	~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
	* match.pd: ... here.
	Add a few cases of A - B -> A + (-B) when B "easily" negates.
	Move (x & y) | x -> x and friends before
	(x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).

2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/leon.md (leon_load): Enable for all LEON variants if
	-mfix-ut699 is not specified.
	(leon3_load): Rename into...
	(ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
	is specified.

2015-06-30  Marek Polacek  <polacek@redhat.com>

	* fold-const.c (fold_binary_loc): Move ~X | X folding ...
	* match.pd: ... here.

2015-06-30  Richard Biener  <rguenther@suse.de>

	* target-insns.def (canonicalize_funcptr_for_compare): Add.
	* fold-const.c (build_range_check): Replace uses of
	HAVE_canonicalize_funcptr_for_compare.
	(fold_widened_comparison): Likewise.
	(fold_sign_changed_comparison): Likewise.
	* dojump.c: Include "target.h".
	(do_compare_and_jump): Replace uses of
	HAVE_canonicalize_funcptr_for_compare and
	gen_canonicalize_funcptr_for_compare.
	* expr.c (do_store_flag): Likewise.

2015-06-30  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66652
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
	max_loop_iterations to determine if nit + 1 overflows.

2015-06-30  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (register_edge_assert_for_2): Also register
	asserts for dominating conversion results.

2015-06-30  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
	field in struct iv.

2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>

	PR target/66509
	* configure.ac: Fix filds and fildq test for 64-bit.
	* configure: Regenerated.

2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
	(nvptx_reorg): Here.  Keep the non-subreg pieces.

2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
	PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.

2015-06-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc_1): Use %! in asm template.
	Set attribute "length_nobnd" instead of "length".
	(*jcc_2): Ditto.
	(jump): Ditto.
	(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.

2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (nios2_delegitimize_address): Make
	assert less restrictive.

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* cgraphunit.c (cgraph_node::finalize_function): Do not call
	do_warn_unused_parameter.
	* function.c (do_warn_unused_parameter): Move from here.
	* function.h (do_warn_unused_parameter): Do not declare.

2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* gcc.target/arm/armv-sync-comp-swap.c: New.
	* gcc.target/arm/armv-sync-op-acquire.c: New.
	* gcc.target/arm/armv-sync-op-full.c: New.
	* gcc.target/arm/armv-sync-op-release.c: New.

2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
	initial acquire barrier with final barrier.

2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
	initial acquire barrier with final barrier.

2015-06-29  Richard Henderson  <rth@redhat.com>

	* config/i386/constraints.md (Bf): New constraint.
	* config/i386/i386-c.c (ix86_target_macros): Define
	__GCC_ASM_FLAG_OUTPUTS__.
	* config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
	as flags outputs.
	* doc/extend.texi (FlagOutputOperands): Document them.

2015-06-29  Jiong Wang  <jiong.wang@arm.com>

	* config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
	* config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
	unspec name.
	(tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
	* config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
	SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
	(aarch64_symbol_context): Ditto.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
	and use new pattern name.
	(aarch64_expand_mov_immediate): Ditto.
	(aarch64_print_operand): Ditto.
	(aarch64_classify_tls_symbol): Ditto.

2015-06-29  Marek Polacek  <polacek@redhat.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
	* match.pd: ... pattern here.

2015-06-29  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
	function structure.

2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/invoke.texi (Aarch64 Options, -march): Split out arch and
	feature description, split out the native option, add a link to
	the feature documentation, rearrange and slightly rewrite text.
	(Aarch64 options, -mcpu): Likewise.
	(Aarch64 options, Feature Modifiers): Add an anchor.  Mention
	+rdma implies Adv. SIMD.

2015-06-29  Marek Polacek  <polacek@redhat.com>

	PR c/66322
	* function.c (stack_protect_epilogue): Remove a cast to int.
	* doc/invoke.texi: Update -Wswitch-bool description.

2015-06-29  Richard Biener  <rguenther@suse.de>

	* genmatch.c (add_operator): Treat ADDR_EXPR as atom.
	* fold-const.c (fold_binary_loc): Move &A - &B simplification
	via ptr_difference_const ...
	* match.pd: ... here.
	When matching (X ^ Y) == Y also match with swapped operands.

2015-06-29  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 5.

2015-06-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66677
	* tree-vect-stmts.c (vect_transform_stmt): Make assert about
	STMT_VINFO_VEC_STMT clobbering less strict.

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64130
	* tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
	division, compute max and min when value ranges for dividend and
	divisor are available.

2015-06-28  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* regrename.h (regrename_do_replace): Change to return bool.
	* regrename.c (rename_chains): Check return value of
	regname_do_replace.
	(regrename_do_replace): Re-validate the modified insns and
	return bool status.
	* config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
	Update to match rename_chains changes.
	* config/c6x/c6x.c (try_rename_operands): Assert that
	regrename_do_replace returns true.

2015-06-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
	operand 2 here.  Use copy_addr_to_reg to copy non-index
	register operand 2 to a temporary.
	(<mode>_stx): Ditto for operand 1.
	(*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
	* config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
	(ix86_store_bounds): Ditto.

2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>

	* print-tree.c (print_node) [TREE_VEC]: Print its length.

2015-06-26  Andrew MacLeod  <amacleod@redhat.com>

	* gimple.c (gimple_call_set_fndecl): Remove.
	* gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
	build1_loc directly instead of build_fold_addr_expr_loc.

2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-map.h (hash_map::traverse): Use the definition of the
	Key typedef rather than the typedef itself.

2015-06-26  Martin Jambor  <mjambor@suse.cz>

	PR debug/66301
	* tree-ssa-pre.c (before_dom_children): Check that dump_file is not
	NULL instead of calling dump_enabled_p.

2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.opt: (override): New.
	* doc/invoke.texi (override): Document.
	* config/aarch64/aarch64.c (aarch64_flag_desc): New
	(aarch64_fusible_pairs): Likewise.
	(aarch64_tuning_flags): Likewise.
	(aarch64_tuning_override_function): Likewise.
	(aarch64_tuning_override_functions): Likewise.
	(aarch64_parse_one_option_token): Likewise.
	(aarch64_parse_boolean_options): Likewise.
	(aarch64_parse_fuse_string): Likewise.
	(aarch64_parse_tune_string): Likewise.
	(aarch64_parse_one_override_token): Likewise.
	(aarch64_parse_override_string): Likewise.
	(aarch64_override_options): Parse the -override string if it
	is present.

2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (tune_params): Remove
	const from members.
	(aarch64_tune_params): Remove const, change to no longer be
	a pointer.
	* config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
	change to no longer be a pointer, initialize to generic_tunings.
	(aarch64_min_divisions_for_recip_mul): Change dereference of
	aarch64_tune_params to member access.
	(aarch64_reassociation_width): Likewise.
	(aarch64_rtx_mult_cost): Likewise.
	(aarch64_address_cost): Likewise.
	(aarch64_branch_cost): Likewise.
	(aarch64_rtx_costs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_memory_move_cost): Likewise.
	(aarch64_sched_issue_rate): Likewise.
	(aarch64_builtin_vectorization_cost): Likewise.
	(aarch64_override_options): Take a copy of the selected tuning
	struct in to aarch64_tune_params, rather than just setting
	a pointer, change dereferences of aarch64_tune_params to member
	accesses.
	(aarch64_override_options_after_change): Change dereferences of
	aarch64_tune_params to member access.
	(aarch64_macro_fusion_p): Likewise.
	(aarch_macro_fusion_pair_p): Likewise.
	* config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.

2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
	(aarch64_tune_flags): Likewise.
	(AARCH64_TUNE_FMA_STEERING): Likewise.
	* config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
	to AARCH64_FL_USE_FMA_STEERING_PASS.
	(cortex-a57.cortex-a53): Likewise.
	(cortex-a72): Use cortexa72_tunings.
	(cortex-a72.cortex-a53): Likewise.
	(exynos-m1): Likewise.
	* config/aarch64/aarch64-protos.h (tune_params): Add
	a field: extra_tuning_flags.
	* config/aarch64/aarch64-tuning-flags.def: New.
	* config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
	(aarch64_extra_tuning_flags): Likewise.
	(aarch64_tune_params): Declare here.
	* config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(cortexa72_tunings): New.
	* config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
	 (gate): Check against aarch64_tune_params.
	* config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
	aarch64-protos.h.

2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-fusion-pairs.def: New.
	* config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
	* config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
	aarch64_fusion_pairs.
	(AARCH64_FUSE_MOV_MOVK): Likewise.
	(AARCH64_FUSE_ADRP_ADD): Likewise.
	(AARCH64_FUSE_MOVK_MOVK): Likewise.
	(AARCH64_FUSE_ADRP_LDR): Likewise.
	(AARCH64_FUSE_CMP_BRANCH): Likewise.

2015-06-26  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
	SYMBOL_SMALL_GOT_28K.
	* config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
	relocation modifiers.
	(unspec): New enum "UNSPEC_GOTMALLPIC28K.
	(ldr_got_small_28k_<mode>): New.
	(ldr_got_small_28k_sidi): New.
	* config/aarch64/iterators.md (got_modifier): New mode iterator.
	* config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
	SYMBOL_SMALL_GOT_28K.
	(aarch64_rtx_costs): Add costs for new instruction sequences.
	(initialize_aarch64_code_model): Initialize new model.
	(aarch64_classify_symbol): Recognize new model and new symbol classification.
	(aarch64_asm_preferred_eh_data_format): Support new model.
	(aarch64_load_symref_appropriately): Generate new instruction
	sequences for -fpic.
	(TARGET_USE_PSEUDO_PIC_REG): New definition.
	(aarch64_use_pseudo_pic_reg): New function.

2015-06-26  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
	SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
	(aarch64_expand_mov_immediate): Ditto.
	(aarch64_print_operand): Ditto.
	(aarch64_classify_symbol): Ditto.

2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.md (call_operation): Remove unused variables.

2015-06-26  Bin Cheng  <bin.cheng@arm.com>

	PR bootstrap/66638
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
	assertion failed.  Remove assertion itself.

2015-06-26  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
	and -A CMP CST -> A CMP -CST which is redundant with a pattern
	in match.pd.
	Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
	(X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
	(X ^ C1) op C2 -> X op (C1 ^ C2) to ...
	* match.pd: ... patterns here.

2015-06-26  Marek Polacek  <polacek@redhat.com>

	* match.pd ((x | y) & ~(x & y) -> x ^ y,
	(x | y) & (~x ^ y) -> x & y): New patterns.

2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (emit): Add an optional boolean parameter to control
	whether barriers are emitted.
	* emit-rtl.c (emit): Likewise.
	* gensupport.c (get_emit_function): Return null rather than "emit".
	* genemit.c (gen_emit_seq): Handle the null return value.
	Don't emit barriers after the final instruction in the sequence.
	* gentarget-def.c (main): Don't emit barriers after the instruction.

2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_output_multireg_pop): Fix use of
	TARGET_UNIFIED_ASM.

2015-06-26  Richard Biener  <rguenther@suse.de>

	* match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.

2015-06-26  Richard Biener  <rguenther@suse.de>

	* match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
	irrespective on whether the inner operation has a single use
	of both off are constant.

2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
	    Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/66412
	* config/i386/i386.md (various splitters): Use shallow_copy_rtx
	before doing PUT_MODE or PUT_CODE on operands to avoid
	in-place RTX modification.

2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>

	* gentarget-def.c (def_target_insn): Cast return of strtol to
	unsigned int.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple.h (gimple_call_set_fn): Move inline function.
	* gimple.c (gimple_call_set_fn): Relocate here.

2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65979
	PR target/66611
	* config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
	the replacement insn will work.

2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.c (driver_handle_option): Validate -pie if PIE is enabled
	by default.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
	* cgraph.h: Include ipa-ref.h and plugin-api.h.
	(ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
	(symtab_node::address_can_be_compared_p): Move function.
	* cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
	definition here.
	* asan.c: Remove ipa-ref.h and plugin-api.h from include list.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* cfgexpand.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* coverage.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dbxout.c: Likewise.
	* dwarf2out.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fold-const.c: Likewise.
	* ggc-page.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple.c: Likewise.
	* gimplify.c: Likewise.
	* ipa-chkp.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* langhooks.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* omp-low.c: Likewise.
	* opts-global.c: Likewise.
	* passes.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* ree.c: Likewise.
	* sanopt.c: Likewise.
	* stor-layout.c: Likewise.
	* symtab.c: Likewise.
	* toplev.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* ubsan.c: Likewise.
	* value-prof.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/darwin.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/tilegx/mul-tables.c: Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c, config/alpha/alpha.c,
	config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
	config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
	config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
	config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
	config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
	config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
	config/microblaze/microblaze.c, config/mips/mips.c,
	config/mmix/mmix.c, config/mn10300/mn10300.c,
	config/moxie/moxie.c, config/msp430/msp430.c,
	config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
	config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
	config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
	config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
	config/stormy16/stormy16.c, config/tilegx/tilegx.c,
	config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
	config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
	target-def.h include.
	* config/ft32/ft32.c: Likewise.  Fix misapplied hunk.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* Makefile.in (TARGET_DEF): Add target-insns.def.
	(.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
	(build/gentarget-def.o): New rule.
	(genprogrtl): Add target-def.
	* target-insns.def, gentarget-def.c: New files.
	* target.def: Add targetm.have_* and targetm.gen_* hooks,
	based on the contents of target-insns.def.
	* defaults.h (HAVE_simple_return, gen_simple_return): Delete.
	(HAVE_return, gen_return): Delete.
	* target-def.h: Include insn-target-def.h.
	* cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
	instead of direct calls.  Rely on them to do the appropriate assertions.
	* function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
	(convert_jumps_to_returns): Use targetm interface instead of
	direct calls.
	(thread_prologue_and_epilogue_insns): Likewise.
	* reorg.c (find_end_label, dbr_schedule): Likewise.
	* shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
	* shrink-wrap.c (convert_to_simple_return): Likewise.
	(try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
	config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
	config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
	config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
	config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
	config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
	config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
	config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
	config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
	config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
	config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
	config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
	config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
	config/stormy16/stormy16.c, config/tilegx/tilegx.c,
	config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
	config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
	includes to end.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
	(unbounded_int_hashmap_traits::key_type): Likewise.
	* hash-map.h (hash_map): Get the key type from the traits.
	* hash-traits.h (default_hash_traits): By default, inherit from the
	template parameter.
	* alias.c (alias_set_traits): Delete.
	(alias_set_entry_d::children): Use alias_set_hash as the first
	template parameter.
	(record_alias_subset): Update accordingly.
	* except.c (tree_hash_traits): Delete.
	(type_to_runtime_map): Use tree_hash as the first template parameter.
	(init_eh): Update accordingly.
	* genmatch.c (capture_id_map_hasher): Delete.
	(cid_map_t): Use nofree_string_hash as first template parameter.
	* ipa-icf.h (symbol_compare_hashmap_traits): Delete.
	* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
	Use symbol_compare_hash as the first template parameter in
	subdivide_hash_map.
	* mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
	(mem_usage_pair::mem_map_t): Use mem_location_hash as the first
	template parameter.
	* passes.c (pass_registry_hasher): Delete.
	(name_to_pass_map): Use nofree_string_hash as the first template
	parameter.
	(register_pass_name): Update accordingly.
	* sanopt.c (sanopt_tree_map_traits): Delete.
	(sanopt_tree_triplet_map_traits): Delete.
	(sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
	template parameter.
	(sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
	the first template parameter.
	* sese.c (rename_map_hasher): Delete.
	(rename_map_type): Use tree_ssa_name_hash as the first template
	parameter.
	* symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
	(function_summary::m_map): Use map_hash as the first template
	parameter.
	(function_summary::release): Update accordingly.
	* tree-if-conv.c (phi_args_hash_traits): Delete.
	(predicate_scalar_phi): Use tree_operand_hash as the first template
	parameter to phi_arg_map.
	* tree-inline.h (dependence_hasher): Delete.
	(copy_body_data::dependence_map): Use dependence_hash as the first
	template parameter.
	* tree-inline.c (remap_dependence_clique): Update accordingly.
	* tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
	(decl_to_stridxlist_htab): Use tree_decl_hash as the first template
	parameter.
	(addr_stridxptr): Update accordingly.
	* value-prof.c (profile_id_traits): Delete.
	(cgraph_node_map): Use profile_id_hash as the first template
	parameter.
	(init_node_map): Update accordingly.
	* config/alpha/alpha.c (string_traits): Delete.
	(machine_function::links): Use nofree_string_hash as the first
	template parameter.
	(alpha_use_linkage, alpha_write_linkage): Update accordingly.
	* config/m32c/m32c.c (pragma_traits): Delete.
	(pragma_htab): Use nofree_string_hash as the first template parameter.
	(m32c_note_pragma_address): Update accordingly.
	* config/mep/mep.c (pragma_traits): Delete.
	(pragma_htab): Use nofree_string_hash as the first template parameter.
	(mep_note_pragma_flag): Update accordingly.
	* config/mips/mips.c (mips16_flip_traits): Delete.
	(mflip_mips16_htab): Use nofree_string_hash as the first template
	parameter.
	(mflip_mips16_use_mips16_p): Update accordingly.
	(local_alias_traits): Delete.
	(mips16_local_aliases): Use nofree_string_hash as the first template
	parameter.
	(mips16_local_alias): Update accordingly.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-map-traits.h (default_hashmap_traits): Delete.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-map-traits.h (unbounded_hashmap_traits): New class.
	(unbounded_int_hashmap_traits): Likewise.
	* cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* ipa-icf.h (symbol_compare_hash): New class.
	(symbol_compare_hashmap_traits): Use it.
	* mem-stats.h (mem_alloc_description::mem_location_hash): New class.
	(mem_alloc_description::mem_alloc_hashmap_traits): Use it.
	(mem_alloc_description::reverse_mem_map_t): Remove redundant
	default_hashmap_traits.
	* sanopt.c (sanopt_tree_triplet_hash): New class.
	(sanopt_tree_triplet_map_traits): Use it.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* gengtype-parse.c (require_template_declaration): Allow '+' in
	template parameters.  Consolidate cases.
	* hash-traits.h (int_hash): New class.
	* alias.c (alias_set_hash): New structure.
	(alias_set_traits): Use it.
	* symbol-summary.h (function_summary::map_hash): New class.
	(function_summary::summary_hashmap_traits): Use it.
	* tree-inline.h (dependence_hash): New class.
	(dependence_hasher): Use it.
	* tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
	* value-prof.c (profile_id_hash): New class.
	(profile_id_traits): Use it.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips16_flip_traits): Use it.
	(local_alias_traits, mips16_local_aliases): Convert from a map of
	rtxes to a map of symbol names.
	(mips16_local_alias): Update accordingly.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (string_hash, nofree_string_hash): New classes.
	* genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
	* passes.c (pass_registry_hasher): Likewise.
	* config/alpha/alpha.c (string_traits): Likewise.
	* config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
	* config/m32c/m32c.c (pragma_traits): Likewise.
	* config/mep/mep.c (pragma_traits): Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-hash-traits.h (tree_hash): New class.
	* except.c: Include tree-hash-traits.h.
	(tree_hash_traits): Use tree_hash.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-hash-traits.h (tree_ssa_name_hasher): New class.
	* sese.c: Include tree-hash-traits.h.
	(rename_map_hasher): Use tree_ssa_name_hasher.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-hash-traits.h (tree_decl_hash): New class.
	* tree-ssa-strlen.c: Include tree-hash-traits.h.
	(stridxlist_hash_traits): Use tree_decl_hash.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-hash-traits.h: New file.
	(tree_operand_hash): New class.
	* sanopt.c: Include tree-hash-traits.h.
	(sanopt_tree_map_traits): Use tree_operand_hash.
	* tree-if-conv.c: Include tree-hash-traits.h.
	(phi_args_hash_traits): Use tree_operand_hash.
	* tree-ssa-uncprop.c: Include tree-hash-traits.h.
	(val_ssa_equiv_hash_traits): Use tree_operand_hash.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-map-traits.h: Include hash-traits.h.
	(simple_hashmap_traits): New class.
	* mem-stats.h (hash_map): Change the default traits to
	simple_hashmap_traits<default_hash_traits<Key> >.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-table.h: Update comments.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (default_hash_traits): New structure.
	* hash-set.h (default_hashset_traits): Delete.
	(hash_set): Use default_hash_traits<Key> instead of
	default_hashset_traits.  Delete hash_entry type and use Key directly.
	* ipa-devirt.c (pair_traits): Delete.
	(default_hash_traits <type_pair>): Override.
	(odr_subtypes_equivalent_p): Remove pair_types template parameter.
	(odr_types_equivalent_p, add_type_duplicate): Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (typed_noop_remove): Don't require a pointer type.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-table.h (has_is_deleted, is_deleted_helper): Delete.
	(has_is_empty, is_empty_helper): Delete.
	(has_mark_deleted, mark_deleted_helper): Delete.
	(has_mark_empty, mark_empty_helper): Delete.
	(hash_table::is_deleted): Call the Descriptor unconditionally.
	(hash_table::is_empty): Likewise.
	(hash_table::mark_deleted): Likewise.
	(hash_table::mark_empty): Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
	redundant typedefs and members.
	* coverage.c (counts_entry): Inherit from pointer_hash.  Remove
	redundant typedefs.
	* dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
	* ipa-devirt.c (odr_name_hasher): Likewise.
	(polymorphic_call_target_hasher): Likewise.
	* ira-costs.c (cost_classes_hasher): Likewise.
	* statistics.c (stats_counter_hasher): Likewise.
	* trans-mem.c (log_entry_hasher): Likewise.
	* tree-ssa-dom.c (expr_elt_hasher): Likewise.
	* tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
	* tree-ssa-tail-merge.c (same_succ_def): Likewise.
	* var-tracking.c (variable_hasher): Likewise.
	* valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
	Remove redundant typedefs and members.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (ggc_cache_hasher): Rename to...
	(ggc_cache_remove): ...this and remove typedefs.
	(ggc_cache_ptr_hash): New class.
	* hash-table.h: Update commentary.
	* emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
	rather than ggc_cache_hasher.
	(const_wide_int_hasher, reg_attr_hasher): Likewise.
	(const_double_hasher, const_fixed_hasher): Likewise.
	* function.c (insn_cache_hasher): Likewise.
	* trans-mem.c (tm_wrapper_hasher): Likewise.
	* tree.h (tree_decl_map_cache_hasher): Likewise.
	* tree.c (type_cache_hasher, int_cst_hasher): Likewise.
	(cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
	* ubsan.c (tree_type_map_cache_hasher): Likewise.
	* varasm.c (tm_clone_hasher): Likewise.
	* config/i386/i386.c (dllimport_hasher): Likewise.
	* config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
	(tree_hasher): Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (ggc_hasher): Rename to...
	(ggc_remover): ...this and remove typedefs.
	(ggc_cache_hasher): Update accordingly.  Add typedefs.
	(ggc_ptr_hash): New class.
	* hash-table.h: Update comment.
	* cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
	ggc_hasher.
	* cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
	(tree_descriptor_hasher): Likewise.
	* cgraph.c (function_version_hasher): Likewise.
	* dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
	(decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
	(dw_loc_list_hasher, addr_hasher): Likewise.
	* function.h (used_type_hasher): Likewise.
	* function.c (temp_address_hasher): Likewise.
	* gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
	* libfuncs.h (libfunc_hasher): Likewise.
	* lto-streamer.h (decl_state_hasher): Likewise.
	* optabs.c (libfunc_decl_hasher): Likewise.
	* tree-scalar-evolution.c (scev_info_hasher): Likewise.
	* varasm.c (section_hasher, object_block_hasher): Likewise.
	(const_rtx_desc_hasher): Likewise.
	* config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
	* config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (free_ptr_hash): New class.
	* dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
	rather than typed_free_remove.  Remove redudant typedefs.
	(external_ref_hasher): Likewise.
	* except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
	(ehspec_hasher): Likewise.
	* ggc-common.c (saving_hasher): Likewise.
	* gimplify.c (gimplify_hasher): Likewise.
	* haifa-sched.c (delay_i2_hasher): Likewise.
	* loop-invariant.c (invariant_expr_hasher): Likewise.
	* loop-iv.c (biv_entry_hasher): Likewise.
	* loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
	* trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
	* tree-cfg.c (locus_discrim_hasher): Likewise.
	* tree-eh.c (finally_tree_hasher): Likewise.
	* tree-into-ssa.c (var_info_hasher): Likewise.
	* tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
	* tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
	* tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
	* tree-ssa-pre.c (expr_pred_trans_d): Likewise.
	* tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
	* tree-ssa-structalias.c (equiv_class_hasher): Likewise.
	(shared_bitmap_hasher): Likewise.
	* tree-ssa-threadupdate.c (redirection_data): Likewise.
	* tree-vectorizer.h (peel_info_hasher): Likewise.
	* tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
	* config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-table.h: Update comments.
	* hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
	(nofree_ptr_hash): New class.
	* asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.
	* attribs.c (attribute_hasher): Likewise.
	* cfg.c (bb_copy_hasher): Likewise.
	* cselib.c (cselib_hasher): Likewise.
	* dse.c (invariant_group_base_hasher): Likewise.
	* dwarf2cfi.c (trace_info_hasher): Likewise.
	* dwarf2out.c (macinfo_entry_hasher): Likewise.
	(comdat_type_hasher, loc_list_hasher): Likewise.
	* gcse.c (pre_ldst_expr_hasher): Likewise.
	* genmatch.c (id_base): Likewise.
	* genrecog.c (test_pattern_hasher): Likewise.
	* gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
	* haifa-sched.c (delay_i1_hasher): Likewise.
	* hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
	* ipa-icf.h (congruence_class_group_hash): Likewise.
	* ipa-profile.c (histogram_hash): Likewise.
	* ira-color.c (allocno_hard_regs_hasher): Likewise.
	* lto-streamer.h (string_slot_hasher): Likewise.
	* lto-streamer.c (tree_entry_hasher): Likewise.
	* plugin.c (event_hasher): Likewise.
	* postreload-gcse.c (expr_hasher): Likewise.
	* store-motion.c (st_expr_hasher): Likewise.
	* tree-sra.c (uid_decl_hasher): Likewise.
	* tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
	(ssa_name_var_hash): Likewise.
	* tree-ssa-live.c (tree_int_map_hasher): Likewise.
	* tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
	* tree-ssa-pre.c (pre_expr_d): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
	* vtable-verify.h (registration_hasher): Likewise.
	* vtable-verify.c (vtbl_map_hasher): Likewise.
	* config/arm/arm.c (libcall_hasher): Likewise.
	* config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
	* config/ia64/ia64.c (bundle_state_hasher): Likewise.
	* config/sol2.c (comdat_entry_hasher): Likewise.
	* fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
	(print_fold_checksum, fold_checksum_tree): Likewise.
	(debug_fold_checksum, fold_build1_stat_loc): Likewise.
	(fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
	(fold_build_call_array_loc): Likewise.
	* tree-ssa-ccp.c (gimple_htab): Likewise.
	* tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
	rather than pointer_type.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
	(pointer_hash::is_deleted, pointer_hash::is_empty): New functions.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-traits.h (ggc_hasher::remove): Take a reference parameter.
	(ggc_hasher::ggc_mx): Likewise.
	(ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
	that duplicate ggc_hasher ones.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-table.h (hash_table): Add gt_cleare_cache as a friend.
	(gt_cleare_cache): Check here for deleted and empty entries.
	Replace handle_cache_entry with a call to keep_cache_entry.
	* hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
	(ggc_cache_hasher::keep_cache_entry): New function.
	* trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
	(tm_wrapper_hasher::keep_cache_entry): New function.
	* tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
	(tree_vec_map_cache_hasher::keep_cache_entry): New function.
	* tree.c (type_cache_hasher::handle_cache_entry): Delete.
	(type_cache_hasher::keep_cache_entry): New function.
	(tree_vec_map_cache_hasher::handle_cache_entry): Delete.
	(tree_vec_map_cache_hasher::keep_cache_entry): New function.
	* ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
	(tree_type_map_cache_hasher::keep_cache_entry): New function.
	* varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
	(tm_clone_hasher::keep_cache_entry): New function.
	* config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
	(dllimport_hasher::keep_cache_entry): New function.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* hash-table.h: Include hash-traits.h.
	(typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
	(ggc_cache_hasher): Move to...
	* hash-traits.h: ...this new file.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* tree-core.h (struct tree_optimization_option): Make opts a pointer to
	struct cl_optimization.
	* tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
	* tree.c (make_node_stat): Allocate cl_optimization struct.
	(copy_node_stat): Allocate and copy cl_optimization struct.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* function.h (struct incoming_args): Move struct.
	(pass_by_reference, reference_callee_copied): Remove prototypes.
	* emit-rtl.h (struct incoming_args): Relocate struct here.
	* calls.h (pass_by_reference, reference_callee_copied): Relocate
	prototypes here.
	* function.c (pass_by_reference, reference_callee_copied): Move.
	* calls.c (pass_by_reference, reference_callee_copied): Relocate here.
	* cfgloop.h: Don't include tm.h or hard-reg-set.h.
	* ipa-chkp.c: Include calls.h.

2015-06-25  Andrew Macleod  <amacleod@redhat.com>

	* alias.h (alias_set_type): Move typedef.
	* coretypes.h (alias_set_type): Relocate typedef here.
	* rtl.h: Don't include alias.h.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* cgraph.h (cgraph_rtl_info): Move to rtl.h
	(cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
	and instance.
	* rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
	* cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
	doesn't exist.
	* calls.c: Include hard-reg-set.h before rtl.h.
	* ira.c: Likewise.

2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
	    Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
	Add assert.

2015-06-25  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move simplification of
	(X <<>> C1) & C2 ...
	* match.pd: ... here.

2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Add patterns for vec_conds between 1 and 0.

2015-06-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_conversion): Do not set
	STMT_VINFO_VEC_STMT for SLP.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vect_transform_stmt): Catch SLP vectorization clobbering
	STMT_VINFO_VEC_STMT.

2015-06-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
	dumping.
	(vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
	cleanup resulting dead code and parameters.
	(vect_transform_slp_perm_load): Adjust.

2015-06-25  Nick Clifton  <nickc@redhat.com>

	* config/bfin/bfin.c (bfin_expand_prologue): Set
	current_function_static_stack_size if flag_stack_usage_info is set.
	* config/ft32/ft32.c (ft32_expand_prologue): Likewise.
	* config/h8300/h8300.c (h8300_expand_prologue): Likewise.
	* config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
	* config/m32c/m32c.c (m32c_emit_prologue): Likewise.

2015-06-25  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
	comment that the generated IV is unsigned.

2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/29693
	* config/arm/arm.c (arm_dbx_register_number): Return
	DWARF_FRAME_REGISTERS by default.

2015-06-25  Tom de Vries  <tom@codesourcery.com>

	* dominance.c (calculate_dominance_info): Fix verify_dominators call
	argument.  Call verify_dominator when reusing dominator info.

2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66563
	* config/sh/sh.md (GOTaddr2picreg): Add a new operand for
	an additional element of the unspec vector.  Modify indices
	of operands.
	(builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
	* config/sh/sh.c (prepare_move_operands): Pass incremented
	const_int to gen_GOTaddr2picreg.
	(sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.

2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
	Condition on TARGET_FLOAT.

2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>

	* doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
	and (no)crypto.

2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.

	* config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
	aarch64_err_no_fpadvsimd.

	* config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
	(aarch64_layout_arg, aarch64_init_cumulative_args): Use
	aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
	(aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
	Turn error into assert, test TARGET_FLOAT.
	(aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
	TARGET_FLOAT.

2015-06-24  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/66482
	* dwarf2out.c (gen_formal_parameter_die): Remove assert.

2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.

2015-06-24  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
	__ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.

2015-06-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
	(main): Likewise.
	(lower_opt_convert): Support lowering of conditional view_convert.
	(parser::parse_operation): Likewise.
	(parser::parse_for): Likewise.

2015-06-24  Renlin Li  <renlin.li@arm.com>

	* varasm.c (emit_local): Use unsigned int for align variable.

2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/63408
	* config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
	for negative numbers.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR rtl-optimization/66306
	* reload.c (find_reloads): Swap the match_dup info for
	commutative operands.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md
	("vec_scatter_element<mode>_<non_vec_int>")
	("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
	attribute with bhfgq.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtins.def: Fix vpopct instruction comments.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtin-types.def: Add flag to indicate the
	options under which the function type is needed.
	* config/s390/s390-builtins.def: Add flag to indicate the options
	under which the builtin is enabled.
	* config/s390/s390-builtins.h: Add flags parameter to macro
	definitions.
	(bflags_for_builtin): New function.
	(flags_for_builtin): Renamed to ...
	(opflags_for_builtin): ... this.
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
	flags_for_builtin to bflags_for_builtin and
	flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
	* config/s390/s390.c: Add initialization of bflags_builtin and
	opflags_builtin arrays.
	Remove code for flags_builtin.
	(s390_init_builtins): Only create builtin function types if one of
	their flags is active.
	Only create builtins if all of their flags are active.
	(s390_expand_builtin): Rename flags_for_builtin to
	opflags_for_builtin.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vecintrin.h: Remove internal builtins.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_secondary_reload): Fix check for
	GENERAL_REGS register class.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_support_vector_misalignment): Call
	default implementation for !TARGET_VX.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_legitimate_constant_p): Add
	TARGET_VX check.

2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_vector_abi): New variable definition.
	(s390_check_type_for_vector_abi): New function.
	(TARGET_ASM_FILE_END): New macro definition.
	(s390_asm_file_end): New function.
	(s390_function_arg): Call s390_check_type_for_vector_abi.
	(s390_gimplify_va_arg): Likewise.
	* configure: Regenerate.
	* configure.ac: Check for .gnu_attribute Binutils feature.

2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>

	PR target/65803
	* config/bfin/bfin.c (hwloop_optimize): Initialize
	JUMP_LABEL for newly created jump.

2015-06-23  Tristan Gingold  <gingold@adacore.com>

	* collect-utils.c (collect_wait): Unlink the response file here
	instead of...
	(do_wait): ...here.
	(utils_cleanup): ...and here.

2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>

	* df-scan.c: Don't include target-def.h.
	* targhooks.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.

2015-06-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66636
	* tree-vect-stmts.c (vectorizable_store): Properly compute the
	def type for further defs for strided stores.

2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
	conditional selects.
	(setcc_int<mode>, setcc_float<mode>): Reformat.

2015-06-23  Marek Polacek  <polacek@redhat.com>

	* match.pd ((x + y) - (x | y) -> x & y,
	(x + y) - (x & y) -> x | y): New patterns.

2015-06-23  Ludovic Courtès  <ludo@gnu.org>

	PR 65711
	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
	'-dynamic-linker' within %{!shared: ...}.

2015-06-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66560
	* config/i386/predicates.md (addsub_vm_operator): New predicate.
	(addsub_vs_operator): Ditto.
	(addsub_vs_parallel): Ditto.
	* config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
	(avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
	Put minus RTX before plus and adjust vec_merge selector.
	(*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
	(*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
	(*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
	(addsub vec_merge splitters): New combiner splitters.
	(addsub vec_select/vec_concat splitters): Ditto.

2015-06-23  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/66449
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
	POINTER_PLUS_EXPR for pointers.

2015-06-23  Alan Modra  <amodra@gmail.com>

	* rtlanal.c (commutative_operand_precedence): Correct comments.
	* simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
	declaration.  Return an int.  Distinguish REG,REG return from
	others.
	(struct simplify_plus_minus_op_data): Make local to function.
	(simplify_plus_minus): Don't set canonicalized if merely sorting
	registers.  Avoid packing ops if nothing changes.  White space fixes.

2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>

	* gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
	-fdump-ada-spec is passed but not if -fsyntax-only is.

2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/63740
	* lra-lives.c (process_bb_lives): Check insn copying the same
	reload pseudo and don't create a copy for it.

2015-06-22  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
	for cond_stmt.

2015-06-22  Tom de Vries  <tom@codesourcery.com>

	* builtins.def (DEF_GOMP_BUILTIN): Test
	'flag_tree_parallelize_loops > 1' instead of
	'flag_tree_parallelize_loops'.  Test flag_cilkplus.

2015-06-22  Tom de Vries  <tom@codesourcery.com>

	* dominance.c (calculate_dominance_info): Verify dominators if
	early-out.

2015-06-22  Marek Polacek  <polacek@redhat.com>

	* match.pd ((x ^ y) ^ (x | y) -> x & y,
	(x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
	(x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
	(x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.

2015-06-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65871
	* config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
	cost of embedded comparison.

2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65914
	* config/rs6000/predicates.md (altivec_register_operand): Permit
	virtual stack registers.
	(vsx_register_operand): Likewise.
	(vfloat_operand): Likewise.
	(vint_operand): Likewise.
	(vlogical_operand): Likewise.

2015-06-22  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
	and single_scalar_iteration_cost members.
	(LOOP_VINFO_SCALAR_ITERATION_COST): New.
	(LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
	(vect_get_single_scalar_iteration_cost): Remove.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
	Use LOOP_VINFO_SCALAR_ITERATION_COST.
	* tree-vect-loop.c (destroy_loop_vec_info): Free
	scalar_cost_vec.
	(vect_get_single_scalar_iteration_cost): Compute result into
	LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
	LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
	(vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
	(vect_estimate_min_profitable_iters): Use them.

2015-06-22  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
	(TARGET_INSERT_ATTRIBUTES): Define.
	(thumb_flipper): New var.
	* config/arm/arm.opt (-mflip-thumb): New switch.

2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	PR ipa/65908
	* ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
	construction of arg_types.
	(sem_function::sem_function): Likewise.
	(sem_function::~sem_function): Remove destruction of arg_types.
	(sem_function::compatible_parm_types_p): New function.
	(sem_function::equals_wpa): Reorg matching of return values
	and parameter types.
	(sem_function::equals_private): Reorg mathcing of argument types.
	(sem_function::parse_tree_args): Remove.
	* ipa-icf.h (init_wpa): Do not call it.
	(parse_tree_args): Remove.
	(compatible_parm_types_p): Declare.
	(result_type): Remove.
	(arg_types): Remove.

2015-06-22  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66351
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
	initializing alias oracle; fix formating; set base_alias_set if it
	is known.

2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>

	* auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
	(parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
	(find_inc): Likewise.
	* combine.c (combine_simplify_rtx): Use std::swap instead of manually
	swapping.
	* df-core.c (df_worklist_dataflow_doublequeue): Likewise.
	* df-scan.c (df_swap_refs): Remove.
	(df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
	* dominance.c (link_roots): Use std::swap instead of manually swapping.
	* expr.c (expand_expr_real_2, do_store_flag): Likewise.
	* fold-const.c (fold_relational_const): Likewise.
	* genattrtab.c (simplify_test_exp): Likewise.
	* gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
	gimple_simplify): Likewise.
	* ifcvt.c (noce_try_abs, find_if_header): Likewise.
	* internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
	* ipa-devirt.c (add_type_duplicate): Likewise.
	* loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
	* lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
	* lra.c (lra_create_copy): Likewise.
	* lto-streamer-out.c (DFS::DFS): Likewise.
	* modulo-sched.c (get_sched_window): Likewise.
	* omega.c (omega_pretty_print_problem): Likewise.
	* optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
	* reload1.c (reloads_unique_chain_p): Likewise.
	* sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
	(exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
	use std::swap.
	* simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
	manually swapping.
	* tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
	predicate_mem_writes): Likewise.
	* tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
	* tree-predcom.c (combine_chains): Likewise.
	* tree-ssa-alias.c (nonoverlapping_component_refs_p,
	refs_may_alias_p_1): Likewise.
	* tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
	* tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
	* tree-ssa-loop-niter.c (refine_bounds_using_guard,
	number_of_iterations_cond): Likewise.
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
	* tree-vect-slp.c (vect_build_slp_tree): Likewise.
	* tree-vect-stmts.c (supportable_widening_operation): Likewise.
	* tree-vrp.c (extract_range_from_binary_expr_1,
	extract_range_from_unary_expr_1): Likewise.

2015-06-20  Marek Polacek  <polacek@redhat.com>

	* common.opt (fsanitize-undefined-trap-on-error): Add Driver.

2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66591
	* config/sh/sh.c (prepare_move_operands): Replace subreg
	index term with R0 for base and index addressing.

2015-06-19  Jim Wilson  <jim.wilson@linaro.org>

	* config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
	op1 is an fp zero.
	(movsf_aarch64): Change condition from register_operand to
	aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
	load1.  Change type for alternative 7 to store1.
	(movdf_aarch64): Likewise.

2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/vax/vax.md: Adjust sign/zero extend patterns to
	handle SUBREGs in operands[1].

2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/i386/i386.c (ix86_function_versions): Use std::swap instead
	of manually swapping.
	(expand_vec_perm_interleave2): Likewise.

2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
	reuse bounds created for abnormal ssa names.

2015-06-19  Jakub Jelinek  <jakub@redhat.com>

	* config/nvptx/nvptx.md (allocate_stack): Rename to...
	(allocate_stack_<mode>): ... this, and add :P on both
	match_operand and unspec.
	(allocate_stack): New expander.

2015-06-19  Christian Bruel  <christian.bruel@st.com>

	PR target/66541
	PR target/52144
	* config/arm/arm.c (arm_set_current_function): Handle
	explicit default options.

2015-06-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movsicc_noc_zext): New insn.
	(zero-extended cmove with mem peephole2): New pattern.
	(cmove with mem peephole2): Merge patterns.

2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.

2015-06-18  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
	* config/mips/mips.md (*madd4<mode>): Ditto.
	(*nmadd3<mode>) Ditto.
	(*nmadd4<mode>_fastmath): Ditto.
	(*nmadd3<mode>_fastmath): Ditto.
	(*nmsub4<mode>): Ditto.
	(*nmsub3<mode>): Ditto.
	(*nmsub4<mode>_fastmath): Ditto.
	(*nmsub3<mode>_fastmath): Ditto.

2015-06-18  Michael Matz  <matz@suse.de>

	PR middle-end/66253
	* tree-vect-stmts.c (vectorizable_store): Implement non-SLP
	grouped strided stores.
	(vectorizable_load): Don't use the DR from first_stmt in
	the non-SLP grouped strided case.

2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/66569
	* function.c (assign_bounds): Add arguments assign_regs,
	assign_special, assign_bt.
	(assign_parms): For vararg functions handle bounds in BT
	and special slots after incoming vararg bounds.

2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66568
	* cfgexpand.c (expand_return): Handle missing bounds.
	(expand_gimple_stmt_1): Likewise.
	* tree-chkp.c (chkp_expand_zero_bounds): New.
	* tree-chkp.h (chkp_expand_zero_bounds): New.

2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66567
	* ipa-chkp.c (chkp_maybe_create_clone): Require
	functions to be instrumentable.
	* tree-chkp.c (chkp_replace_function_pointer): Use
	chkp_instrumentable_p instead of attribute check.

2015-06-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66510
	* tree-vect-stmts.c (vectorizable_load): Properly compute the
	number of vector loads for SLP permuted loads.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
	check the stride for loop vectorization.
	(vect_enhance_data_refs_alignment): Deal with SLP adjusted
	vectorization factor.
	(vect_analyze_group_access): If the group size is not a power
	of two require a epilogue loop.
	* tree-vect-loop.c (vect_analyze_loop_2): Move alignment
	compute and optimizing and alias test pruning after final
	vectorization factor computation.
	* tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
	vector alignment.
	(vect_transform_slp_perm_load): Properly compute the original
	number of vector load stmts.

2015-06-18  Uros Bizjak  <ubizjak@gmail.com>

	* doc/invoke.texi (-fsanitize-sections): Split @var to avoid
	"unlikely character , in @var" warning.

2015-06-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
	(ix86_function_arg_advance): Ditto.
	(ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* function.h (struct rtl_data): Remove struct and accessor macros.
	* emit-rtl.h (struct rtl_data): Relocate to here.
	* Makefile.in (GTFILES): Add emit-rtl.h.
	* df-core.c: Include emit-rtl.h.
	* genattrtab.c: Likewise.
	* genconditions.c: Likewise.
	* genpreds.c: Likewise.
	* genrecog.c: Likewise.
	* regcprop.c: Likewise.
	* resource.c: Likewise.
	* sched-rgn.c: Likewise.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
	* config/i386/winnt.c: Likewise.

2015-06-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66429
	* omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
	instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
	and has_force_vectorize_loops flags from cfun into
	child_cfun.
	(expand_omp_simd): For broken loop, set cfun->has_simduid_loops
	if simduid is non-NULL.
	* tree-pass.h (make_pass_simduid_cleanup): New prototype.
	* passes.def (pass_simduid_cleanup): Add new pass after loop
	passes.
	* tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
	indirection from htab argument's type.
	(shrink_simd_arrays): New function.
	(vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
	Don't call adjust_simduid_builtins if there are no loops.
	(pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
	(pass_simduid_cleanup::execute): New method.
	(make_pass_simduid_cleanup): New function.

2017-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* tree-core.h (tree_target_option): Make opts field a pointer to a
	cl_target_option instead of an instance of the struct.
	* tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
	the structure.
	* tree.c (make_node_stat ): Allocate a cl_target_option struct for
	TARGET_OPTION_NODE.
	(copy_node_stat): Allocate and copy struct cl_target_option.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
	Remove conditional exposure of prototypes.
	(ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
	* tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
	definitions in tree.h with functions.
	* lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
	anon_aggrname_p.
	* tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.

2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
	(*cmp<mode>_signed): ... this.
	(*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
	(*cmp<mode>_unsigned): ... this.  Remove %b.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* coretypes.h: Include input.h and as-a.h.
	* rtl.h: Include input.h and as-a.h for generator files.
	* hwint.c: Include coretypes.h, don't include diagnostic-core.h.
	* vec.c: Don't include diagnostic-core.h.
	* alias.c: Do not include input.h, line-map.h or is-a.h.
	* asan.c: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* ccmp.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloop.h: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* cppbuiltin.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* debug.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* df.h: Likewise.
	* dfp.c: Likewise.
	* diagnostic-core.h: Likewise.
	* diagnostic.c: Likewise.
	* dojump.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* double-int.c: Likewise.
	* dse.c: Likewise.
	* dumpfile.c: Likewise.
	* dumpfile.h: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcc-plugin.h: Likewise.
	* gcse.c: Likewise.
	* generic-match-head.c: Likewise.
	* ggc-page.c: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-expr.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-match-head.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple-streamer.h: Likewise.
	* gimple-walk.c: Likewise.
	* gimple.c: Likewise.
	* gimplify-me.c: Likewise.
	* gimplify.c: Likewise.
	* godump.c: Likewise.
	* graph.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* ifcvt.c: Likewise.
	* init-regs.c: Likewise.
	* input.c: Likewise.
	* internal-fn.c: Likewise.
	* ipa-chkp.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omega.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* opts-global.c: Likewise.
	* opts.h: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* pretty-print.h: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* real.c: Likewise.
	* realmpfr.c: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regrename.c: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl-chkp.c: Likewise.
	* rtl-error.c: Likewise.
	* rtlanal.c: Likewise.
	* rtlhooks.c: Likewise.
	* sanopt.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* statistics.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* streamer-hooks.c: Likewise.
	* stringpool.c: Likewise.
	* symtab.c: Likewise.
	* target-globals.c: Likewise.
	* targhooks.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-browser.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-scopedtables.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* ubsan.c: Likewise.
	* valtrack.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vmsdbgout.c: Likewise.
	* vtable-verify.c: Likewise.
	* web.c: Likewise.
	* wide-int.cc: Likewise.
	* xcoffout.c: Likewise.
	* common/common-target.h: Do not include input.h, line-map.h or is-a.h.
	* common/common-targhooks.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/aarch-common.c: Likewise.
	* config/arm/arm-builtins.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr-c.c: Likewise.
	* config/avr/avr-log.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/darwin.c: Likewise.
	* config/default-c.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/epiphany/mode-switch-use.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/ft32/ft32.c: Likewise.
	* config/glibc-c.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/msformat-c.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c-pragma.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep-pragma.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze-c.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430-c.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/nvptx/nvptx.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rl78/rl78-c.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390-c.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh-c.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sol2-c.c: Likewise.
	* config/sol2-cxx.c: Likewise.
	* config/sol2-stubs.c: Likewise.
	* config/sol2.c: Likewise.
	* config/sparc/sparc-c.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu-c.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/mul-tables.c: Likewise.
	* config/tilegx/tilegx-c.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/mul-tables.c: Likewise.
	* config/tilepro/tilepro-c.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/v850/v850-c.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/visium/visium.c: Likewise.
	* config/vms/vms-c.c: Likewise.
	* config/vms/vms.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/winnt-c.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
	function.
	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.

2015-06-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
	stmts for SLP strided stores.

	Revert
	2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_conversion): Properly
	set STMT_VINFO_VEC_STMT even for the SLP case.

	2015-05-26  Michael Matz  <matz@suse.de>

	PR middle-end/66251
	* tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
	STMT_VINFO_VEC_STMT, also with SLP.

2015-06-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/56766
	* config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
	(*avx_addsubv4df3_1s): Ditto.
	(*sse3_addsubv2df3_1): Ditto.
	(*sse3_addsubv2df3_1s): Ditto.
	(*avx_addsubv8sf3_1): Ditto.
	(*avx_addsubv8sf3_1s): Ditto.
	(*sse3_addsubv4sf3_1): Ditto.
	(*sse3_addsubv4sf3_1s): Ditto.

2015-06-16  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
	(SYSROOT_SUFFIX_SPEC): Update.
	(SYSROOT_HEADERS_SUFFIX_SPEC): New.
	(STARTFILE_PREFIX_SPEC): Update.
	* config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
	(MULTILIB_REQUIRED): New.
	(MULTILIB_OSDIRNAMES): New.
	* config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
	(MULTILIB_REQUIRED): New.
	(MULTILIB_OSDIRNAMES): New.

2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-arches.def: Add "armv8.1-a".
	* config/aarch64/aarch64-options-extensions.def: Update "fP",
	"simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
	* config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
	(AARCH64_FL_PAN): New.
	(AARCH64_FL_LOR): New.
	(AARCH64_FL_RDMA): New.
	(AARCH64_FL_FOR_ARCH8_1): New.
	* doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
	-march. Add "lse", "pan", "lor", "rdma" to feature modifiers.

2015-06-16  Martin Liska  <mliska@suse.cz>

	* bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
	* hash-table.c (void dump_hash_table_loc_statistics): Add missing
	guard.

2015-06-16  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_store): Adjust.
	(vectorizable_load): Likewise.
	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
	Simplify.
	(vect_create_data_ref_ptr): Likewise.
	(bump_vector_ptr): Adjust.

2015-06-16  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): Properly start loads
	with the first element if this is grouped loads.

2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-protos.h (struct tune_params): Rename
	log_op_non_sc to log_op_non_short_circuit, and rename enum
	values to expand SC to SHORT_CIRCUIT.
	* config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
	to LOG_OP_NON_SHORT_CIRCUIT.
	(arm_fastmul_tune):Likewise
	(arm_strongarm_tune): Likewise.
	(arm_xscale_tune): Likewise.
	(arm_9e_tune): Likewise.
	(arm_marvell_pj4_tune): Likewise.
	(arm_v6t2_tune): Likewise.
	(arm_cortex_tune): Likewise.
	(arm_cortex_a8_tune): Likewise.
	(arm_cortex_a7_tune): Likewise.
	(arm_cortex_a15_tune): Likewise.
	(arm_cortex_a53_tune): Likewise.
	(arm_cortex_a57_tune): Likewise.
	(arm_xgene1_tune): Likewise.
	(arm_cortex_a5_tune): Likewise.
	(arm_cortex_a9_tune): Likewise.
	(arm_cortex_a12_tune): Likewise.
	(arm_v7m_tune): Likewise.
	(arm_cortex_m7_tune): Likewise.
	(arm_v6m_tune): Likewise.
	(arm_fa726te_tune): Likewise.

2015-06-15  David Edelsohn  <dje.gcc@gmail.com>

	* altivec.md: Delete UNSPEC_VMLADDUHM.
	(mulv4si3_p8): New pattern.
	(mulv4si3): Use it for POWER8.
	(mulv8hi3): Use vmladduhm with zero addend.
	(altivec_vmladduhm): Descriptive RTL.

2015-06-15  Jim Wilson  <jim.wilson@linaro.org>

	* config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
	to use neon_move instead of mov_imm.
	(movdi_aarch64): Change alternative 14 to use neon_move not fmov.
	(movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.

	* config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
	aarch64_float_const_zero_rtx_p check before TFmode check.
	* config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
	an fp zero.
	(movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
	code and attributes to match.  Change condition from register_operand
	to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
	neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
	to store2.

2015-06-15  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/66535
	* dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
	there is no parent.

2015-06-14  Shiva Chen  <shiva0217@gmail.com>

	* aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
	HOST_WIDE_INT parameter.

2015-06-14  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66181
	* lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
	TYPE_NO_FORCE_BLK.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.

2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (classify_insn): Declare.
	* emit-rtl.c (classify_insn): Move to...
	* rtl.c: ...here and add generator support.
	* gensupport.h (get_emit_function, needs_barrier_p): Declare.
	* gensupport.c (get_emit_function, needs_barrier_p): New functions.
	* genemit.c (gen_emit_seq): New function.
	(gen_expand, gen_split): Use it.

2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>

	* tree.c (make_vector_stat): Fix comment to state that the
	function returns a VECTOR_CST.

2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.h (add_implicit_parallel): Declare.
	* genrecog.c (add_implicit_parallel): Move to...
	* gensupport.c (add_implicit_parallel): ...here.
	(process_one_cond_exec): Use it.
	* genemit.c (gen_insn): Likewise.

2015-06-13  Iain Sandoe  <iain@codesourcery.com>

	PR bootstrap/66448
	* passes.c (rest_of_decl_compilation): Do not register globals for
	early debug if they are declared in built-ins.

2015-06-12  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (check_die): Protect with ENABLE_CHECKING.

2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
	manually swapping.
	(noce_try_cmove_arith): Likewise.
	(noce_get_alt_condition): Likewise.

2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_MWAITX_SET): New.
	(ix86_handle_option): Handle mwaitx.
	* config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
	(x86_64-*-*): Likewise.
	* config/i386/mwaitxintrin.h: New header.
	* config/i386/cpuid.h (bit_MWAITX):  Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	MWAITX support.
	* config/i386/i386.opt (mwaitx): New.
	* config/i386/i386-builtin-types.def
	(VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
	* config/i386/i386-c.c: Define __MWAITX__ if needed.
	* config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
	(PTA_MWAITX): New.
	(ix86_option_override_internal): Handle new option.
	(processor_alias_table): Added PTA_MWAITX.
	(ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
	(ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
	(ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
	IX86_BUILTIN_MONITORX  built-ins.
	* config/i386/i386.h (TARGET_MWAITX): New.
	* config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
	UNSPEC_MONITORX.
	(mwaitx):  New pattern.
	(monitorx_<mode>): New pattern.
	* config/i386/x86intrin.h: Include mwaitxintrin.h.
	* doc/extend.texi: Document monitorx and mwaitx builtins.
	* doc/invoke.texi: Document -mmwaitx option.

2015-06-12  Uros Bizjak  <ubizjak@gmail.com>

	* emit-rtl.c (need_atomic_barrier_p): Mask model with
	MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.

2015-06-11  David Edelsohn  <dje.gcc@gmail.com>

	* dbxout.c (xcoff_debug_hooks): Provide a function for
	register_main_translation_unit hook.

2015-06-11  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
	variants cases from switch.
	(rs6000_post_atomic_barrier): Same.
	(rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
	(rs6000_expand_atomic_exchange): Same.
	(rs6000_expand_atomic_op): Same.
	* config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
	SYNC variants cases from switch.
	(atomic_load): Same.
	(atomic_store): Same.

2015-06-11  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
	CONST_INT for goto.

2015-06-11  Aldy Hernandez  <aldyh@redhat.com>

	PR bootstrap/66448
	* dwarf2out.c (check_die): Check for common duplicate attributes.
	(add_location_or_const_value_attribute): Do not add duplicate
	attributes.
	(gen_formal_parameter_die): Do not add DW_AT_artificial the second
	time around.
	(gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
	(gen_type_die_with_usage): Call check_die.
	(dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.

2015-06-11  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (prune_unused_types): Handle unused top-level limbo
	dies.

2015-06-11  Marek Polacek  <polacek@redhat.com>

	* match.pd ((x & y) ^ (x | y)): Don't check for single_use.

2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/66252
	* config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
	* config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
	(*addx_extend_sp32): Fix pasto.
	(*subx_extend): Rename into...
	(*subx_extend_sp32): ...this.
	(*adddi3_extend_sp32): Add earlyclobber.
	(*subdi3_insn_sp32): Likewise.
	(*subdi3_extend_sp32): Likewise.
	(*and_not_di_sp32): Likewise.
	(*or_not_di_sp32): Likewise.
	(*xor_not_di_sp32): Likewise.
	(*negdi2_sp32): Likewise.
	(*one_cmpldi2_sp32): Likewise.

2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>

	* debug.h (struct gcc_debug_hooks): Add a
	register_main_translation_unit hook.
	* debug.c (do_nothing_debug_hooks): Provide a function for this
	new hook.
	* dbxout.c (dbx_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* dwarf2out.c (main_translation_unit): New global variable.
	(dwarf2out_register_main_translation_unit): New function
	implementing the new hook.
	(dwarf2_debug_hooks): Assign
	dwarf2out_register_main_translation_unit to this new hook.
	(dwarf2out_init): Associate any main translation unit to
	comp_unit_die ().

2015-06-11  Marek Polacek  <polacek@redhat.com>

	* match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.

2015-06-11  Marek Polacek  <polacek@redhat.com>

	* match.pd: Use single_use throughout.

2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_option_params_internal): When optimising
	for speed set max_insns_skipped when arm_restrict_it.

2015-06-11  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
	 macros in ...
	(arm_cpu_builtins): New function.
	(arm_pragma_target_parse): Call arm_cpu_builtins.
	* config/arm/arm-protos.h (arm_cpu_builtins): Declare.
	(arm_register_target_pragmas): Likewise.
	* config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
	 Call arm_register_target_pragmas.
	* config/arm/arm-c.c (arm_register_target_pragmas): New function.
	(arm_pragma_target_parse): Likewise.

2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
	of the second operand.

2015-06-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66473
	* config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
	to prepare mask operand for AVX512 modes.

2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/66474
	* doc/md.texi (Machine Constraints): Document that on the PowerPC
	if you use a constraint that targets a VSX register, you must use
	%x<n> in the template.

2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
	* config/xtensa/xtensa.md (define_attr "type"): New type "trap".
	(define_insn "trap"): New definition.

2015-06-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
	out from ...
	(vect_supported_load_permutation_p): ... here.  Handle
	supportable permutations in reductions.
	* tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
	for vectorizing strided group loads.

2015-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/66470
	* config/i386/i386.c (ix86_split_long_move): For collisions
	involving direct tls segment refs, move the UNSPEC_TP possibly
	wrapped in ZERO_EXTEND out of the address for lea, to each of
	the memory loads.

2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/sync.md (*memory_barrier): Use dmb ish instead of
	dmb sy. Adjust tabs.

2015-06-10  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_target): Remove duplicate declaration of node.

2015-06-10  Martin Liska  <mliska@suse.cz>

	PR bootstrap/66471
	* mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
	all enum values in mem_alloc_origin.
	* alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
	name.
	* alloc-pool.h (pool_allocator::pool_allocator): Likewise.
	* bitmap.c (bitmap_register): Likewise.
	(dump_bitmap_statistics): Likewise.
	* ggc-common.c (dump_ggc_loc_statistics): Likewise.
	(ggc_record_overhead): Likewise.
	* hash-map.h: Likewise.
	* hash-set.h: Likewise.
	* hash-table.c (void dump_hash_table_loc_statistics): Likewise.
	* hash-table.h: Likewise.
	* vec.c (vec_prefix::register_overhead): Likewise.
	(vec_prefix::release_overhead): Likewise.
	(dump_vec_loc_statistics): Likewise.

2015-06-09  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
	* config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
	(arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
	* config/arm/arm.h (SWITCHABLE_TARGET): Define.
	* config/arm/arm.c (arm_reset_previous_fndecl): New functions.
	(arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
	(arm_valid_target_attribute_p): Likewise.
	(arm_set_current_function, arm_can_inline_p): Likewise.
	(arm_valid_target_attribute_rec): Likewise.
	(arm_previous_fndecl): New variable.
	(TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
	(TARGET_CAN_INLINE_P): Define.
	(arm_asm_trampoline_template): Emit mode.
	(arm_file_start): Don't set unified syntax.
	(arm_declare_function_name): Set unified syntax and mode.
	(arm_option_override): Init target_option_default_node.
	and target_option_current_node.
	* config/arm/arm.md (*call_value_symbol): Set mode when possible.
	(*call_symbol): Likewise.
	* doc/extend.texi: Document ARM/Thumb target attribute.
	* doc/invoke.texi: Likewise.

2015-06-09  Alexandre Oliva  <aoliva@redhat.com>

	Revert:
	2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
	PR rtl-optimization/64164
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Moved to
	tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location.
	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
	if stack_parm is NULL.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
	fail assert on conversion between unsigned types.

2015-06-09  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65460
	* omp-low.c (expand_omp_target): Set parallelized_function on
	cgraph_node for child_fn.

2015-06-09  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
	parallelized_function before add_new_function.

2015-06-09  Andrew MacLeod  <amacleod@redhat.com>

	* gcc-plugin.h: Move decls to plugin.h and include it.
	* plugin.h: Relocate decls from gcc-plugin.h
	* ggc-page.c: Include required header files.
	* passes.c: Likewise.
	* cgraphunit.c: Likewise.

2015-06-09  Tom de Vries  <tom@codesourcery.com>

	* tree-stdarg.c (expand_ifn_va_arg_1): Handle location.

2015-06-09  Jason Merrill  <jason@redhat.com>

	PR bootstrap/66448
	* toplev.c (check_global_declaration): Don't warn about a clone.

2015-06-09  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/66299
	* match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
	((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
	patterns.

2015-06-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
	(vect_analyze_slp_instance): Instead do not falsely drop
	load permutations.

2015-06-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/66423
	* match.pd: Handle A % (unsigned)(1 << B).

2015-06-09  Aldy Hernandez  <aldyh@redhat.com>

	* varasm.c (output_object_block_htab): Remove.
	(output_object_block_compare): New.
	(output_object_blocks): Sort named object_blocks before outputting
	them.

2015-06-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66419
	* tree-vect-slp.c (vect_supported_load_permutation_p): Properly
	consider GROUP_GAP when detecting a perfect subchain.

2015-06-09  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_select_section): When -mes0 is active
	place read only data in the .frodata section.

2015-06-09  Shiva Chen  <shiva0217@gmail.com>

	* sync.md (atomic_load<mode>): Add conditional code for lda/ldr
	(atomic_store<mode>): Likewise.

2015-06-09  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (get_loop_body_in_bfs_order): Fix assert.

2015-06-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/66413
	* tree-inline.c (insert_init_debug_bind): Unshare value.

2015-06-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66396
	* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
	Rename virtual operands.

2015-06-09  Tom de Vries  <tom@codesourcery.com>

	* gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
	always return false.

2015-06-09  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/64164
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Moved to
	tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location.
	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
	if stack_parm is NULL.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
	fail assert on conversion between unsigned types.

2015-06-09  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/58315
	* tree-inline.c (reset_debug_binding): New.
	(reset_debug_bindings): Likewise.
	(expand_call_inline): Call it.

2015-06-08  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
	TYPE_STRING_FLAG.

2015-06-08  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (lto_output_location): Stream
	reserved locations correctly.
	* lto-streamer-in.c (lto_output_location): Likewise.

2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* coretypes.h: Include hash-table.h and hash-set.h for host files.
	* ggc.h: Don't include statistics.h>
	* hash-map.h: Remove all includes.
	* hash-set.h: Likewise.
	* hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
	the include list. Remove <new>.
	* inchash.h: Remove all includes.
	* mem-stats.h: Likewise.
	* vec.h: No special processing for generators or ggc.
	* alias.c : Adjust include files.
	* alloc-pool.c : Likewise.
	* alloc-pool.h : Likewise.
	* asan.c : Likewise.
	* attribs.c : Likewise.
	* auto-inc-dec.c : Likewise.
	* auto-profile.c : Likewise.
	* bb-reorder.c : Likewise.
	* bitmap.c : Likewise.
	* bitmap.h : Likewise.
	* bt-load.c : Likewise.
	* builtins.c : Likewise.
	* caller-save.c : Likewise.
	* calls.c : Likewise.
	* ccmp.c : Likewise.
	* cfg.c : Likewise.
	* cfganal.c : Likewise.
	* cfgbuild.c : Likewise.
	* cfgcleanup.c : Likewise.
	* cfgexpand.c : Likewise.
	* cfghooks.c : Likewise.
	* cfgloop.c : Likewise.
	* cfgloop.h : Likewise.
	* cfgloopanal.c : Likewise.
	* cfgloopmanip.c : Likewise.
	* cfgrtl.c : Likewise.
	* cgraph.c : Likewise.
	* cgraphbuild.c : Likewise.
	* cgraphclones.c : Likewise.
	* cgraphunit.c : Likewise.
	* cilk-common.c : Likewise.
	* combine-stack-adj.c : Likewise.
	* combine.c : Likewise.
	* compare-elim.c : Likewise.
	* context.c : Likewise.
	* convert.c : Likewise.
	* coverage.c : Likewise.
	* cppbuiltin.c : Likewise.
	* cprop.c : Likewise.
	* cse.c : Likewise.
	* cselib.c : Likewise.
	* data-streamer-in.c : Likewise.
	* data-streamer-out.c : Likewise.
	* data-streamer.c : Likewise.
	* data-streamer.h : Likewise.
	* dbxout.c : Likewise.
	* dce.c : Likewise.
	* ddg.c : Likewise.
	* debug.c : Likewise.
	* df-core.c : Likewise.
	* df-problems.c : Likewise.
	* df-scan.c : Likewise.
	* df.h : Likewise.
	* dfp.c : Likewise.
	* dojump.c : Likewise.
	* dominance.c : Likewise.
	* domwalk.c : Likewise.
	* double-int.c : Likewise.
	* dse.c : Likewise.
	* dumpfile.c : Likewise.
	* dwarf2asm.c : Likewise.
	* dwarf2cfi.c : Likewise.
	* dwarf2out.c : Likewise.
	* emit-rtl.c : Likewise.
	* et-forest.c : Likewise.
	* except.c : Likewise.
	* except.h : Likewise.
	* explow.c : Likewise.
	* expmed.c : Likewise.
	* expr.c : Likewise.
	* final.c : Likewise.
	* fixed-value.c : Likewise.
	* fold-const.c : Likewise.
	* function.c : Likewise.
	* fwprop.c : Likewise.
	* gcc-plugin.h : Likewise.
	* gcc.c : Likewise.
	* gcse-common.c : Likewise.
	* gcse.c : Likewise.
	* genattrtab.c : Likewise.
	* genautomata.c : Likewise.
	* genconditions.c : Likewise.
	* genemit.c : Likewise.
	* generic-match-head.c : Likewise.
	* genextract.c : Likewise.
	* gengtype-state.c : Likewise.
	* gengtype.c : Likewise.
	* genhooks.c : Likewise.
	* genmatch.c : Likewise.
	* genmodes.c : Likewise.
	* genrecog.c : Likewise.
	* gensupport.c : Likewise.
	* ggc-common.c : Likewise.
	* ggc-internal.h : Likewise.
	* ggc-none.c : Likewise.
	* ggc-page.c : Likewise.
	* gimple-builder.c : Likewise.
	* gimple-expr.c : Likewise.
	* gimple-fold.c : Likewise.
	* gimple-iterator.c : Likewise.
	* gimple-low.c : Likewise.
	* gimple-match-head.c : Likewise.
	* gimple-pretty-print.c : Likewise.
	* gimple-ssa-isolate-paths.c : Likewise.
	* gimple-ssa-strength-reduction.c : Likewise.
	* gimple-ssa.h : Likewise.
	* gimple-streamer-in.c : Likewise.
	* gimple-streamer-out.c : Likewise.
	* gimple-streamer.h : Likewise.
	* gimple-walk.c : Likewise.
	* gimple.c : Likewise.
	* gimplify-me.c : Likewise.
	* gimplify.c : Likewise.
	* godump.c : Likewise.
	* graph.c : Likewise.
	* graphds.c : Likewise.
	* graphite-blocking.c : Likewise.
	* graphite-dependences.c : Likewise.
	* graphite-interchange.c : Likewise.
	* graphite-isl-ast-to-gimple.c : Likewise.
	* graphite-optimize-isl.c : Likewise.
	* graphite-poly.c : Likewise.
	* graphite-scop-detection.c : Likewise.
	* graphite-sese-to-poly.c : Likewise.
	* graphite.c : Likewise.
	* haifa-sched.c : Likewise.
	* hard-reg-set.h : Likewise.
	* hw-doloop.c : Likewise.
	* ifcvt.c : Likewise.
	* inchash.c : Likewise.
	* incpath.c : Likewise.
	* init-regs.c : Likewise.
	* input.c : Likewise.
	* internal-fn.c : Likewise.
	* ipa-chkp.c : Likewise.
	* ipa-comdats.c : Likewise.
	* ipa-cp.c : Likewise.
	* ipa-devirt.c : Likewise.
	* ipa-icf-gimple.c : Likewise.
	* ipa-icf.c : Likewise.
	* ipa-inline-analysis.c : Likewise.
	* ipa-inline-transform.c : Likewise.
	* ipa-inline.c : Likewise.
	* ipa-polymorphic-call.c : Likewise.
	* ipa-profile.c : Likewise.
	* ipa-prop.c : Likewise.
	* ipa-pure-const.c : Likewise.
	* ipa-ref.c : Likewise.
	* ipa-reference.c : Likewise.
	* ipa-split.c : Likewise.
	* ipa-utils.c : Likewise.
	* ipa-visibility.c : Likewise.
	* ipa.c : Likewise.
	* ira-build.c : Likewise.
	* ira-color.c : Likewise.
	* ira-conflicts.c : Likewise.
	* ira-costs.c : Likewise.
	* ira-emit.c : Likewise.
	* ira-lives.c : Likewise.
	* ira.c : Likewise.
	* jump.c : Likewise.
	* langhooks.c : Likewise.
	* lcm.c : Likewise.
	* libfuncs.h : Likewise.
	* lists.c : Likewise.
	* loop-doloop.c : Likewise.
	* loop-init.c : Likewise.
	* loop-invariant.c : Likewise.
	* loop-iv.c : Likewise.
	* loop-unroll.c : Likewise.
	* lower-subreg.c : Likewise.
	* lra-assigns.c : Likewise.
	* lra-coalesce.c : Likewise.
	* lra-constraints.c : Likewise.
	* lra-eliminations.c : Likewise.
	* lra-lives.c : Likewise.
	* lra-remat.c : Likewise.
	* lra-spills.c : Likewise.
	* lra.c : Likewise.
	* lto-cgraph.c : Likewise.
	* lto-compress.c : Likewise.
	* lto-opts.c : Likewise.
	* lto-section-in.c : Likewise.
	* lto-section-out.c : Likewise.
	* lto-streamer-in.c : Likewise.
	* lto-streamer-out.c : Likewise.
	* lto-streamer.c : Likewise.
	* lto-streamer.h : Likewise.
	* mcf.c : Likewise.
	* mode-switching.c : Likewise.
	* modulo-sched.c : Likewise.
	* omega.c : Likewise.
	* omp-low.c : Likewise.
	* optabs.c : Likewise.
	* opts-global.c : Likewise.
	* opts.h : Likewise.
	* passes.c : Likewise.
	* plugin.c : Likewise.
	* postreload-gcse.c : Likewise.
	* postreload.c : Likewise.
	* predict.c : Likewise.
	* print-rtl.c : Likewise.
	* print-tree.c : Likewise.
	* profile.c : Likewise.
	* read-md.c : Likewise.
	* read-md.h : Likewise.
	* read-rtl.c : Likewise.
	* real.c : Likewise.
	* realmpfr.c : Likewise.
	* recog.c : Likewise.
	* ree.c : Likewise.
	* reg-stack.c : Likewise.
	* regcprop.c : Likewise.
	* reginfo.c : Likewise.
	* regrename.c : Likewise.
	* regstat.c : Likewise.
	* reload.c : Likewise.
	* reload1.c : Likewise.
	* reorg.c : Likewise.
	* resource.c : Likewise.
	* rtl-chkp.c : Likewise.
	* rtl.c : Likewise.
	* rtl.h : Likewise.
	* rtlanal.c : Likewise.
	* rtlhash.c : Likewise.
	* rtlhash.h : Likewise.
	* rtlhooks.c : Likewise.
	* sanopt.c : Likewise.
	* sched-deps.c : Likewise.
	* sched-ebb.c : Likewise.
	* sched-rgn.c : Likewise.
	* sched-vis.c : Likewise.
	* sdbout.c : Likewise.
	* sel-sched-dump.c : Likewise.
	* sel-sched-ir.c : Likewise.
	* sel-sched-ir.h : Likewise.
	* sel-sched.c : Likewise.
	* sese.c : Likewise.
	* shrink-wrap.c : Likewise.
	* shrink-wrap.h : Likewise.
	* simplify-rtx.c : Likewise.
	* stack-ptr-mod.c : Likewise.
	* statistics.c : Likewise.
	* stmt.c : Likewise.
	* stor-layout.c : Likewise.
	* store-motion.c : Likewise.
	* stringpool.c : Likewise.
	* symtab.c : Likewise.
	* target-globals.c : Likewise.
	* targhooks.c : Likewise.
	* tlink.c : Likewise.
	* toplev.c : Likewise.
	* tracer.c : Likewise.
	* trans-mem.c : Likewise.
	* tree-affine.c : Likewise.
	* tree-affine.h : Likewise.
	* tree-browser.c : Likewise.
	* tree-call-cdce.c : Likewise.
	* tree-cfg.c : Likewise.
	* tree-cfgcleanup.c : Likewise.
	* tree-chkp-opt.c : Likewise.
	* tree-chkp.c : Likewise.
	* tree-chrec.c : Likewise.
	* tree-complex.c : Likewise.
	* tree-data-ref.c : Likewise.
	* tree-dfa.c : Likewise.
	* tree-diagnostic.c : Likewise.
	* tree-dump.c : Likewise.
	* tree-eh.c : Likewise.
	* tree-eh.h : Likewise.
	* tree-emutls.c : Likewise.
	* tree-hasher.h : Likewise.
	* tree-if-conv.c : Likewise.
	* tree-inline.c : Likewise.
	* tree-inline.h : Likewise.
	* tree-into-ssa.c : Likewise.
	* tree-iterator.c : Likewise.
	* tree-loop-distribution.c : Likewise.
	* tree-nested.c : Likewise.
	* tree-nrv.c : Likewise.
	* tree-object-size.c : Likewise.
	* tree-outof-ssa.c : Likewise.
	* tree-parloops.c : Likewise.
	* tree-phinodes.c : Likewise.
	* tree-predcom.c : Likewise.
	* tree-pretty-print.c : Likewise.
	* tree-profile.c : Likewise.
	* tree-scalar-evolution.c : Likewise.
	* tree-sra.c : Likewise.
	* tree-ssa-address.c : Likewise.
	* tree-ssa-alias.c : Likewise.
	* tree-ssa-ccp.c : Likewise.
	* tree-ssa-coalesce.c : Likewise.
	* tree-ssa-copy.c : Likewise.
	* tree-ssa-copyrename.c : Likewise.
	* tree-ssa-dce.c : Likewise.
	* tree-ssa-dom.c : Likewise.
	* tree-ssa-dse.c : Likewise.
	* tree-ssa-forwprop.c : Likewise.
	* tree-ssa-ifcombine.c : Likewise.
	* tree-ssa-live.c : Likewise.
	* tree-ssa-loop-ch.c : Likewise.
	* tree-ssa-loop-im.c : Likewise.
	* tree-ssa-loop-ivcanon.c : Likewise.
	* tree-ssa-loop-ivopts.c : Likewise.
	* tree-ssa-loop-manip.c : Likewise.
	* tree-ssa-loop-niter.c : Likewise.
	* tree-ssa-loop-prefetch.c : Likewise.
	* tree-ssa-loop-unswitch.c : Likewise.
	* tree-ssa-loop.c : Likewise.
	* tree-ssa-math-opts.c : Likewise.
	* tree-ssa-operands.c : Likewise.
	* tree-ssa-phiopt.c : Likewise.
	* tree-ssa-phiprop.c : Likewise.
	* tree-ssa-pre.c : Likewise.
	* tree-ssa-propagate.c : Likewise.
	* tree-ssa-reassoc.c : Likewise.
	* tree-ssa-sccvn.c : Likewise.
	* tree-ssa-scopedtables.c : Likewise.
	* tree-ssa-sink.c : Likewise.
	* tree-ssa-strlen.c : Likewise.
	* tree-ssa-structalias.c : Likewise.
	* tree-ssa-tail-merge.c : Likewise.
	* tree-ssa-ter.c : Likewise.
	* tree-ssa-threadedge.c : Likewise.
	* tree-ssa-threadupdate.c : Likewise.
	* tree-ssa-uncprop.c : Likewise.
	* tree-ssa-uninit.c : Likewise.
	* tree-ssa.c : Likewise.
	* tree-ssanames.c : Likewise.
	* tree-stdarg.c : Likewise.
	* tree-streamer-in.c : Likewise.
	* tree-streamer-out.c : Likewise.
	* tree-streamer.c : Likewise.
	* tree-streamer.h : Likewise.
	* tree-switch-conversion.c : Likewise.
	* tree-tailcall.c : Likewise.
	* tree-vect-data-refs.c : Likewise.
	* tree-vect-generic.c : Likewise.
	* tree-vect-loop-manip.c : Likewise.
	* tree-vect-loop.c : Likewise.
	* tree-vect-patterns.c : Likewise.
	* tree-vect-slp.c : Likewise.
	* tree-vect-stmts.c : Likewise.
	* tree-vectorizer.c : Likewise.
	* tree-vectorizer.h : Likewise.
	* tree-vrp.c : Likewise.
	* tree.c : Likewise.
	* tsan.c : Likewise.
	* ubsan.c : Likewise.
	* valtrack.c : Likewise.
	* valtrack.h : Likewise.
	* value-prof.c : Likewise.
	* var-tracking.c : Likewise.
	* varasm.c : Likewise.
	* varpool.c : Likewise.
	* vec.c: Likewise.
	* vmsdbgout.c : Likewise.
	* vtable-verify.c : Likewise.
	* vtable-verify.h : Likewise.
	* web.c : Likewise.
	* wide-int.cc : Likewise.
	* xcoffout.c : Likewise.
	* config/aarch64/aarch64-builtins.c : Likewise.
	* config/aarch64/aarch64.c : Likewise.
	* config/aarch64/cortex-a57-fma-steering.c : Likewise.
	* config/alpha/alpha.c : Likewise.
	* config/arc/arc.c : Likewise.
	* config/arm/aarch-common.c : Likewise.
	* config/arm/arm-builtins.c : Likewise.
	* config/arm/arm-c.c : Likewise.
	* config/arm/arm.c : Likewise.
	* config/avr/avr-c.c : Likewise.
	* config/avr/avr-log.c : Likewise.
	* config/avr/avr.c : Likewise.
	* config/bfin/bfin.c : Likewise.
	* config/c6x/c6x.c : Likewise.
	* config/cr16/cr16.c : Likewise.
	* config/cris/cris.c : Likewise.
	* config/darwin-c.c : Likewise.
	* config/darwin.c : Likewise.
	* config/default-c.c : Likewise.
	* config/epiphany/epiphany.c : Likewise.
	* config/epiphany/mode-switch-use.c : Likewise.
	* config/epiphany/resolve-sw-modes.c : Likewise.
	* config/fr30/fr30.c : Likewise.
	* config/frv/frv.c : Likewise.
	* config/ft32/ft32.c : Likewise.
	* config/glibc-c.c : Likewise.
	* config/h8300/h8300.c : Likewise.
	* config/i386/i386-c.c : Likewise.
	* config/i386/i386.c : Likewise.
	* config/i386/msformat-c.c : Likewise.
	* config/i386/winnt-cxx.c : Likewise.
	* config/i386/winnt-stubs.c : Likewise.
	* config/i386/winnt.c : Likewise.
	* config/ia64/ia64-c.c : Likewise.
	* config/ia64/ia64.c : Likewise.
	* config/iq2000/iq2000.c : Likewise.
	* config/lm32/lm32.c : Likewise.
	* config/m32c/m32c-pragma.c : Likewise.
	* config/m32c/m32c.c : Likewise.
	* config/m32r/m32r.c : Likewise.
	* config/m68k/m68k.c : Likewise.
	* config/mcore/mcore.c : Likewise.
	* config/mep/mep-pragma.c : Likewise.
	* config/mep/mep.c : Likewise.
	* config/microblaze/microblaze-c.c : Likewise.
	* config/microblaze/microblaze.c : Likewise.
	* config/mips/mips.c : Likewise.
	* config/mmix/mmix.c : Likewise.
	* config/mn10300/mn10300.c : Likewise.
	* config/moxie/moxie.c : Likewise.
	* config/msp430/msp430-c.c : Likewise.
	* config/msp430/msp430.c : Likewise.
	* config/nds32/nds32-cost.c : Likewise.
	* config/nds32/nds32-fp-as-gp.c : Likewise.
	* config/nds32/nds32-intrinsic.c : Likewise.
	* config/nds32/nds32-isr.c : Likewise.
	* config/nds32/nds32-md-auxiliary.c : Likewise.
	* config/nds32/nds32-memory-manipulation.c : Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c : Likewise.
	* config/nds32/nds32-predicates.c : Likewise.
	* config/nds32/nds32.c : Likewise.
	* config/nios2/nios2.c : Likewise.
	* config/nvptx/nvptx.c : Likewise.
	* config/pa/pa.c : Likewise.
	* config/pdp11/pdp11.c : Likewise.
	* config/rl78/rl78-c.c : Likewise.
	* config/rl78/rl78.c : Likewise.
	* config/rs6000/rs6000-c.c : Likewise.
	* config/rs6000/rs6000.c : Likewise.
	* config/rx/rx.c : Likewise.
	* config/s390/s390-c.c : Likewise.
	* config/s390/s390.c : Likewise.
	* config/sh/sh-c.c : Likewise.
	* config/sh/sh-mem.cc : Likewise.
	* config/sh/sh.c : Likewise.
	* config/sh/sh_optimize_sett_clrt.cc : Likewise.
	* config/sh/sh_treg_combine.cc : Likewise.
	* config/sol2-c.c : Likewise.
	* config/sol2-cxx.c : Likewise.
	* config/sol2-stubs.c : Likewise.
	* config/sol2.c : Likewise.
	* config/sparc/sparc-c.c : Likewise.
	* config/sparc/sparc.c : Likewise.
	* config/spu/spu-c.c : Likewise.
	* config/spu/spu.c : Likewise.
	* config/stormy16/stormy16.c : Likewise.
	* config/tilegx/mul-tables.c : Likewise.
	* config/tilegx/tilegx-c.c : Likewise.
	* config/tilegx/tilegx.c : Likewise.
	* config/tilepro/mul-tables.c : Likewise.
	* config/tilepro/tilepro-c.c : Likewise.
	* config/tilepro/tilepro.c : Likewise.
	* config/v850/v850-c.c : Likewise.
	* config/v850/v850.c : Likewise.
	* config/vax/vax.c : Likewise.
	* config/visium/visium.c : Likewise.
	* config/vms/vms-c.c : Likewise.
	* config/vms/vms.c : Likewise.
	* config/vxworks.c : Likewise.
	* config/winnt-c.c : Likewise.
	* config/xtensa/xtensa.c : Likewise.

2015-06-08  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65378
	* ipa-utils.h (warn_types_mismatch): Update prototype.
	* ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
	parameters.
	(type_mismatch_p): New function.
	(warn_types_mismatch): Reorg to work better on non-C++ types.
	(odr_types_equivalent_p): Add loc1/loc2 parameters.
	(add_type_duplicate): Update.

2015-06-08  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/66444
	* postreload.c (reload_combine): Use get_call_reg_set_usage instead of
	call_used_regs.

2015-06-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66422
	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
	block after inserted gcc_unreachable.

2015-06-08  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_function_value): Do not promote vector types.
	(rx_promote_function_mode): Likewise.
	* config/rx/rx.h (LIBCALL_VALUE): Likewise.

2015-06-08  Jakub Jelinek  <jakub@redhat.com>

	* genattrtab.c (insn_alternatives): Change type from int *
	to uint64_t *.
	(check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
	(get_attr_value): Change type of num_alt to uint64_t.
	(compute_alternative_mask): Change return type from
	int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
	(make_alternative_compare, mk_attr_alt): Change argument type
	from int to uint64_t.
	(simplify_test_exp): Change type of i from int to uint64_t.
	Shift ((uint64_t) 1) instead of 1 up.
	(main): Adjust oballocvec first argument from int to uint64_t.
	Shift ((uint64_t) 1) instead of 1 up.

2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR other/65366
	* gdbhooks.py: Import sys.
	(intptr): New function.  Replace int(...) by intptr(...).

2015-06-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): Compute the pointer
	adjustment for gaps at the end of a SLP load group properly.
	* tree-vect-slp.c (vect_supported_load_permutation_p): Allow
	all permutations we can generate.
	(vect_transform_slp_perm_load): Use the correct group-size.

2015-06-08  Marc Glisse  <marc.glisse@inria.fr>

	* genmatch.c (expr::gen_transform): For conditions, guess the type
	from the second operand.

2015-06-08  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66442
	* gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
	if the loop latch is not a singleton.  Use
	gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.

2015-06-08  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/66452
	* toplev.c (check_global_declaration): Don't warn about artificial
	decls.

2015-06-08  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66436
	* cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
	dump file.
	* gimplify.c: Add tree-dump.h include.
	(gimplify_function_tree): Dump function to gimple dump file.
	* stor-layout.c (finalize_size_functions): Don't dump function to gimple
	dump file.

2015-06-08  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66435
	* cgraphunit.c (cgraph_node::add_new_function): Dump message on new
	function.

2015-06-06  Jan Hubicka  <hubicka@ucw.cz>

	* alias.c (get_alias_set): Be ready for TYPE_CANONICAL
	of ptr_type_node to not be ptr_to_node.
	* tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
	TREE_TYPE of pointers.
	* gimple-expr.c (useless_type_conversion): Reorder the check for
	function pointers and TYPE_CANONICAL.

2015-06-06  John David Anglin  <danglin@gcc.gnu.org>

	PR bootstrap/66319
	* config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
	defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
	Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
	later.
	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
	Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
	_INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
	_INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
	and non iso if unix2003.

2015-06-06  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.

2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>

	* emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
	rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
	cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
	except.c, final.c, function.c, gcse-common.c, genemit.c,
	haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
	lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
	sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
	shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
	more derived ones.

2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>

	* combine.c (combine_split_insns): Remove cast.
	* config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
	* config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
	* config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
	* emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
	* genemit.c (gen_split): Change return type of generated functions to
	rtx_insn.
	* genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
	(print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
	gen_peephole2_* functions.
	(print_subroutine, main): Likewise.
	* recog.c (peephole2_optimize): Remove cast.
	(peep2_next_insn): Promote return type to rtx_insn.
	* recog.h (peep2_next_insn): Fix prototype.
	* rtl.h (try_split, split_insns): Likewise.

2015-06-06  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.c (msp430_asm_integer): Support addition
	and subtraction too.

2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66410
	* config/sh/constraints.md (Sid, Ssd): New memory constraints.
	* config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
	instead of Snd.  Disparage Sid/z alternative with '^'.

2015-06-05  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c: Remove deferred_locations*.
	(dwarf2_debug_hooks): Add early_finish hook.
	Remove global_decl hook.
	Add early_global_decl and late_global_decl hook.
	New global early_dwarf.
	New structure set_early_dwarf.
	(output_die): Indicate whether a DIE was generated early
	when generating assembly with -dA.
	(struct limbo_die_struct): Document created_for field.
	Remove file_table_last_lookup.
	(remove_AT): Return TRUE if successful.
	(remove_child_TAG): Clear die_parent.
	(reparent_child): New function abstracted from...
	(splice_child_die): ...here.
	(new_die): ICE if a DIE ends up in limbo too late.
	(check_die): New.
	(defer_location): Remove.
	(add_subscript_info): Reuse DW_TAG_subrange_type if available.
	(fill_variable_array_bounds): New.
	(decl_start_label): Call fill_variable_array_bounds.
	(gen_formal_parameter_die): Rewrite to reuse previously generated
	DIEs.
	(gen_subprogram_die): Same.
	(gen_variable_die): Same.
	(gen_const_die): Same.
	(gen_label_die): Same.
	(gen_lexical_block_die): Same.
	(decl_will_get_specification_p): New.
	(local_function_static): New.
	(gen_struct_or_union_type_die): Fill in variable-length fields.
	(gen_typedef_die): Fill in variable-length typedefs.
	(gen_tagged_type_die): Gracefully return on error_mark_node.
	Handle re-entrancy.
	(gen_type_die_with_usage): Handle variable-length types.
	Remove duplicate code for ARRAY_TYPE case.
	(process_scope_var): Only process imported modules during early
	dwarf.
	(dwarf2out_early_global_decl): New.
	(dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
	(dwarf2out_type_decl): Set early_dwarf while calling
	dwarf2out_decl.
	(dwarf2out_decl): Verify that we did not recreate a previously
	generated DIE.
	Do not return on DECL_EXTERNALs in VAR_DECLs.
	Abstract some code to local_function_static.
	(lookup_filename): Remove use of file_table_last_lookup.
	Gracefully exit on missing file_name.
	(dwarf2out_finish): Verify limbo list.
	Remove deferred_locations_list use.
	Move deferred_asm_name and limbo flushing to...
	(dwarf2out_early_finish): ...here.  New.
	(dwarf2out_c_finalize): Remove set of deferred_location_list,
	deferred_asm_name, and file_table_last_lookup.
	* cgraph.h (referred_to_p): Add default argument.
	* cgraphunit.c (referred_to_p): Add and handle include_self
	argument.
	(analyze_functions): Add first_time argument.
	Call check_global_declaration for all symbols.
	Call late_global_decl for nodes for moribund nodes.
	(finalize_compilation_unit): Add new argument to
	analyze_functions.
	Call early_global_decl for functions.
	Call early_finish debug hook.
	* dbxout.c (dbxout_early_global_decl): New.
	(dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
	(dbx_debug_hooks): Add new hooks.
	(xcoff_debug_hooks): Same.
	* debug.c (do_nothing_debug_hooks): Add early_finish field.
	Add early and late debug hooks.
	Remove global_decl hook.
	* debug.h (struct gcc_debug_hooks): Add early_finish,
	early_global_decl, and late_global_decl fields.
	Remove global_decl field.
	Document gcc_debug_hooks.
	* gengtype.c (output_typename): Remove.
	* godump.c (go_early_global_decl): New.
	(go_late_global_decl): New.
	(go_global_decl): Remove.
	(dump_go_spec_init): Remove global_decl.  Add
	{early,late}_global_decl.
	* langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
	(LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
	* langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
	(write_global_declarations): Remove.
	(global_decl_processing): New.
	* langhooks.h (struct lang_hooks_for_decls): Remove
	final_write_globals field.
	Add post_compilation_parsing_cleanups field.
	* passes.c (rest_of_decl_compilation): Call early_global_decl.
	* sdbout.c: Add early and late_global_decl hooks.  Remove
	sdbout_global_decl hook.
	Add early_finish field for sdb_debug_hooks.
	(sdbout_global_decl): Remove.
	(sdbout_early_global_decl): New.
	(sdbout_late_global_decl): New.
	* timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
	* toplev.c (check_global_declaration): Rename from
	check_global_declaration_1.
	Adapt to use symtab infrastructure.
	(check_global_declarations): Remove.
	(emit_debug_global_declarations): Remove.
	(compile_file): Remove call to final_write_globals langhook.
	Run the actual compilation process.
	Perform any post compilation parser cleanups.
	Generate late debug info.
	* toplev.h (check_global_declaration): New.
	(check_global_declaration_1): Remove.
	(check_global_declarations): Remove.
	(write_global_declarations): Remove.
	(emit_debug_global_declarations): Remove.
	(global_decl_processing): New.
	* tree-core.h (struct tree_block): Add DIE field.
	* tree.h (BLOCK_DIE): New.
	* vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
	throughout.
	(vmsdbgout_early_global_decl): New.
	(vmsdbgout_late_global_decl): New.
	Add early_finish debug hook field to vmsdbg_debug_hooks.
	Remove vmsdbgout_decl to vmsdbgout_function_decl.
	Add early and late_global_decl debug hooks.

2015-06-05  Julian Brown  <julian@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
	* config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
	to print-sysroot-suffix.sh script.

2015-06-05  Tom de Vries  <tom@codesourcery.com>

	merge from gomp4 branch:
	2015-05-28  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65443
	* tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
	(replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
	(try_transform_to_exit_first_loop_alt): New function.
	(transform_to_exit_first_loop): Use
	try_transform_to_exit_first_loop_alt.

2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* builtins.c (expand_builtin_atomic_compare_exchange): Call
	emit_cmp_and_jump_insns with the mode of target.

2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/sse.md (sse3_mwait): Swap the operand constriants.

2015-06-04  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.md (movsi_s): New.  Special case for
	storing a 20-bit symbol into a 32-bit register.
	* config/msp430/msp430.c (msp430_subreg): Add support for it.
	* config/msp430/predicates.md (msp430_symbol_operand): New.

2015-06-04  Sriraman Tallam  <tmsriram@google.com>

	* calls.c (prepare_call_address): Check for noplt
	attribute.
	* config/i386/i386.c (ix86_expand_call): Check
	for noplt attribute.
	(ix86_nopic_noplt_attribute_p): New function.
	(ix86_output_call_insn): Output indirect call for non-pic
	no plt calls.
	* doc/extend.texi (noplt): Document new attribute.
	* doc/invoke.texi: Document new attribute.

2015-06-04  Andrew MacLeod  <amacleod@redhat.com>

	* coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
	real.h, and fixed-value.h when included in host source files.
	* double-int.h: Remove redundant #includes listed above.
	* fixed-value.h: Likewise.
	* real.h: Likewise.
	* wide-int.h: Likewise.
	* inchash.h: Likewise.
	* rtl.h: Add some include files When included from a generator file.
	* target.h: Remove wide-int.h and insn-modes.h from the include list.
	* internal-fn.h: Don't include coretypes.h.
	* alias.c: Adjust includes for restructured coretypes.h.
	* asan.c: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* auto-profile.c: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* ccmp.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloop.h: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* cppbuiltin.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* data-streamer-in.c: Likewise.
	* data-streamer-out.c: Likewise.
	* data-streamer.c: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* debug.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* df.h: Likewise.
	* dfp.c: Likewise.
	* dojump.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* double-int.c: Likewise.
	* dse.c: Likewise.
	* dumpfile.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarf2out.h: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcc-plugin.h: Likewise.
	* gcse.c: Likewise.
	* generic-match-head.c: Likewise.
	* ggc-page.c: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-expr.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-match-head.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple-streamer.h: Likewise.
	* gimple-walk.c: Likewise.
	* gimple.c: Likewise.
	* gimplify-me.c: Likewise.
	* gimplify.c: Likewise.
	* godump.c: Likewise.
	* graph.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* hooks.h: Likewise.
	* hw-doloop.c: Likewise.
	* ifcvt.c: Likewise.
	* incpath.c: Likewise.
	* init-regs.c: Likewise.
	* internal-fn.c: Likewise.
	* ipa-chkp.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omega.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* opts-global.c: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* real.c: Likewise.
	* realmpfr.c: Likewise.
	* realmpfr.h: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regrename.c: Likewise.
	* regs.h: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl-chkp.c: Likewise.
	* rtlanal.c: Likewise.
	* rtlhooks.c: Likewise.
	* sanopt.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* shrink-wrap.c: Likewise.
	* shrink-wrap.h: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* statistics.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* stringpool.c: Likewise.
	* symtab.c: Likewise.
	* target-globals.c: Likewise.
	* targhooks.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-affine.h: Likewise.
	* tree-browser.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-pretty-print.h: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-loop.h: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-scopedtables.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* ubsan.c: Likewise.
	* valtrack.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vmsdbgout.c: Likewise.
	* vtable-verify.c: Likewise.
	* web.c: Likewise.
	* wide-int-print.cc: Likewise.
	* wide-int-print.h: Likewise.
	* wide-int.cc: Likewise.
	* xcoffout.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/aarch-common.c: Likewise.
	* config/arm/arm-builtins.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr-c.c: Likewise.
	* config/avr/avr-log.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/darwin.c: Likewise.
	* config/default-c.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/epiphany/mode-switch-use.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/ft32/ft32.c: Likewise.
	* config/glibc-c.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/msformat-c.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c-pragma.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep-pragma.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze-c.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430-c.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/nvptx/nvptx.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rl78/rl78-c.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390-c.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh-c.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sol2-c.c: Likewise.
	* config/sol2-cxx.c: Likewise.
	* config/sol2-stubs.c: Likewise.
	* config/sol2.c: Likewise.
	* config/sparc/sparc-c.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu-c.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/mul-tables.c: Likewise.
	* config/tilegx/tilegx-c.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/mul-tables.c: Likewise.
	* config/tilepro/tilepro-c.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/v850/v850-c.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/visium/visium.c: Likewise.
	* config/vms/vms-c.c: Likewise.
	* config/vms/vms.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/winnt-c.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* common/config/bfin/bfin-common.c: Likewise.

2015-06-04  Jan Hubicka  <hubicka@ucw.cz>

	* tree.h (tree_code_for_canonical_type_merging): New function.
	* tree.c (gimple_canonical_types_compatible_p): Use
	tree_code_for_canonical_type_merging..

2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR c++/66192
	PR target/66200
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
	* target.def (TARGET_RELAXED_ORDERING): Likewise.
	* config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
	* config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
	* config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
	* config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
	* config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
	* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
	* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.

2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
	register fma steering pass.
	* config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
	AARCH64_TUNE_FMA_STEERING.

2015-06-03  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (verify_type_variant): Verify that type and variant is
	compatible.
	(gimple_canonical_types_compatible_p): Look for main variants.

2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config.gcc (powerpc*-*-*): Add support for a new configure
	option --with-advance-toolchain=<xxx> which overrides using the
	default header files, libraries and dynamic linker.

	* config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
	specs to support the configure --with-advance-toolchain=<xxx>
	option.
	(INCLUDE_EXTRA_SPEC): Likewise.
	(LINK_OS_EXTRA_SPEC32): Likewise.
	(LINK_OK_EXTRA_SPEC64): Likewise.
	(LINK_OS_NEW_DTAGS_SPEC): Likewise.
	(DYNAMIC_LINKER_PREFIX): Likewise.
	(CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
	toolchain support.
	(GLIBC_DYNAMIC_LINKER32): Likewise.
	(GLIBC_DYNAMIC_LINKER64): Likewise.
	(LINK_OS_LINUX_SPEC32): Likewise.
	(LINK_OS_LINUX_SPEC64): Likewise.

	* doc/install.texi (--enable-advance-toolchain=<xx>): Document new
	configuration option.

2015-06-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66275
	* config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
	to determine current function ABI.
	(ix86_function_value_regno_p): Ditto.

2015-06-03  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h (struct pool_usage): Correct GNU coding style.
	* bitmap.h (struct bitmap_usage): Likewise.
	* ggc-common.c (struct ggc_usage): Likewise.
	* mem-stats.h (struct mem_location): Likewise.
	(struct mem_usage): Likewise.
	* vec.c (struct vec_usage): Likewise.

2015-06-03  Benigno B. Junior  <bbj@gentoo.org>

	* config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
	-Bsymbolic.

2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>

	* doc/plugins.texi (enum plugin_event): New event.
	* plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
	and PLUGIN_FINISH_FUNCTION.
	* plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
	(PLUGIN_FINISH_PARSE_FUNCTION): Likewise.

2015-06-03  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_group_access): Properly
	compute GROUP_GAP for the first element.
	* tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
	on in-group gaps.

2015-06-03  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-real.md: Add peepholes to avoid a register
	copy when calling a function.
	* config/rl78/rl78.c (need_to_save): Do not push the frame
	pointer in an interrupt handler prologue if it is never used.

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

	* ifcvt (end_ifcvt_sequence): Fix typo in comment above.

2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_maybe_create_clone): Create alias
	reference when cloning alias node.

2015-06-03  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h (struct pool_usage): Correct space padding.
	* ggc-page.c (ggc_print_statistics): Align columns in a report.
	* mem-stats.h (struct mem_usage): Add argument to print_dash_line.
	* tree.c (dump_tree_statistics): Align columns in a report.

2015-06-03  Martin Liska  <mliska@suse.cz>

	* alloc-pool.c (allocate_pool_descriptor): Remove.
	(struct pool_output_info): Likewise.
	(print_alloc_pool_statistics): Likewise.
	(dump_alloc_pool_statistics): Likewise.
	* alloc-pool.h (struct pool_usage): New struct.
	(pool_allocator::initialize): Change usage of memory statistics
	to a new interface.
	(pool_allocator::release): Likewise.
	(pool_allocator::allocate): Likewise.
	(pool_allocator::remove): Likewise.
	* mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
	for a pool allocator.
	* mem-stats.h (struct mem_location): Add new ctor.
	(struct mem_usage): Add counter for number of
	instances.
	(mem_alloc_description::register_descriptor): New overload of
	* mem-stats.h (mem_location::to_string): New function.
	* bitmap.h (struct bitmap_usage): Use this new function.
	* ggc-common.c (struct ggc_usage): Likewise.
	the function.

2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>

	* defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
	of GCC_INSN_FLAGS_H block.

2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>

	* explow.c (plus_constant): Update check after force_const_mem call
	to see if the value returned is not a NULL_RTX.

2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa.c (symbol_table::remove_unreachable_nodes): Don't
	remove instumentation thunks calling reachable functions.
	* lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
	* lto/lto-partition.c (privatize_symbol_name_1): New.
	(privatize_symbol_name): Privatize both decl and orig_decl
	names for instrumented functions.
	* cgraph.c (cgraph_node::verify_node): Add transparent
	alias chain check for instrumented node.

2015-06-03  Marek Polacek  <polacek@redhat.com>

	PR c/64223
	PR c/29358
	* tree.c (attribute_value_equal): Handle attribute format.
	(cmp_attrib_identifiers): Factor out of lookup_ident_attribute.

2015-06-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63916
	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
	Forward-propagate non-invariant addresses by splicing their
	reference ops if the result isn't going to be used by PRE.
	(vn_reference_lookup_3): Remove pointless assert.

2015-06-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66375
	* tree-scalar-evolution.c (follow_ssa_edge_binary): First
	add to the evolution before following SSA edges.

2015-06-03  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (dump_iv): New parameter.
	(dump_use, dump_cand, find_induction_variables): Pass new argument
	to dump_iv.
	(record_use): Preserve the ssa name information in IV.

2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>

	* genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
	NO_MODE_TEST.
	(add_mode_tests): Don't add mode tests if the predicate only
	accepts scalar constant integers.  Otherwise, allow the mode
	of "op" to be VOIDmode if the predicate does accept such integers.

2015-06-02  Jim Wilson  <jim.wilson@linaro.org>

	PR target/66258
	* config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
	!TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
	(aarch64_secondary_reload): Likewise
	(aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
	to !TARGET_FLOAT.
	(aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
	Likewise.

2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	PR target/65768
	* cprop.c (try_replace_reg): Check cost of constants before propagating.

2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
	provide access to the IBM extended double floating point mode if
	long double is IEEE 128-bit floating point.
	(KFmode): Define KFmode to provide access to IEEE 128-bit floating
	point if long double is the IBM extended double type.

	* config/rs6000/rs6000.opt (-mfloat128-none): New switches to
	enable adding IEEE 128-bit floating point support.
	(-mfloat128-software): Likewise.
	(-mfloat128-sw): Likewise.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
	128-bit floating point types to occupy any register if
	-mlong-double-64.  Do not allow use of IFmode/KFmode unless
	-mfloat128-software is enabled.
	(rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
	support.
	(rs6000_option_override_internal): Add -mfloat128-* support.
	(rs6000_init_builtins): Setup __ibm128 and __float128 type modes.

	* config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
	and float128 type nodes.
	(ieee128_float_type_node): Likewise.
	(ibm128_float_type_node): Likewise.

2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66136
	* config/aarch64/geniterators.sh: Rewrite in awk.

2015-06-02  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h (pool_allocator::pool_allocator): Set implicit
	values to avoid -Wmaybe-uninitialized errors.

2015-06-02  Richard Biener  <rguenther@suse.de>

	PR debug/65549
	* dwarf2out.c (lookup_context_die): New function.
	(resolve_addr): Avoid forcing a full DIE for the
	target of a DW_TAG_GNU_call_site during late compilation.
	Instead create a stub DIE without a type if we have a
	context DIE present.

2015-06-02  Uros Bizjak  <ubizjak@gmail.com>

	* df-scan.c (df_scan_start_dump): Add space between regno and regname.

2015-06-02  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/48052
	* cfgloop.h (struct control_iv): New.
	(struct loop): New field control_ivs.
	* tree-ssa-loop-niter.c : Include "stor-layout.h".
	(number_of_iterations_lt): Set no_overflow information.
	(number_of_iterations_exit): Init control iv in niter struct.
	(record_control_iv): New.
	(estimate_numbers_of_iterations_loop): Call record_control_iv.
	(loop_exits_before_overflow): New.  Interface factored out of
	scev_probably_wraps_p.
	(scev_probably_wraps_p): Factor loop niter related code into
	loop_exits_before_overflow.
	(free_numbers_of_iterations_estimates_loop): Free control ivs.
	* tree-ssa-loop-niter.h (free_loop_control_ivs): New.

2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
	the target doesn't belong to the current function.

2015-06-02  Marek Polacek  <polacek@redhat.com>

	PR middle-end/66345
	* gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
	get_maxval_strlen does not produce an INTEGER_CST.

2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arc/constraints.md: Use lower-case names in match_code.
	* config/mmix/constraints.md: Likewise.

2015-06-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65961
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
	check and clarify dump message.
	(vect_build_slp_tree): If all children are built up from scalars
	build up the parent from scalars instead.
	* tree-vect-stmts.c (vect_is_simple_use): Cleanup.

2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR other/65366
	* gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
	instead of print ... .

2015-06-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
	2014-08-11 change.

2015-06-02  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/52563
	PR tree-optimization/62173
	* tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
	(alloc_iv, set_iv): New parameter.
	(determine_biv_step): Delete.
	(find_bivs): Inline original determine_biv_step.  Pass new
	argument to set_iv.
	(idx_find_step): Use no_overflow information for conversion.
	* tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
	resolve_mixers handle folded_casts.
	(instantiate_scev_name): Change bool parameter to bool pointer.
	(instantiate_scev_poly, instantiate_scev_binary): Ditto.
	(instantiate_array_ref, instantiate_scev_not): Ditto.
	(instantiate_scev_3, instantiate_scev_2): Ditto.
	(instantiate_scev_1, instantiate_scev_r): Ditto.
	(instantiate_scev_convert, ): Change parameter.  Pass argument
	to chrec_convert_aggressive.
	(instantiate_scev): Change argument.
	(resolve_mixers): New parameter and set it.
	(scev_const_prop): New argument.
	* tree-scalar-evolution.h (resolve_mixers): New parameter.
	* tree-chrec.c (convert_affine_scev): Call chrec_convert instead
	of chrec_conert_1.
	(chrec_convert): New parameter.  Move definition below.
	(chrec_convert_aggressive): New parameter and set it.  Call
	convert_affine_scev.
	* tree-chrec.h (chrec_convert): New parameter.
	(chrec_convert_aggressive): Ditto.

2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
	the LHS of a no-return call if its type has variable size.
	* tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
	* tree-cfg.c (verify_gimple_call): Accept these no-return calls.

2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>

	* read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
	* config.in: Regenerate.

2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
	consecutive accesses within outer-loop with force_vectorize
	for references with zero step in inner-loop.

2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>

	* Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
	rather than from gcc/build directory.

2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
	for __sync memory models, emit initial loads and final barriers as
	appropriate.

2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
	(aarch64_split_atomic_op): Check for __sync memory models, emit
	appropriate initial loads and final barriers.

2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>

	* Makefile.in: Fix gcov dependencies that should
	not point to a build folder.

2015-06-01  Richard Biener  <rguenther@suse.de>

	Revert
	2015-05-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66314
	* tree-ssa-threadupdate.c (create_block_for_threading): Add
	parameter that says which loop the new block belongs to.
	(ssa_create_duplicates): Blocks duplicated for the threaded
	path belong to the loop of the thread destination.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* sched-deps.c: Include pool-alloc.h before
	cselib.h header file is included.

2015-06-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
	functions.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h: Add ATTRIBUTE_UNUSED for
	a function local variable.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* alloc-pool.c (create_alloc_pool): Remove.
	(empty_alloc_pool): Likewise.
	(free_alloc_pool): Likewise.
	(free_alloc_pool_if_empty): Likewise.
	(pool_alloc): Likewise.
	(pool_free): Likewise.
	* alloc-pool.h: Remove old declarations.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ira-build.c (initiate_allocnos): Use new type-based pool allocator.
	(ira_create_object): Likewise.
	(ira_create_allocno): Likewise.
	(ira_create_live_range): Likewise.
	(copy_live_range): Likewise.
	(ira_finish_live_range): Likewise.
	(ira_free_allocno_costs): Likewise.
	(finish_allocno): Likewise.
	(finish_allocnos): Likewise.
	(initiate_prefs): Likewise.
	(ira_create_pref): Likewise.
	(finish_pref): Likewise.
	(finish_prefs): Likewise.
	(initiate_copies): Likewise.
	(ira_create_copy): Likewise.
	(finish_copy): Likewise.
	(finish_copies): Likewise.
	(finish_prefs): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
	(allocate_and_init_ipcp_value): Likewise.
	(ipcp_lattice::add_value): Likewise.
	(merge_agg_lats_step): Likewise.
	(ipcp_driver): Likewise.
	* ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
	(ipa_free_all_structures_after_iinln): Likewise.
	* ipa-prop.h: Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ipa-inline-analysis.c (edge_set_predicate): Use new type-based
	pool allocator.
	(set_hint_predicate): Likewise.
	(inline_summary_alloc): Likewise.
	(reset_inline_edge_summary): Likewise.
	(reset_inline_summary): Likewise.
	(set_cond_stmt_execution_predicate): Likewise.
	(set_switch_stmt_execution_predicate): Likewise.
	(compute_bb_predicates): Likewise.
	(estimate_function_body_sizes): Likewise.
	(inline_free_summary): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
	(ipa_edge_duplication_hook): Likewise.
	(ipa_free_all_structures_after_ipa_cp): Likewise.
	(ipa_free_all_structures_after_iinln): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ipa-profile.c (account_time_size): Use new type-based pool allocator.
	(ipa_profile_generate_summary): Likewise.
	(ipa_profile_read_summary): Likewise.
	(ipa_profile): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-ssa-structalias.c (new_var_info): Use new type-based
	pool allocator.
	(new_constraint): Likewise.
	(init_alias_vars): Likewise.
	(delete_points_to_sets): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
	(free_strinfo): Likewise.
	(pass_strlen::execute): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
	pool allocator.
	(vn_reference_insert_pieces): Likewise.
	(vn_phi_insert): Likewise.
	(visit_reference_op_call): Likewise.
	(copy_phi): Likewise.
	(copy_reference): Likewise.
	(process_scc): Likewise.
	(allocate_vn_table): Likewise.
	(free_vn_table): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
	pool allocator.
	(add_repeat_to_ops_vec): Likewise.
	(get_ops): Likewise.
	(maybe_optimize_range_tests): Likewise.
	(init_reassoc): Likewise.
	(fini_reassoc): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
	pool allocator.
	(bitmap_set_new): Likewise.
	(get_or_alloc_expr_for_constant): Likewise.
	(get_or_alloc_expr_for): Likewise.
	(phi_translate_1): Likewise.
	(compute_avail): Likewise.
	(init_pre): Likewise.
	(fini_pre): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* sched-deps.c (create_dep_node): Use new type-based pool allocator.
	(delete_dep_node): Likewise.
	(create_deps_list): Likewise.
	(free_deps_list): Likewise.
	(sched_deps_init): Likewise.
	(sched_deps_finish): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* regcprop.c (free_debug_insn_changes): Use new type-based
	pool allocator.
	(replace_oldest_value_reg): Likewise.
	(pass_cprop_hardreg::execute): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ira-build.c (initiate_cost_vectors): Use new type-based
	pool allocator.
	(ira_allocate_cost_vector): Likewise.
	(ira_free_cost_vector): Likewise.
	(finish_cost_vectors): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* sel-sched-ir.c (alloc_sched_pools): Use new type-based
	pool allocator.
	(free_sched_pools): Likewise.
	* sel-sched-ir.h (_list_alloc): Likewise.
	(_list_remove): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* stmt.c (add_case_node): Use new type-based pool allocator.
	(expand_case): Likewise.
	(expand_sjlj_dispatch_table): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
	(free_bb): Likewise.
	(pass_cse_reciprocals::execute): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* tree-sra.c (sra_initialize): Use new type-based pool allocator.
	(sra_deinitialize) Likewise.
	(create_access_1) Likewise.
	(build_accesses_from_assign) Likewise.
	(create_artificial_child_access) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* dse.c (get_group_info):Use new type-based pool allocator.
	(dse_step0) Likewise.
	(free_store_info) Likewise.
	(delete_dead_store_insn) Likewise.
	(free_read_records) Likewise.
	(record_store) Likewise.
	(replace_read) Likewise.
	(check_mem_read_rtx) Likewise.
	(scan_insn) Likewise.
	(dse_step1) Likewise.
	(dse_step7) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* df-scan.c (struct df_scan_problem_data):Use new type-based
	pool allocator.
	(df_scan_free_internal) Likewise.
	(df_scan_alloc) Likewise.
	(df_grow_reg_info) Likewise.
	(df_free_ref) Likewise.
	(df_insn_create_insn_record) Likewise.
	(df_mw_hardreg_chain_delete) Likewise.
	(df_insn_info_delete) Likewise.
	(df_free_collection_rec) Likewise.
	(df_mw_hardreg_chain_delete_eq_uses) Likewise.
	(df_sort_and_compress_mws) Likewise.
	(df_ref_create_structure) Likewise.
	(df_ref_record) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* df-problems.c (df_chain_create):Use new type-based pool allocator.
	(df_chain_unlink_1) Likewise.
	(df_chain_unlink) Likewise.
	(df_chain_remove_problem) Likewise.
	(df_chain_alloc) Likewise.
	(df_chain_free) Likewise.
	* df.h (struct dataflow) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* cselib.c (new_elt_list):Use new type-based pool allocator.
	(new_elt_loc_list) Likewise.
	(unchain_one_elt_list) Likewise.
	(unchain_one_elt_loc_list) Likewise.
	(unchain_one_value) Likewise.
	(new_cselib_val) Likewise.
	(cselib_init) Likewise.
	(cselib_finish) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* config/sh/sh.c (add_constant):Use new type-based pool allocator.
	(sh_reorg) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* cfg.c (initialize_original_copy_tables):Use new type-based
	pool allocator.
	(free_original_copy_tables) Likewise.
	(copy_original_table_clear) Likewise.
	(copy_original_table_set) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
	pool allocator.
	(asan_mem_ref_new) Likewise.
	(free_mem_ref_resources) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* var-tracking.c (variable_htab_free):Use new type-based
	pool allocator.
	(attrs_list_clear) Likewise.
	(attrs_list_insert) Likewise.
	(attrs_list_copy) Likewise.
	(shared_hash_unshare) Likewise.
	(shared_hash_destroy) Likewise.
	(unshare_variable) Likewise.
	(var_reg_delete_and_set) Likewise.
	(var_reg_delete) Likewise.
	(var_regno_delete) Likewise.
	(drop_overlapping_mem_locs) Likewise.
	(variable_union) Likewise.
	(insert_into_intersection) Likewise.
	(canonicalize_values_star) Likewise.
	(variable_merge_over_cur) Likewise.
	(dataflow_set_merge) Likewise.
	(remove_duplicate_values) Likewise.
	(variable_post_merge_new_vals) Likewise.
	(dataflow_set_preserve_mem_locs) Likewise.
	(dataflow_set_remove_mem_locs) Likewise.
	(variable_from_dropped) Likewise.
	(variable_was_changed) Likewise.
	(set_slot_part) Likewise.
	(clobber_slot_part) Likewise.
	(delete_slot_part) Likewise.
	(loc_exp_insert_dep) Likewise.
	(notify_dependents_of_changed_value) Likewise.
	(emit_notes_for_differences_1) Likewise.
	(vt_emit_notes) Likewise.
	(vt_initialize) Likewise.
	(vt_finalize) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* ira-color.c (init_update_cost_records):Use new type-based
	pool allocator.
	(get_update_cost_record) Likewise.
	(free_update_cost_record_list) Likewise.
	(finish_update_cost_records) Likewise.
	(initiate_cost_update) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* lra.c (init_insn_regs): Use new type-based pool allocator.
	(new_insn_reg) Likewise.
	(free_insn_reg) Likewise.
	(free_insn_regs) Likewise.
	(finish_insn_regs) Likewise.
	(init_insn_recog_data) Likewise.
	(init_reg_info) Likewise.
	(finish_reg_info) Likewise.
	(lra_free_copies) Likewise.
	(lra_create_copy) Likewise.
	(invalidate_insn_data_regno_info) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* lra-lives.c (free_live_range): Use new type-based pool allocator.
	(free_live_range_list) Likewise.
	(create_live_range) Likewise.
	(copy_live_range) Likewise.
	(lra_merge_live_ranges) Likewise.
	(remove_some_program_points_and_update_live_ranges) Likewise.
	(lra_live_ranges_init) Likewise.
	(lra_live_ranges_finish) Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* et-forest.c (et_new_occ): Use new type-based pool allocator.
	(et_new_tree): Likewise.
	(et_free_tree): Likewise.
	(et_free_tree_force): Likewise.
	(et_free_pools): Likewise.
	(et_split): Likewise.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* alloc-pool.c (struct alloc_pool_descriptor): Move definition
	to header file.
	* alloc-pool.h (pool_allocator::pool_allocator): New function.
	(pool_allocator::release): Likewise.
	(inline pool_allocator::release_if_empty): Likewise.
	(inline pool_allocator::~pool_allocator): Likewise.
	(pool_allocator::allocate): Likewise.
	(pool_allocator::remove): Likewise.

2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* sched-deps.c (sched_analyze_2): Replace fuseable with fusible
	in comment.

2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-protos.h (tune_params): Rename fuseable_ops
	to fusible_ops.
	* config/arm/arm.c (arm_print_tune_info): Likewise.
	(arm_macro_fusion_p): Likewise.
	(arm_macro_fusion_pair_p): Likewise.

2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (tune_params): Rename
	fuseable_ops to fusible_ops.
	* config/aarch64/aarch64.c (generic_tunings): Rename
	fuseable_ops to fusible_ops.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(aarch64_macro_fusion_p): Likewise.
	(aarch64_macro_fusion_pair_p): Likewise.

2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/driver-native.c: New file.
	* config/s390/x-native: New file.
	* config.host: Add new files for s390.
	* config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
	and -march=native
	* config.gcc: Likewise.
	* config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
	* config/s390/s390-opts.h (enum processor_type): Ditto.
	* config/s390/s390.c (s390_option_override): Catch unhandled
	PROCESSOR_NATIVE

2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65527
	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
	redirection for instrumented calls.
	* lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
	(append_compiler_options): Append -fcheck-pointer-bounds.
	* tree-chkp.h (chkp_copy_call_skip_bounds): New.
	(chkp_redirect_edge): New.
	* tree-chkp.c (chkp_copy_call_skip_bounds): New.
	(chkp_redirect_edge): New.

2015-06-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66280
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
	def-use walking.

2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md
	(*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
	logic_shift_imm.

2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
	Remove obsolete kludge.

2015-06-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-reassoc.c (get_rank): Simplify.

2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
	* configure: Regenerated.

2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>

	* config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
	issue (add space between string literal and macro).
	* config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.

2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
	implict or explicit -fPIE or -fpie.

2015-05-30  Mike Frysinger  <vapier@gentoo.org>

	* config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.

2015-05-28  DJ Delorie  <dj@redhat.com>

	* expmed.c (extract_bit_field_1): Avoid clobbering a
	yet-to-be-used base/index register.

2015-05-30  Jan Hubicka  <hubicka@ucw.cz>

	* alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
	(alias_stats): Add num_universal.
	(alias_set_subset_of): Special case pointers; be ready for NULL
	children.
	(alias_sets_conflict_p): Special case pointers; be ready for NULL
	children.
	(init_alias_set_entry): Break out from ...
	(record_alias_subset): ... here; propagate new fields;
	allocate children only when really needed.
	(get_alias_set): Do less generous pointer globbing.
	(dump_alias_stats_in_alias_c): Update statistics.

2015-05-30  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
	correct block for use of r12.
	(rs6000_expand_split_stack_prologue): Error on r29 asm global reg.

2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/66215
	* config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
	with -mhotpatch=.

2015-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/66142
	* tree-if-conv.c (if_convertible_phi_p): Don't give up on
	virtual phis that feed themselves.

2015-05-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66314
	* tree-ssa-threadupdate.c (create_block_for_threading): Add
	parameter that says which loop the new block belongs to.
	(ssa_create_duplicates): Blocks duplicated for the threaded
	path belong to the loop of the thread destination.

2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
	to cleanup-saved-temps.
	* doc/sourcebuild.texi (Clean up generated test files): Expand
	introduction.
	(dg-keep-saved-temps): Document new proc.
	(cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
	cleanup-saved-temps): Remove.

2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>

	* configure.ac: Move the atoll check from AC_CHECK_FUNCS to
	gcc_AC_CHECK_DECLS.
	* configure: Regenerate.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* config/nios2/linux.h (CPP_SPEC): Define.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* config/microblaze/linux.h (CPP_SPEC): Define.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
	-pthread is specified.

2015-05-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_fixup_reduc_chain): New function.
	(vect_fixup_scalar_cycles_with_patterns): Likewise.
	(vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
	after pattern recog.
	(vect_create_epilog_for_reduction): Properly handle reductions
	with patterns.
	(vectorizable_reduction): Likewise.
	* tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
	reduction chains.
	(vect_get_constant_vectors): Create the correct number of
	initial values for reductions.
	(vect_schedule_slp_instance): Handle reduction chains that are
	type changing properly.
	* tree-vect-stmts.c (vect_analyze_stmt): Adjust.

2015-05-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66142
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
	values better in memcpy destination handling.  Handle non-aliasing
	we discover here.

2015-05-28  Lawrence Velázquez  <vq@larryv.me>

	PR target/63810
	* config/darwin-c.c (version_components): New global enum.
	(parse_version, version_as_legacy_macro)
	(version_as_modern_macro, macosx_version_as_macro): New functions.
	(version_as_macro): Remove.
	(darwin_cpp_builtins): Use new function.

2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>

	* builtins.c (expand_builtin_acc_on_device): Mark parameters
	with ATTRIBUTE_UNUSED.

2015-05-28  Julian Brown  <julian@codesourcery.com>

	PR libgomp/65742

	* builtins.c (expand_builtin_acc_on_device): Don't use open-coded
	sequence for !ACCEL_COMPILER.

2015-05-28  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (push_regs): New function.  Extracts code from...
	(rx_expand_prologue): ... here.  Use push_regs to push even small
	spans of registers.
	(pop_regs): New function.
	(rx_expand_epilogue):  Use pop_regs to pop even small spans of
	registers.

2015-05-28  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
	member.
	(SLP_INSTANCE_BODY_COST_VEC): Remove.
	(vect_update_slp_costs_according_to_vf): Likewise.
	(vect_slp_analyze_operations): Update prototype.
	* tree-vect-loop.c (vect_analyze_loop_2): Remove call to
	vect_update_slp_costs_according_to_vf, adjust.
	* tree-vect-slp.c (vect_free_slp_instance): Adjust.
	(vect_analyze_slp_cost_1): Likewise.
	(vect_analyze_slp_cost): Likewise.  Properly deal with
	widening reduction ops.  Commit body costs.
	(vect_analyze_slp_instance): Adjust.  Do not analyze SLP
	cost for loops from here.
	(vect_slp_analyze_operations): But do it from here when
	the vectorization factor is known and stmts are analyzed.
	(vect_bb_vectorization_profitable_p): Simplify.
	(vect_slp_analyze_bb_1): Do not compute SLP cost here.
	(vect_update_slp_costs_according_to_vf): Remove.

2015-05-27  Magnus Granberg  <zorry@gentoo.org>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
	(BUILD_CFLAGS): Likewise.
	(BUILD_CXXFLAGS): Likewise.
	(LINKER): Add @NO_PIE_FLAG@.
	(BUILD_LDFLAGS): Likewise.
	(libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
	--enable-default-pie.
	* common.opt (fPIE): Initialize to -1.
	(fpie): Likewise.
	(no-pie): New option.
	(pie): Replace "Negative(shared)" with "Negative(no-pie)".
	* configure.ac: Add --enable-default-pie.
	(NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
	(NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
	* defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
	* gcc.c (NO_PIE_SPEC): New.
	(PIE_SPEC): Likewise.
	(NO_FPIE1_SPEC): Likewise.
	(FPIE1_SPEC): Likewise.
	(NO_FPIE2_SPEC): Likewise.
	(FPIE2_SPEC): Likewise.
	(NO_FPIE2_SPEC): Likewise.
	(FPIE_SPEC): Likewise.
	(NO_FPIE_SPEC): Likewise.
	(NO_FPIC1_SPEC): Likewise.
	(FPIC1_SPEC): Likewise.
	(NO_FPIC2_SPEC): Likewise.
	(FPIC2_SPEC): Likewise.
	(NO_FPIC2_SPEC): Likewise.
	(FPIC_SPEC): Likewise.
	(NO_FPIC_SPEC): Likewise.
	(NO_FPIE1_AND_FPIC1_SPEC): Likewise.
	(FPIE1_OR_FPIC1_SPEC): Likewise.
	(NO_FPIE2_AND_FPIC2_SPEC): Likewise.
	(FPIE2_OR_FPIC2_SPEC): Likewise.
	(NO_FPIE_AND_FPIC_SPEC): Likewise.
	(FPIE_OR_FPIC_SPEC): Likewise.
	(LD_PIE_SPEC): Likewise.
	(LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
	* opts.c (finish_options): Update opts->x_flag_pie if it is -1.
	* config/darwin.h (PIE_SPEC): Renamed to ...
	(DARWIN_PIE_SPEC): This.
	(LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
	* config/darwin9.h (PIE_SPEC): Renamed to ...
	(DARWIN_PIE_SPEC): This.
	* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
	PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
	* config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
	FPIE2_OR_FPIC2_SPEC.
	* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
	* config/m68k/openbsd.h (ASM_SPEC): Likewise.
	* config/sol2.h (ASM_PIC_SPEC): Likewise.
	* config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
	* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
	* config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
	* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
	* config/m32r/m32r.h (ASM_SPEC): Likewise.
	* config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC32): Likewise.
	* config/rs6000/sysv4.h (ASM_SPEC): Likewise.
	* config/sparc/freebsd.h (ASM_SPEC): Likewise.
	* config/sparc/linux.h (ASM_SPEC): Likewise.
	* config/sparc/linux64.h (ASM_SPEC): Likewise.
	* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
	* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
	* config/sparc/sp-elf.h (ASM_SPEC): Likewise.
	* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
	* config/sparc/sparc.h (ASM_SPEC): Likewise.
	* config/sparc/sysv4.h (ASM_SPEC): Likewise.
	* config/sparc/vxworks.h (ASM_SPEC): Likewise.
	* config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
	FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
	* config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
	* config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
	NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
	(ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
	* config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
	* config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
	* config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
	* config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/vax/linux.h (ASM_SPEC): Likewise.
	* doc/install.texi: Document --enable-default-pie.
	* doc/invoke.texi: Document -no-pie.
	* config.in: Regenerated.
	* configure: Likewise.

2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR rtl-optimization/66168
	* loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
	can_move_invariant_reg.

2015-05-27  John David Anglin  <danglin@gcc.gnu.org>

	PR target/66148
	* config/pa/pa.c (pa_emit_move_sequence): Correct placement of
	REG_EQUAL note when doing insert.

	* config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
	instead of "%d" for 'o' operand.

2015-05-27  Nathan Sidwell  <nathan@acm.org>

	PR c++/66270
	* tree.c (build_pointer_type_for_mode): Canonical type does not
	inherit can_alias_all.
	(build_reference_type_for_mode): Likewise.

2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.h (array_at_struct_end_p): Move to...
	(array_ref_element_size): Likewise.
	(component_ref_field_offset): Likewise.
	* tree.h (array_ref_element_size): ...here.
	(array_at_struct_end_p): Likewise.
	(component_ref_field_offset): Likewise.
	* expr.c (array_ref_element_size): Move to...
	(array_ref_low_bound): Likewise.
	(array_at_struct_end_p): Likewise.
	(array_ref_up_bound): Likewise.
	(component_ref_field_offset): Likewise.
	* tree.c (array_ref_element_size): ...here.
	(array_ref_low_bound): Likewise.
	(array_ref_up_bound): Likewise.
	(array_at_struct_end_p): Likewise.
	(component_ref_field_offset): Likewise.

2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.

2015-05-27  Jason Merrill  <jason@redhat.com>

	PR bootstrap/66304
	* configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
	ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
	ACX_PROG_CXX_WARNINGS_ARE_ERRORS.

2015-05-22  Aditya Kumar  <hiraditya@msn.com>

	* auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
	is true.

	* statistics.c (statistics_fini_pass): Print pass name.

2015-05-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66272
	Revert parts of
	2014-08-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62031
	* tree-data-ref.c (dr_analyze_indices): Do not set
	DR_UNCONSTRAINED_BASE.
	(dr_may_alias_p): All indirect accesses have to go the
	formerly DR_UNCONSTRAINED_BASE path.
	* tree-data-ref.h (struct indices): Remove
	unconstrained_base member.
	(DR_UNCONSTRAINED_BASE): Remove.

2015-05-27  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c: Remove block_map.
	(gen_call_site_die): Replace block_map use with BLOCK_DIE.
	(gen_lexical_block_die): Same.
	(dwarf2out_function_decl): Remove block_map use.
	(dwarf2out_c_finalize): Same.
	* tree-core.h (struct tree_block): Add die field.
	* tree.h (BLOCK_DIE): New.

2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65358
	* expr.c (memory_load_overlap): New function.
	(emit_push_insn): When pushing partial args to the stack would
	clobber the register part load the overlapping part into a pseudo
	and put it into the hard reg after pushing.  Change return type
	to bool.  Add bool argument.
	* expr.h (emit_push_insn): Change return type to bool.
	Add bool argument.
	* calls.c (expand_call): Cancel sibcall optimization when encountering
	partial argument on targets with ARGS_GROW_DOWNWARD and
	!STACK_GROWS_DOWNWARD.
	(emit_library_call_value_1): Update callsite of emit_push_insn.
	(store_one_arg): Likewise.

2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>

	* config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.

2015-05-27  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Add additional dependencies related to memory report
	enhancement.
	* alloc-pool.c (allocate_pool_descriptor): Use new ctor.
	* bitmap.c (struct bitmap_descriptor_d): Remove.
	(struct loc): Likewise.
	(struct bitmap_desc_hasher): Likewise.
	(bitmap_desc_hasher::hash): Likewise.
	(bitmap_desc_hasher::equal): Likewise.
	(get_bitmap_descriptor): Likewise.
	(bitmap_register): User new memory descriptor API.
	(register_overhead): Likewise.
	(bitmap_find_bit): Register nsearches and search_iter statistics.
	(struct bitmap_output_info): Remove.
	(print_statistics): Likewise.
	(dump_bitmap_statistics): Use new memory descriptor.
	* bitmap.h (struct bitmap_usage): New class.
	* genmatch.c: Extend header file inclusion.
	* genpreds.c: Likewise.
	* ggc-common.c (struct ggc_usage): New class.
	(struct ggc_loc_desc_hasher): Remove.
	(ggc_loc_desc_hasher::hash): Likewise.
	(ggc_loc_desc_hasher::equal): Likewise.
	(struct ggc_ptr_hash_entry): Likewise.
	(struct ptr_hash_hasher): Likewise.
	(ptr_hash_hasher::hash): Likewise.
	(ptr_hash_hasher::equal): Likewise.
	(make_loc_descriptor): Likewise.
	(ggc_prune_ptr): Likewise.
	(dump_ggc_loc_statistics): Use new memory descriptor.
	(ggc_record_overhead): Likewise.
	(ggc_free_overhead): Likewise.
	(final_cmp_statistic): Remove.
	(cmp_statistic): Likewise.
	(ggc_add_statistics): Liekwise.
	(ggc_prune_overhead_list): Likewise.
	* hash-map-traits.h: New file.
	* hash-map.h (struct default_hashmap_traits): Move the traits to a
	separate header file.
	* hash-set.h: Pass memory statistics info to ctor.
	* hash-table.c (void dump_hash_table_loc_statistics): New function.
	* hash-table.h (hash_table::hash_table): Add new ctor arguments.
	(hash_table::~hash_table): Register memory release operation.
	(hash_table::alloc_entries): Handle memory allocation operation.
	(hash_table::expand): Likewise.
	* inchash.c (iterative_hash_hashval_t): Move implementation to header
	file.
	(iterative_hash_host_wide_int): Likewise.
	* inchash.h (class hash): Likewise.
	* mem-stats-traits.h: New file.
	* mem-stats.h: New file.
	(mem_location): Add new class.
	(mem_usage): Likewise.
	(mem_alloc_description): Likewise.
	* sese.c: Add new header file inclusision.
	* toplev.c (dump_memory_report): Add report for hash_table, hash_map
	and hash_set.
	* tree-sra.c: Add new header file inclusision.
	* vec.c (struct vec_descriptor): Remove.
	(hash_descriptor): Likewise.
	(struct vec_usage): Likewise.
	(struct ptr_hash_entry): Likewise.
	(hash_ptr): Likewise.
	(eq_ptr): Likewise.
	(vec_prefix::register_overhead): Use new memory descriptor API.
	(vec_prefix::release_overhead): Likewise.
	(add_statistics): Remove.
	(dump_vec_loc_statistics): Use new memory descriptor API.
	* vec.h (struct vec_prefix): Likewise.
	(va_heap::reserve): Likewise.
	(va_heap::release): Likewise.
	* emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.

2015-05-27  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
	earlier and remove ??? comment.
	(vect_analyze_stmt): If we are analyzing a pure SLP stmt
	and got called from loop analysis bail out.  Always pass the SLP
	node to the vectorizable_* functions.
	* tree-vect-loop.c (vect_analyze_loop_operations): Remove
	the premature SLP check here.
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
	detected SLP stmts.
	(vect_detect_hybrid_slp_1): Likewise.

2015-05-26  Jeff Law  <law@redhat.com>

	* combine.c (find_split_point): Verify that the shift count is a
	constant when choosing (plus (ashift ...)) as a split point.

	* tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
	No functional changes.

2015-05-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
	case when call target is already known.

2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65979
	* config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
	take into account the case that operands[1] and operands[2]
	are the same register.

2015-05-26  Michael Matz  <matz@suse.de>

	PR middle-end/66251

	* tree-vect-stmts.c (vect_model_store_cost): Handled strided group
	stores.
	(vect_create_vectorized_demotion_stmts): Always set
	STMT_VINFO_VEC_STMT, also with SLP.
	(vectorizable_store): Handle strided group stores.

2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	PR target/66049
	* config/aarch64/aarch64.md
	(*adds_shift_imm_<mode>):  New pattern.
	(*subs_shift_imm_<mode>):  Likewise.
	(*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
	(*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
	(*add_uxt<mode>_shift2): Likewise.
	(*add_uxtsi_shift2_uxtw): Likewise.
	(*sub_uxt<mode>_shift2): Likewise.
	(*sub_uxtsi_shift2_uxtw): Likewise.

2015-05-26  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/constraints.md (Y, U): Use match_test.

2015-05-26  Christian Bruel  <christian.bruel@st.com>

	PR target/52144
	* config/arm/arm.c (arm_option_check_internal)
	(arm_option_params_internal): Check opts->target_flags to set macros.
	(TREE_TARGET_ARM, TREE_TARGET_THUMB)
	(TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
	(TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
	(builtin_define): Replaced with def_or_undef_macro.
	* config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
	TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
	(TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
	(TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
	(TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
	(TARGET_ARM_FEATURE_LDREX_P)
	(TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
	* config/arm/arm-c.c (def_or_undef_macro): New function.
	(arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.

2015-05-26  Christian Bruel  <christian.bruel@st.com>

	* c-common.h (builtin_define_with_int_value)
	(builtin_define_type_sizeof): Declare.
	* c-cppbuiltin.c (builtin_define_with_int_value)
	(builtin_define_type_sizeof): Externalize.
	(builtin_define_std): Cleanup declaration.
	* config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
	* config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
	(builtin_define, builtin_assert): New macros.

2015-05-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66142
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
	MEM_REFs for the same base address.

2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR ipa/66181
	* tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.

2015-05-26  Jason Merrill  <jason@redhat.com>

	* configure.ac: Set CXXFLAGS for ISL test.
	* configure: Regenerate.

	* configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
	strstr and basename.
	* configure: Regenerate.

2015-05-26  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
	X % C -> X & (C - 1) for C being a power-of two to ...
	* match.pd: ... patterns.

2015-05-26  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (swapped_tcc_comparison): New operator list.
	(-A CMP -B): New simplification.
	* fold-const.c (fold_comparison): Remove corresponding code.

2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>

	* caller-save.c (init_caller_save): Base temporary register numbers
	on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
	* cfgloopanal.c (init_set_costs): Likewise.
	* dojump.c (prefer_and_bit_test): Likewise.
	* expr.c (init_expr_target): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.
	* lower-subreg.c (init_lower_subreg): Likewise.
	* postreload.c (reload_cse_regs_1): Likewise.

2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.h (compute_test_codes): Declare.
	* gensupport.c (compute_predicate_codes): Rename to...
	(compute_test_codes): ...this.  Generalize error message.
	(process_define_predicate): Update accordingly.
	* genpreds.c (compute_maybe_allows): Delete.
	(add_constraint): Use compute_test_codes to determine whether
	something can accept a SUBREG, REG or MEM.

2015-05-26  Torvald Riegel  <triegel@redhat.com>

	* doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
	'memory	model' to align with C++11; fix description of memory orders;
	fix a few typos.

2015-05-26  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
	(vect_analyze_loop_operations): ... here.  Remove slp parameter,
	detect whether we apply SLP.  Remove call to
	vect_update_slp_costs_according_to_vf.
	(vect_analyze_loop_2): Call vect_update_vf_for_slp and
	vect_update_slp_costs_according_to_vf from here.  Dispatch
	to vect_slp_analyze_operations to analyze SLP stmts.
	* tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
	unused bb_vec_info parameter, adjust assert.
	(vect_slp_analyze_operations): Pass in the slp instance tree
	instead of bb_vec_info.
	(vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
	* tree-vectorizer.h (vect_slp_analyze_operations): Declare.

2015-05-25  Alexander Monakov  <amonakov@ispras.ru>

	* config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
	Q_REGS.  Expand comment.
	(REG_CLASS_NAMES): Ditto.
	(REG_CLASS_CONTENTS): Ditto.

2015-05-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66274
	* config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
	when LEGACY_INT_REGNO_P is processed.

2015-05-25  Alexander Monakov  <amonakov@ispras.ru>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.

2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	* config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
	register if not marked dead/unused, before return.

2015-05-24  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/66180
	* ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
	is set; check for assembler name at LTO time.
	(type_in_anonymous_namespace): Remove hacks, check that all
	anonymous types are called "<anon>"
	(odr_type_p): Simplify; add check for "<anon>"
	(odr_subtypes_equivalent): Add odr_type_p check.
	* tree.c (need_assembler_name_p): Even anonymous namespace needs
	assembler name.

2015-05-24  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (method_class_type): Remove.
	* cgraphunit.c (walk_polymorphic_call_targets): Use
	TYPE_METHOD_BASETYPE.
	* ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
	on main variants only.
	(method_class_type): Remove.
	(update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
	(build_type_inheritance_graph): Likewise.
	* ipa-icf.c (sem_function::equals_wpa): Likewise.
	* pa-polymorphic-call.c (decl_maybe_in_construction_p,
	check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.

2015-05-24  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
	is_typedef_decl, typedef_variant_p): Constify.
	* tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
	is_typedef_decl, typedef_variant_p): Constify.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_tablejump): New function.
	(HAVE_tablejump): Add default value.
	* expr.c: Adjust.
	* stmt.c: Likewise.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_store_multiple): New function.
	(HAVE_store_multiple): Add default value.
	* expr.c (move_block_from_reg): Adjust.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_load_multiple): New function.
	(HAVE_load_multiple): Add default value.
	* expr.c (move_block_to_reg): Adjust.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_mem_signal_fence): New function.
	(HAVE_mem_signal_fence): Add default value.
	* optabs.c: Adjust.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_memory_barrier): New function.
	(HAVE_memory_barrier): Add default value.
	* optabs.c: Adjust.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_mem_thread_fence): New function.
	(HAVE_mem_thread_fence): Add default definition.
	* optabs.c: Adjust.

2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c (find_split_point): Check the value of HAVE_lo_sum
	instead of if it is defined.
	(combine_simplify_rtx): Likewise.
	* lra-constraints.c (process_address_1): Likewise.
	* config/darwin.c: Adjust.
	* genconfig.c (main): Always define HAVE_lo_sum.

2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* genmatch.c (parser::parse_operation): Reject expanding
	operator-list inside 'for'.

2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* genmatch.c (parser::parse_for): Reject iterator if used as
	operator-list.

2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
	after end of id-list.

2015-05-22  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (gimple_canonical_types_compatible_p): Sanity check that
	we do not try to compute canonical type for type that does not need
	alias set.
	(verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
	FUNCITON_TYPE.
	* tree.h (type_with_alias_set_p): New.

2015-05-22  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (gimple_canonical_types_compatible_p):  Do not compare
	function attributes.
	(verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.

2015-05-22  Jim Wilson  <jim.wilson@linaro.org>

	* Makefile.in (check_gcc_parallelize): Delete.
	(lang_checks_parallelized): Update comment.

2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>

	PR rtl-optimization/66237
	* bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
	location of an "as_a" cast.

2015-05-22  Jeff Law  <law@redhat.com>

	* config/pa/pa.md (non-canonical shift-add insns): Remove.
	(peepholes with non-canonical RTL sources): Remove.
	(peepholes for indexed stores of FP regs in integer modes): Match and
	generate canonical RTL.

2015-05-22  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/63387
	* match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
	((x ord x) & (y ord y) -> (x ord y),
	(x ord x) & (x ord y) -> (x ord y)): New simplifications.
	* fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
	vectors like scalars.

2015-05-22  Marc Glisse  <marc.glisse@inria.fr>

	* convert.c (convert_to_integer, convert_to_vector): Include the
	types in the error message.

2015-05-22  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
	simplifications.

2015-05-22  Jeff Law  <law@redhat.com>

	* config/pa/pa.md (integer_indexed_store splitters): Use
	mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
	insns -- adjusting the constant 2nd operand accordingly.

	* combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
	(plus (ashift X log2) Y) if it is a split point.

	* config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
	out of hppa_legitimize_address to handle both forms of a multiply
	by 2, 4 or 8.
	(hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
	Always generate the ASHIFT variant as the result is not directly
	used in a MEM.  Update comments and refactor slightly to improve
	readability.

2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65491
	* config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
	aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
	(aarch64_composite_type_p): Return false if given type and mode are
	for a short vector.

2015-05-22  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
	member.
	* tree-vect-loop.c (vect_analyze_loop_operations): Look at
	patterns when determining whether SLP is pure.
	(vect_is_slp_reduction): Remove check for pattern stmts.
	(vect_is_simple_reduction_1): Remove dead code.
	* tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
	(vect_get_and_check_slp_defs): Pass in the stmt number.
	Allow the first def in a reduction to be not a pattern stmt when
	the rest of the stmts def are patterns.
	(vect_build_slp_tree_1): Allow tcc_expression codes like
	SAD_EXPR and DOT_PROD_EXPR.
	(vect_build_slp_tree): Adjust.
	(vect_analyze_slp): Refactor and move BB vect error message ...
	(vect_slp_analyze_bb_1): ... here.

2015-05-22  Aldy Hernandez  <aldyh@redhat.com>

	* tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
	for CSWTCH temporary.

2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
	(arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
	unknown unspecs.

2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_conversion): Properly
	set STMT_VINFO_VEC_STMT even for the SLP case.

2015-05-22  Marek Polacek  <polacek@redhat.com>

	* doc/extend.texi: Use @pxref instead of @xref.

2015-05-22  hiraditya  <hiraditya@msn.com>

	* gimple.h (gimple_expr_type): Refactor to make it concise. Remove
	redundant if.

2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65701
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Move peeling cost models into one place.  Peel for alignment
	for single loads only if an aligned load is cheaper than
	an unaligned load.

2015-05-22  Marek Polacek  <polacek@redhat.com>

	PR c/47043
	* doc/extend.texi (Enumerator Attributes): New section.
	Document syntax of enumerator attributes.

2015-05-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (get_reduction_op): New function.
	(vect_model_reduction_cost): Use it, add reduc_index parameter.
	Make ready for BB reductions.
	(vect_create_epilog_for_reduction): Use get_reduction_op.
	(vectorizable_reduction): Init reduc_index to a valid value.
	Adjust vect_model_reduction_cost call.
	* tree-vect-slp.c (vect_get_constant_vectors): Use the proper
	operand for reduction defaults.  Add SAD_EXPR support.
	Assert we have a neutral op for SLP reductions.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
	walking pattern stmt ops only recurse to SSA names.

2015-05-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
	assert with guard, remove check on detected reduction.
	(vect_recog_sad_pattern): Likewise.
	(vect_recog_widen_sum_pattern): Likewise.

2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
	__always_inline__ attribute.
	(vaesdq_u8): Likewise.
	(vaesmcq_u8): Likewise.
	(vaesimcq_u8): Likewise.
	(vsha1cq_u32): Likewise.
	(vsha1mq_u32): Likewise.
	(vsha1pq_u32): Likewise.
	(vsha1h_u32): Likewise.
	(vsha1su0q_u32): Likewise.
	(vsha1su1q_u32): Likewise.
	(vsha256hq_u32): Likewise.
	(vsha256h2q_u32): Likewise.
	(vsha256su0q_u32): Likewise.
	(vsha256su1q_u32): Likewise.
	(vmull_p64): Likewise.
	(vmull_high_p64): Likewise.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* final.c (final_scan_insn): Don't check HAVE_peephole with the
	preprocessor.
	* output.h: Likewise.
	* genconfig.c (main): Alwways define HAVE_peephole.
	* genpeep.c: Don't emit checks of HAVE_peephole.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
	check HAVE_conditional_move with the preprocessor.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_conditional_move.
	* combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
	toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
	is defined.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
	reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
	and FRAME_POINTER_REGNUM with the preprocessor.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h: Add default for STACK_PUSH_CODE.
	* expr.c: Don't redefine STACK_PUSH_CODE.
	* recog.c: Likewise.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
	sched-deps.c: Use if instead of preprocessor checks with
	STACK_GROWS_DOWNWARD.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
	is defined.
	* config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
	* defaults.h: Provide default for STACK_GROWS_DOWNWARD.
	* doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
	* doc/tm.texi: Regenerate.

2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/66232
	* config/i386/constraints.md (Bg): New constraint for GOT memory
	operand.
	* config/i386/i386.md (*call_got_x32): New pattern.
	(*call_value_got_x32): Likewise.
	* config/i386/predicates.md (GOT_memory_operand): New predicate.

2015-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/66233
	* match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
	Simplify.

2015-05-21  Jeff Law  <law@redhat.com>

	* config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
	than MULT for shadd sequences.

2015-05-08  Jan Hubicka  <hubicka@ucw.cz>

	* alias.c (alias_stats): New static var.
	(alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
	(dump_alias_stats_in_alias_c): New function.
	* alias.h (dump_alias_stats_in_alias_c): Declare.
	* tree-ssa-alias.c (dump_alias_stats): Call it.

2015-05-08  Michael Matz  <matz@suse.de>

	* tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
	to strided_p.
	(STMT_VINFO_STRIDE_LOAD_P): Rename to ...
	(STMT_VINFO_STRIDED_P): ... this.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
	(vect_verify_datarefs_alignment): Likewise.
	(vect_enhance_data_refs_alignment): Likewise.
	(vect_analyze_data_ref_access): Likewise.
	(vect_analyze_data_refs): Accept strided stores.
	* tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
	(vect_model_load_cost): Adjust for macro rename.
	(vectorizable_mask_load_store): Likewise.
	(vectorizable_load): Likewise.
	(vectorizable_store): Open code strided stores.

2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
	Document sqrt_insn.

2015-05-21  Richard Biener  <rguenther@suse.de>

	PR c++/66211
	* match.pd: Guard pattern optimzing (int)(float)int
	conversions to apply only on GIMPLE.

2015-05-21  Jeff Law  <law@redhat.com>

	* combine.c (find_split_point): Handle ASHIFT like MULT to encourage
	multiply-accumulate/shift-add insn generation.

2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
	operands[1] are the same.

2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66221
	* ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
	build_distinct_type_copy to copy bounds.

2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	* genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
	Change to unsigned int.

2015-05-20  Jeff Law  <law@redhat.com>

	* config/pa/pa.c (pa_print_operand): New 'o' output modifier.
	(pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
	(pa_shadd_constant_p): Allow constants for shadd insns rather
	than valid scaling constants for memory addresses.
	* config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
	* config/pa/predicates.md (mem_shadd_operand): New predicate.
	* config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
	(shift-add insns using ASHIFT): New patterns.

2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>

	* bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
	feasible.
	(fix_up_fall_thru_edges): Likewise.
	(fix_crossing_conditional_branches): Likewise. Promote jump targets
	from to rtx_insn to rtx_code_label where feasible.
	* bt-load.c (move_btr_def): Remove as-a cast of the value returned by
	gen_move_insn (returned type changed to rtx_insn).
	* builtins.c (expand_errno_check): Fix arguments of
	do_compare_rtx_and_jump (now expects rtx_code_label).
	(expand_builtin_acc_on_device): Likewise.
	* cfgcleanup.c (try_simplify_condjump): Add cast when calling
	invert_jump (now exprects rtx_jump_insn).
	* cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
	(construct_init_block): Use rtx_code_label.
	* cfgrtl.c (block_label): Promote return type to rtx_code_label.
	(try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
	calling redirect_jump.
	(patch_jump_insn): Likewise.
	(redirect_branch_edge): Likewise.
	(force_nonfallthru_and_redirect): Likewise.
	(fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
	when suitable.
	(rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
	* cfgrtl.h: Promote return type of block_label to rtx_code_label.
	* config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
	* config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
	to store the value retured by gen_label_rtx.
	* config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
	rtx_jump_insn.
	* config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
	(split_branches): Fix calls of redirect_jump.
	* dojump.c (jumpifnot): Promote argument type from rtx to
	rtx_code_label.
	(jumpifnot_1): Likewise.
	(jumpif): Likewise.
	(jumpif_1): Likewise.
	(do_jump_1): Likewise.
	(do_jump): Likewise. Use rtx_code_label when feasible.
	(do_jump_by_parts_greater_rtx): Likewise.
	(do_jump_by_parts_zero_rtx): Likewise.
	(do_jump_by_parts_equality_rtx): Likewise.
	(do_compare_rtx_and_jump): Likewise.
	* dojump.h: Update function prototypes.
	* dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
	returns rtx_insn).
	* emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
	rtx_jump_insn.
	(emit_label_before): Likewise.
	(emit_jump_insn_after_noloc): Likewise.
	(emit_jump_insn_after_setloc): Likewise.
	(emit_jump_insn_after): Likewise
	(emit_jump_insn_before_setloc): Likewise.
	(emit_jump_insn_before): Likewise.
	(emit_label_before): Promote return type to rtx_code_label.
	(emit_label): Likewise.
	* except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
	* explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
	gen_move_insn.
	(emit_stack_restore): Likewise.
	* expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
	(do_cmp_and_jump): Likewise.
	* expr.c (expand_expr_real_2): Likewise. Promote some local variables
	from rtx to rtx_code_label.
	(gen_move_insn_uncast): New function.
	* expr.h: Update return type of gen_move_insn (promote to rtx_insn).
	* function.c (convert_jumps_to_returns): Fix call of redirect_jump.
	* gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
	* ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
	invert_jump_1 and redirect_jump_1.
	* internal-fn.c (expand_arith_overflow_result_store): Fix call of
	do_compare_rtx_and_jump.
	(expand_addsub_overflow): Likewise.
	(expand_neg_overflow): Likewise.
	(expand_mul_overflow): Likewise.
	* ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
	return value of gen_move_insn.
	* jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
	* loop-doloop.c (add_test): Use rtx_code_label.
	(doloop_modify): Likewise.
	(doloop_optimize): Likewise.
	* loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
	* lra-constraints.c (emit_spill_move): Remove cast of value returned
	by gen_move_insn.
	(inherit_reload_reg): Add cast when calling dump_insn_slim.
	(split_reg): Likewise.
	* modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
	gen_move_insn.
	* optabs.c (expand_binop_directly): Remove casts of values returned by
	maybe_gen_insn.
	(expand_unop_direct): Likewise.
	(expand_abs): Likewise.
	(maybe_emit_unop_insn): Likewise.
	(maybe_gen_insn): Promote return type to rtx_insn.
	* optabs.h: Update prototype of maybe_gen_insn.
	* postreload-gcse.c (eliminate_partially_redundant_load): Remove
	redundant cast.
	* recog.c (struct peep2_insn_data): Promote type of insn field to
	rtx_insn.
	(peep2_reinit_state): Use NULL instead of NULL_RTX.
	(peep2_attempt): Remove casts of insn in peep2_insn_data.
	(peep2_fill_buffer): Promote argument from rtx to rtx_insn
	* recog.h (struct insn_gen_fn): Promote return types of function
	pointers and operator ().from rtx to rtx_insn.
	* reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
	(fill_eager_delay_slots): Likewise.
	(relax_delay_slots): Likewise.
	(make_return_insns): Likewise.
	(dbr_schedule): Likewise.
	(optimize_skips): Likewise.
	(reorg_redirect_jump): Likewise.
	(fill_slots_from_thread): Likewise.
	* reorg.h: Update prototypes.
	* resource.c (find_dead_or_set_registers): Use dyn_cast to
	rtx_jump_insn instead of check.  Use it's jump_target method.
	* rtl.h (rtx_jump_insn::jump_label): Define new method.
	(rtx_jump_insn::jump_target): Define new method.
	(rtx_jump_insn::set_jump_target): Define new method.
	* rtlanal.c (tablejump_p): Promote type of one local variable.
	* sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
	(sched_analyze_insn): Likewise.
	* sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
	(print_insn): Likewise.
	* stmt.c (label_rtx): Promote return type to rtx_insn.
	(force_label_rtx): Likewise.
	(jump_target_rtx): Define new function.
	(expand_label): Use it, get rid of one cast.
	(expand_naked_return): Promote rtx to rtx_code_label.
	(do_jump_if_equal): Fix do_compare_rtx_and_jump call.
	(expand_case): Use rtx_code_label instread of rtx where feasible.
	(expand_sjlj_dispatch_table): Likewise.
	(emit_case_nodes): Likewise.
	* stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
	* store-motion.c (insert_store): Make use of new return type of
	gen_move_insn and remove a cast.
	(replace_store_insn): Likewise.

2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (init_alignment_context): Replace MULT
	by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).

2015-05-20  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
	dispose of the jump thread path when the jump threading
	opportunity is cancelled.

2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
	when printing the caret character.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
	* gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
	* gimple-fold.c (canonicalize_bool): Likewise.
	(same_bool_result_p): Likewise.
	* tree-if-conv.c (parse_predicate): Likewise.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
	* gimplify.c (gimplify_modify_expr_rhs): Likewise.

2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_class_max_nregs):
	Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
	values.

2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.h (micromips_globals): Declare.

2015-05-20  David Malcolm  <dmalcolm@redhat.com>

	* timevar.def (TV_INITIALIZE_RTL): New.
	* toplev.c (initialize_rtl): Use an auto_timevar to account this
	function's time to TV_INITIALIZE_RTL.

2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
	gimple_build_nop calls.
	(chkp_find_bounds_for_elem): Likewise.
	(chkp_get_zero_bounds): Likewise.
	(chkp_get_none_bounds): Likewise.
	(chkp_get_bounds_by_definition): Likewise.
	(chkp_generate_extern_var_bounds): Likewise.
	(chkp_get_bounds_for_decl_addr): Likewise.
	(chkp_get_bounds_for_string_cst): Likewise.

2015-05-20  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/65447
	* tree-ssa-loop-ivopts.c (struct iv_use): New fields.
	(dump_use, dump_uses): Support to dump sub use.
	(record_use): New parameters to support sub use.  Remove call to
	dump_use.
	(record_sub_use, record_group_use): New functions.
	(compute_max_addr_offset, split_all_small_groups): New functions.
	(group_address_uses, rewrite_use_address): New functions.
	(strip_offset): New declaration.
	(find_interesting_uses_address): Call record_group_use.
	(add_candidate): New assertion.
	(infinite_cost_p): Move definition forward.
	(add_costs): Check INFTY cost and return immediately.
	(get_computation_cost_at): Clear setup cost and dependent bitmap
	for sub uses.
	(determine_use_iv_cost_address): Compute cost for sub uses.
	(rewrite_use_address_1): Rename from old rewrite_use_address.
	(free_loop_data): Free sub uses.
	(tree_ssa_iv_optimize_loop): Call group_address_uses.

2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Jim Wilson  <jim.wilson@linaro.org>

	* config/arm/aarch-common-protos.h (struct mem_cost_table): Added
	new  fields loadv and storev.
	* config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
	Initialize loadv and storev.
	* config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
	(cortexa53_extra_costs): Likewise.
	(cortexa57_extra_costs): Likewise.
	(xgene1_extra_costs): Likewise.
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
	rtx_costs.

2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
	 storev.
	(cortexa8_extra_costs): Likewise.
	(cortexa5_extra_costs): Likewise.
	(cortexa7_extra_costs): Likewise.
	(cortexa12_extra_costs): Likewise.
	(cortexa15_extra_costs): Likewise.
	(v7m_extra_costs): Likewise.

2015-05-20  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
	instead of open-coded version.  Also delete the jump thread created
	within this function.

2015-05-20  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
	stack adjusting insn.  Formatting.
	(rs6000_emit_prologue): Track stack adjusting insn, and use of
	r12.  If possible, emit first -fsplit-stack arg pointer insn
	before stack adjust.  Don't use r12 to save cr if split-stack.

2015-05-20  Alan Modra  <amodra@gmail.com>

	* common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
	Define.
	(rs6000_supports_split_stack): New function.
	* config/rs6000/rs6000.c (machine_function): Add
	split_stack_arg_pointer.
	(TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
	(setup_incoming_varargs): Use crtl->args.internal_arg_pointer
	rather than virtual_incoming_args_rtx.
	(rs6000_va_start): Likewise.
	(split_stack_arg_pointer_used_p): New function.
	(rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
	(morestack_ref): New var.
	(gen_add3_const, rs6000_expand_split_stack_prologue,
	rs6000_internal_arg_pointer, rs6000_live_on_entry,
	rs6000_split_stack_space_check): New functions.
	(rs6000_elf_file_end): Call file_end_indicate_split_stack.
	* config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
	(UNSPECV_SPLIT_STACK_RETURN): Define.
	(split_stack_prologue, load_split_stack_limit,
	load_split_stack_limit_di, load_split_stack_limit_si,
	split_stack_return, split_stack_space_check): New expands and insns.
	* config/rs6000/rs6000-protos.h
	(rs6000_expand_split_stack_prologue): Declare.
	(rs6000_split_stack_space_check): Declare.

2015-05-20  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
	(direct_return): Test vrsave_size rather than vrsave_mask.
	(rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
	(rs6000_emit_epilogue): Likewise.

2015-05-20  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
	when not saving registers.
	(debug_stack_info): Adjust to omit printing unused offsets,
	as before.
	(rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
	expression.

2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	PR c++/65835
	* config/i386/winnt.c (struct wrapped_symbol_hasher): Change
	value_type to const char *.

2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>

	* config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
	to build a biarch toolchain again.

2015-05-19  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (type_in_anonymous_namespace_p): Return true
	or implicit declarations.
	(odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
	into it.
	(get_odr_type): Check type has linkage before adding bases.
	(register_odr_type): Check that type has linkage before adding it.
	(type_known_to_have_no_deriavations_p): Rename to ..
	(type_known_to_have_no_derivations_p): This one.
	* ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
	(type_known_to_have_no_derivations_p): This one.
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::restrict_to_inner_type): Check that
	type has linkage.

2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
	(layout_type): Use RECORD_OR_UNION_TYPE_P.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_vector_bool_type_p): New function.
	(s390_invalid_binary_op): New function.
	(TARGET_INVALID_BINARY_OP): Define macro.

2015-05-19  David Sherwood  <david.sherwood@arm.com>

	* loop-invariant.c (create_new_invariant): Don't calculate address cost
	if mode is not a scalar integer.
	(get_inv_cost): Increase computational cost for unused invariants.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
	c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
	* config/s390/s390-builtin-types.def: New file.
	* config/s390/s390-builtins.def: New file.
	* config/s390/s390-builtins.h: New file.
	* config/s390/s390-c.c: New file.
	* config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
	CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
	* config/s390/s390-protos.h (s390_expand_vec_compare_cc)
	(s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
	prototypes.
	* config/s390/s390.c (s390-builtins.h, s390-builtins.def):
	Include.
	(flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
	(s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
	variable definitions.
	(s390_const_operand_ok): New function.
	(s390_expand_builtin): Rewrite.
	(s390_init_builtins): New function.
	(s390_handle_vectorbool_attribute): New function.
	(s390_attribute_table): Add s390_vector_bool attribute.
	(s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
	(s390_branch_condition_mask): Generate masks for new modes.
	(s390_expand_vec_compare_cc): New function.
	(s390_mangle_type): Add mangling for vector bool types.
	(enum s390_builtin): Remove.
	(s390_atomic_assign_expand_fenv): Rename constants for sfpc and
	efpc builtins.
	* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
	s390_cpu_cpp_builtins.
	(REGISTER_TARGET_PRAGMAS): New macro.
	* config/s390/s390.md: Define more UNSPEC_VEC_* constants.
	(insn_cmp mode attribute): Add new CC modes.
	(s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
	(lcbb): New pattern definition.
	* config/s390/s390intrin.h: Include vecintrin.h.
	* config/s390/t-s390: New file.
	* config/s390/vecintrin.h: New file.
	* config/s390/vector.md: Include vx-builtins.md.
	* config/s390/vx-builtins.md: New file.S/390 zvector builtin
	support.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
	CCVFHE.
	* config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
	(s390_select_ccmode): Likewise.
	(s390_canonicalize_comparison): Swap operands if necessary.
	(s390_expand_vec_compare_scalar): Expand DFmode compare using
	single element vector instructions.
	(s390_emit_compare): Call s390_expand_vec_compare_scalar.
	(s390_branch_condition_mask): Generate CC masks for the new modes.
	* config/s390/s390.md (v0, vf, vd): New mode attributes.
	(VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
	(*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
	(*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
	(*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
	(*extend<DSF:mode><BFP:mode>2): New insn definition.
	(fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
	(extend<DSF:mode><BFP:mode>2): Turn into expander.
	(floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
	(div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
	(sqrt<mode>2): Add vector instruction.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
	constraints.
	* config/s390/predicates.md (const0_operand, constm1_operand)
	(constable_operand): Accept vector operands.
	* config/s390/s390-modes.def: Add supported vector modes.
	* config/s390/s390-protos.h (s390_cannot_change_mode_class)
	(s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
	(s390_bytemask_vector_p, s390_expand_vec_strlen)
	(s390_expand_vec_compare, s390_expand_vcond)
	(s390_expand_vec_init): Add prototypes.
	* config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
	(s390_vector_mode_supported_p): New function.
	(s390_contiguous_bitmask_p): Mask out the irrelevant bits.
	(s390_contiguous_bitmask_vector_p): New function.
	(s390_bytemask_vector_p): New function.
	(s390_split_ok_p): Vector regs don't work either.
	(regclass_map): Add VEC_REGS.
	(s390_legitimate_constant_p): Handle vector constants.
	(s390_cannot_force_const_mem): Handle CONST_VECTOR.
	(legitimate_reload_vector_constant_p): New function.
	(s390_preferred_reload_class): Handle CONST_VECTOR.
	(s390_reload_symref_address):  Likewise.
	(s390_secondary_reload): Vector memory instructions only support
	short displacements.  Rename reload*_nonoffmem* to reload*_la*.
	(s390_emit_ccraw_jump): New function.
	(s390_expand_vec_strlen): New function.
	(s390_expand_vec_compare): New function.
	(s390_expand_vcond): New function.
	(s390_expand_vec_init): New function.
	(s390_dwarf_frame_reg_mode): New function.
	(print_operand): Handle addresses with 'O' and 'R' constraints.
	(NR_C_MODES, constant_modes): Add vector modes.
	(s390_output_pool_entry): Handle vector constants.
	(s390_hard_regno_mode_ok): Handle vector registers.
	(s390_class_max_nregs): Likewise.
	(s390_cannot_change_mode_class): New function.
	(s390_invalid_arg_for_unprototyped_fn): New function.
	(s390_function_arg_vector): New function.
	(s390_function_arg_float): Remove size variable.
	(s390_pass_by_reference): Handle vector arguments.
	(s390_function_arg_advance): Likewise.
	(s390_function_arg): Likewise.
	(s390_return_in_memory): Vector values are returned in a VR if
	possible.
	(s390_function_and_libcall_value): Handle vector arguments.
	(s390_gimplify_va_arg): Likewise.
	(s390_call_saved_register_used): Consider the arguments named.
	(s390_conditional_register_usage): Disable v16-v31 for non-vec
	targets.
	(s390_preferred_simd_mode): New function.
	(s390_support_vector_misalignment): New function.
	(s390_vector_alignment): New function.
	(TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
	(TARGET_VECTOR_MODE_SUPPORTED_P)
	(TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
	(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
	(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
	(TARGET_VECTOR_ALIGNMENT): Define target macro.
	* config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
	(FIRST_PSEUDO_REGISTER): Increase value.
	(VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
	(VECTOR_REG_P): Define macros.
	(FIXED_REGISTERS, CALL_USED_REGISTERS)
	(CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
	(HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
	(FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
	Add vector registers.
	(CANNOT_CHANGE_MODE_CLASS): Call C function.
	(enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
	(SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
	memory.
	(DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
	(SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
	* config/s390/s390.md (UNSPEC_VEC_*): New constants.
	(VR*_REGNUM): New constants.
	(ALL): New mode iterator.
	(INTALL): Remove mode iterator.
	Include vector.md.
	(movti): Implement TImode moves for VRs.
	Disable TImode splitter for VR targets.
	Implement splitting TImode GPR<->VR moves.
	(reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
	(reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
	reload<mode>_la_in, reload<mode>_la_out.
	(*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
	(*mov<mode>_64, *mov<mode>_31): Add vector instructions.
	(TD/TF mode splitter): Enable for GPRs only (formerly !FP).
	(mov<mode> SF SD): Prefer lder, lde for loading.
	Add lrl and strl instructions.
	Add vector instructions.
	(strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
	Call s390_expand_vec_strlen on z13.
	(*cc_to_int): Change predicate to nonimmediate_operand.
	(addti3): Rename to *addti3.  New expander.
	(subti3): Rename to *subti3.  New expander.
	* config/s390/vector.md: New file.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* common/config/s390/s390-common.c (processor_flags_table): Add
	z13.
	* config.gcc: Add z13.
	* config/s390/s390-opts.h (enum processor_type): Add
	PROCESSOR_2964_Z13.
	* config/s390/s390.c (s390_adjust_priority): Check for
	PROCESSOR_2964_Z13.
	(s390_reorg): Likewise.
	(s390_sched_reorder): Likewise.
	(s390_sched_variable_issue): Likewise.
	(s390_loop_unroll_adjust): Likewise.
	(s390_option_override): Likewise. Default to -mvx when available.
	* config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
	(TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
	(TARGET_VX_ABI): Define macros.
	macros.
	(TARGET_DEFAULT): Add MASK_OPT_VX.
	* config/s390/s390.md ("cpu" attribute): Add z13.
	("cpu_facility" attribute): Add vec.
	* config/s390/s390.opt (processor_type): Add z13.
	(mvx): New options.
	* doc/invoke.texi: Add z13 option for -march.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/predicates.md (shift_count_or_setmem_operand): Add
	mode check to make sure that only scalar integer values are
	accepted.

2015-05-19  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (verify_type_variant): Fix #undef.
	(gimple_canonical_types_compatible_p): Move here from lto.c
	(verify_type): Verify TYPE_CANONICAL compatibility.
	* tree.h (gimple_canonical_types_compatible_p): Declare.

2015-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66199
	* tree.h (OMP_TEAMS_COMBINED): Define.
	* gimplify.c (enum gimplify_omp_var_data): Add
	GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
	(enum omp_region_type): Add ORT_COMBINED_TEAMS.
	(omp_notice_variable): Accept both ORT_TEAMS
	and ORT_COMBINED_TEAMS.  Don't recurse if
	GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
	GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
	GOVD_FIRSTPRIVATE.
	(omp_no_lastprivate): New function.
	(gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
	and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
	notice_outer and set appropriate bits, otherwise make
	sure default(none) combined constructs won't complain.
	(gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
	outer special casing, for OMP_CLAUSE_LASTPRIVATE if
	omp_no_lastprivate either remove the clause or turn it
	into OMP_CLAUSE_PRIVATE.
	(gimplify_omp_for): Fix up handling of implicit
	lastprivate or linear iterators.
	(gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
	ORT_COMBINED_TEAMS.
	* omp-low.c (lower_omp_for_lastprivate): For combined
	for simd use fd.loop.n2 from the for rather than simd.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
	instead of gen_rtx_raw_REG.
	(cris_expand_epilogue): Likewise.
	* config/microblaze/microblaze.c (microblaze_classify_address):
	Likewise.
	* config/sparc/sparc.md: Likewise.

2015-05-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_legitimize_reload_address)
	(alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
	CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
	(alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
	Use CASE_CONST_SCALAR_INT.
	(print_operand) <case 'M'>: Use mode_width_operand to check the
	value of the constant.
	* config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
	* config/alpha/predicates.md (input_operand): Use general_operand
	instead of match_code as operand check.
	(symbolic_operand): Use match_code with subexpression digits.
	* config/alpha/constraints.md (Q): Ditto.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* optabs.c (expand_vec_perm): Don't re-use SEL as target operand.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_secondary_reload): Fix check for
	load/store relative.

2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
	alternative_mask to uint64_t.

2015-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/66187
	* match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
	Pass TYPE_SIGN to tree_int_cst_min_precision.  If
	!TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.

2015-05-19  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.c (diagnostic_report_current_module): Strengthen
	local "new_map" from const line_map * to
	const line_map_ordinary *.
	* genmatch.c (error_cb): Likewise for local "map".
	(output_line_directive): Likewise for local "map".
	* input.c (expand_location_1): Likewise for local "map".
	Pass NULL rather than &map to
	linemap_unwind_to_first_non_reserved_loc, since the value is never
	read from there, and the value written back not read from here.
	(is_location_from_builtin_token): Strengthen local "map" from
	const line_map * to const line_map_ordinary *.
	(dump_location_info): Strengthen locals "map" from
	line_map *, one to const line_map_ordinary *, the other
	to const line_map_macro *.
	* tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
	const line_map * to const line_map_macro *.
	(maybe_unwind_expanded_macro_loc): Add a call to
	linemap_check_macro when writing to the "map" field of the
	loc_map_pair.
	Introduce local const line_map_ordinary * "ord_map", using it in
	place of "map" in the part of the function where we know we have
	an ordinary map.  Strengthen local "m" from const line_map * to
	const line_map_ordinary *.

2015-05-19  Nick Clifton  <nickc@redhat.com>

	PR target/66156
	* config/msp430/msp430.md (zero_extendhisi2): Add support for
	separate source and destination registers.

2015-05-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66165
	* tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
	for no load permutation.

	PR tree-optimization/66185
	* tree-vect-slp.c (vect_build_slp_tree): Properly roll back
	when building the SLP node from scalars.

2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
	* builtins.c (expand_builtin_update_setjmp_buf): Make global.
	(expand_stack_restore): Call record_new_stack_level.
	(expand_stack_save): Do not call do_pending_stack_adjust.
	* builtins.h (expand_builtin_update_setjmp_buf): Declare.
	* calls.c (expand_call): Call record_new_stack_level for alloca.
	* except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
	wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
	(update_sjlj_context): New global function.
	* except.h (update_sjlj_context): Declare.
	* explow.c (record_new_stack_level): New global function.
	(allocate_dynamic_stack_space): Call record_new_stack_level.
	* explow.h (record_new_stack_level): Declare.
	* final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
	* cfgrtl.c (duplicate_insn_chain): Likewise.

2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
	(mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
	STACK_GROWS_DOWNWARD as normal if.
	(expand_call): Likewise.

2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/sh.md (*round_int_even): New insn_and_split and
	accompanying new unnamed split.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* bitmap.c (bitmap_set_range): Handle count==1 specially.
	(bitmap_clear_range): Likewise.
	* cfgcleanup.c (mark_effect): Use bitmap_clear_range and
	bitmap_set_range unconditionally.
	* df-problems.c (df_simulate_one_insn_forwards): Likewise.
	* df-scan.c (df_mark_reg): Likewise.
	* haifa-sched.c (setup_ref_regs): Likewise.
	* sched-rgn.c (update_live_1): Likewise.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* regs.h (END_HARD_REGNO): Delete.
	(END_REGNO): Move to...
	* rtl.h: ...here.
	* bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
	* caller-save.c (mark_set_regs): Likewise.
	* combine.c (move_deaths, distribute_notes): Likewise.
	* cse.c (invalidate, invalidate_for_call): Likewise.
	* df-scan.c (df_ref_record): Likewise.
	* postreload-gcse.c (reg_changed_after_insn_p): Likewise.
	(record_last_reg_set_info): Likewise.
	* reg-stack.c (convert_regs_exit): Likewise.
	* reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
	* resource.c (update_live_status): Likewise.
	* rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (reg_info): Add an nregs field.
	(REG_NREGS): Use it.
	(SET_REGNO_RAW): Delete.
	(set_regno_raw): New function.
	* regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
	(END_REGNO): Redefine in terms of REG_NREGS.
	* read-rtl.c (read_rtx_code): Call set_regno_raw instead of
	SET_REGNO_RAW.
	* emit-rtl.c (set_mode_and_regno): Likewise.
	* df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
	instead of SET_REGNO_RAW.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (PUT_MODE_RAW): New macro.
	(PUT_REG_NOTE_KIND): Use it.
	(set_mode_and_regno): Declare.
	(gen_raw_REG): Change regno to "unsigned int".
	(gen_rtx_REG): Change "unsigned" to "unsigned int".
	(PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
	use set_mode_and_regno to change the mode of registers.
	* gengenrtl.c (gendef): Use PUT_MODE_RAW.
	* emit-rtl.c (set_mode_and_regno): New function.
	(gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
	* caller-save.c (reg_save_code): Use set_mode_and_regno.
	* expr.c (init_expr_target): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* caller-save.c (init_caller_save): Use word_mode and
	FIRST_PSEUDO_REGISTER when creating temporary rtxes.
	* expr.c (init_expr_target): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.
	* postreload.c (reload_cse_regs_1): Likewise.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.def (REG): Change format to "r".
	* rtl.h (rtunion): Remove rt_reg.
	(reg_info): New structure.
	(rtx_def): Add reg field to main union.
	(X0REGATTR): Delete.
	(REG_CHECK): New macro.
	(SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
	* rtl.c (rtx_format): Document "r".
	(rtx_code_size): Handle REG specially.
	* gengenrtl.c (special_format): Return true for formats
	that include 'r'.
	* gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
	Deal with REG_ATTRS after the field loop.
	* emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
	* expmed.c (init_expmed): Call gen_raw_REG instead of
	gen_rtx_raw_REG.
	* expr.c (init_expr_target): Likewise.
	* regcprop.c (maybe_mode_change): Likewise.
	* varasm.c (make_decl_rtl): Likewise.
	* final.c (leaf_renumber_regs_insn): Return early after
	handling REGs.
	* genemit.c (gen_exp): Handle 'r' fields.
	* genpeep.c (match_rtx): Likewise.
	* gensupport.c (subst_pattern_match): Likewise.
	(get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
	(alter_constraints, subst_dup): Likewise.
	* read-rtl.c (read_rtx_code): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* genrecog.c (find_operand, find_matching_operand): Likewise.
	(validate_pattern, match_pattern_2): Likewise.
	(parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
	(rtx_test::regno_field): New function.
	(operator ==, safe_to_hoist_p, transition_parameter_type)
	(parameter_type_string, print_parameter_value)
	(print_nonbool_test, print_test): Handle new enum values.
	* cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
	* lra-constraints.c (operands_match_p): Likewise.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
	Change type of new_regno to unsigned int.
	* df-scan.c (df_ref_change_reg_with_loc_1): Change type of
	new_regno to unsigned int.
	(df_ref_change_reg_with_loc): Remove old_regno parameter.
	Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
	* rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
	(SET_REGNO_RAW): Add space after ",".

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (REG_NREGS): New macro
	* alias.c (record_set): Use it.
	* cfgcleanup.c (mark_effect): Likewise.
	* combine.c (likely_spilled_retval_1): Likewise.
	(likely_spilled_retval_p, can_change_dest_mode): Likewise.
	(move_deaths, distribute_notes): Likewise.
	* cselib.c (cselib_record_set): Likewise.
	* df-problems.c (df_simulate_one_insn_forwards): Likewise.
	* df-scan.c (df_mark_reg): Likewise.
	* dse.c (look_for_hardregs): Likewise.
	* dwarf2out.c (reg_loc_descriptor): Likewise.
	(multiple_reg_loc_descriptor): Likewise.
	* expr.c (write_complex_part, read_complex_part): Likewise.
	(emit_move_complex): Likewise.
	* haifa-sched.c (setup_ref_regs): Likewise.
	* ira-lives.c (mark_hard_reg_live): Likewise.
	* lra.c (lra_set_insn_recog_data): Likewise.
	* mode-switching.c (create_pre_exit): Likewise.
	* postreload.c (reload_combine_recognize_const_pattern): Likewise.
	(reload_combine_recognize_pattern): Likewise.
	(reload_combine_note_use, move2add_record_mode): Likewise.
	(reload_cse_move2add): Likewise.
	* reg-stack.c (subst_stack_regs_pat): Likewise.
	* regcprop.c (kill_value, copy_value): Likewise.
	(copyprop_hardreg_forward_1): Likewise.
	* regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
	(build_def_use): Likewise.
	* sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
	(deps_analyze_insn): Likewise.
	* sched-rgn.c (check_live_1, update_live_1): Likewise.
	* sel-sched.c (count_occurrences_equiv): Likewise.
	* valtrack.c (dead_debug_insert_temp): Likewise.

2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>

	* cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
	* dse.c (note_add_store): Likewise.
	* ira-lives.c (mark_hard_reg_dead): Likewise.
	* loop-invariant.c (mark_reg_store): Likewise.
	(mark_reg_death): Likewise.
	* postreload.c (reload_combine): Likewise.
	(reload_combine_note_store): Likewise.
	(reload_combine_note_use): Likewise.
	* recog.c (peep2_reg_dead_p): Likewise.

2015-05-19  Alan Modra  <amodra@gmail.com>

	* config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
	hard registers numbered greater or equal to ARG_POINTER_REGNUM.
	(reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
	unused predicates.
	* config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
	Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
	* config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
	* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.

2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>

	* config/mips/mips.md (JOIN_MODE): New mode iterator.
	(join2_load_Store<JOIN_MODE:mode>): New pattern.
	(join2_loadhi): Likewise.
	(define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
	load-load and store-stores.
	* config/mips/mips.opt (mload-store-pairs): New option.
	(TARGET_LOAD_STORE_PAIRS): New macro.
	* config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
	* config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
	* config/mips/mips.c (mips_load_store_bonding_p): New function.

2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>

	* bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
	explicit swaps.
	* dojump.c (do_compare_rtx_and_jump): Likewise.
	* expmed.c (emit_store_flag_1): Likewise.
	* fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
	* final.c (sprint_ul): Use std::reverse for reversing a string.
	* fold-const.c (extract_muldiv_1): Use std::swap.
	* genmodes.c (emit_mode_int_n): Likewise.
	* ifcvt.c (dead_or_predicable): Likewise.
	* ira-build.c (ira_merge_live_ranges): Likewise.
	(swap_allocno_copy_ends_if_necessary): Likewise.
	* ira.c (ira_setup_alts): Likewise.
	* loop-iv.c (iv_analyze_expr): Likewise.
	(implies_p): Likewise.
	(canon_condition): Likewise.
	* lra-constraints.c (swap_operands): Likewise.
	* lra-lives.c (lra_merge_live_ranges): Likewise.
	* omega.c (swap): Remove.
	(bswap): Remove.
	(omega_unprotect_1): Use std::swap.
	(omega_solve_geq): Likewise.
	* optabs.c (expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	(emit_conditional_move): Likewise.
	(emit_conditional_add): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* reg-stack.c (emit_swap_insn): Likewise.
	(swap_to_top): Likewise.
	(compare_for_stack_reg): Likewise.
	(subst_asm_stack_regs): Likewise.
	* reload.c (find_reloads): Likewise.
	* reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
	* sel-sched.c (invoke_reorder_hooks): Likewise.
	(create_block_for_bookkeeping): Likewise.
	* tree-data-ref.c (lambda_matrix_row_exchange): Remove.
	(lambda_matrix_right_hermite): Use std::swap.
	* tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
	* tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
	* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
	* tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
	* tree-vrp.c (compare_ranges): Likewise.
	* var-tracking.c (add_with_sets): Likewise.
	(vt_find_locations): Likewise.

2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
	pie executables.
	(FBSD_ENDFILE_SPEC): Likewise.
	* config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
	config/freebsd-spec.h.
	(ENDFILE_SPEC): Likewise.

2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
	    Richard Henderson  <rth@redhat.com>

	PR target/57032
	* config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
	Check for a memory location that is not a reference (using an AND)
	to an unaligned location here.
	* config/alpha/predicates.md (normal_memory_operand): Remove.

2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>

	* config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
	(andsi_not_shiftsi_si_scc_no_reuse): New pattern.

2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (micromips_globals): New variable.
	(mips_set_compression_mode): Save and reinitialize target-dependent
	state for microMIPS.

2015-05-18  Martin Liska  <mliska@suse.cz>

	* dbgcnt.def: Add new counter.
	* ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.

2015-05-18  Martin Liska  <mliska@suse.cz>

	* dbgcnt.def: Sort counters.
	* opts.c (common_handle_option): Do not compile if
	-fdbg-cnt-list is enabled.

2015-05-18  Tom de Vries  <tom@codesourcery.com>

	* gimplify.c (gimplify_modify_expr): Remove do_deref handling.
	(gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
	address operator to va_list operand.
	* tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
	unconditionally.
	* config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
	operand.
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
	* config/s390/s390.c (s390_gimplify_va_arg): Same.
	* config/spu/spu.c (spu_gimplify_va_arg_expr): Same.

2015-05-18  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c: Fix whitespace.

2015-05-17  Jim Wilson  <jim.wilson@linaro.org>

	* doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
	cortex-a17, and cortex-a17.cortex-a7.

2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.

2015-05-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66174
	* config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
	QImode inner modes for TARGET_AVX512BW.  Force mask operand
	to a register for AVX512F modes.

2015-05-16  Jan Hubicka  <hubicka@ucw.cz>

	* toplev.c (emit_debug_global_declarations): Do not output debug info
	when doing slim LTO objects.

2015-05-16  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
	odr_types_equivalent_p): Declare.
	(odr_type_p): Use gcc_checking_assert.
	(type_in_anonymous_namespace_p) Declare.
	(type_with_linkage_p): Declare.
	* common.opt (Wlto-type-mismatch): New warning.
	* ipa-devirt.c (compound_type_base): New function.
	(odr_or_derived_type_p): New function.
	(odr_types_equivalent_p): New function.
	(add_type_duplicate): Simplify.
	(type_with_linkage_p): Add hack to prevent false positives on C types
	(type_in_anonymous_namespace_p): Likewise.
	* tree.c (need_assembler_name_p): Use type_with_linkage.
	* tree.h (type_in_anonymous_namespace_p): Remove.
	* doc/invoke.texi (-Wlto-type-mismatch): Document

2015-05-16  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (verify_type_variant): Verify tree_base and type_common flags.
	(verify_type): Verify STRING_FLAG.

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* tree-pretty-print.c (percent_K_format): Replace locus pointer
	with accessor function.
	* tree-diagnostic.c (diagnostic_report_current_function): Use
	diagnostic_location function.
	(maybe_unwind_expanded_macro_loc): Likewise.
	(virt_loc_aware_diagnostic_finalizer): Likewise.
	(default_tree_printer): Replace locus pointer with accessor function.
	* diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
	(diagnostic_set_info_translated): Initialize second location.
	(diagnostic_build_prefix): Use CARET_LINE_MARGIN.
	(diagnostic_show_locus): Handle two locations. Call
	diagnostic_print_caret_line.
	(diagnostic_print_caret_line): New.
	(default_diagnostic_starter): Use diagnostic_location function.
	(diagnostic_report_diagnostic): Use diagnostic_location function.
	(verbatim): Do not set text.locus.
	* diagnostic.h (struct diagnostic_info): Remove location field.
	(struct diagnostic_context): Make caret_chars an array of two.
	(diagnostic_location): New inline.
	(diagnostic_expand_location): Handle two locations.
	(diagnostic_same_line): New inline.
	(diagnostic_print_caret_line): Declare.
	(CARET_LINE_MARGIN): New constant.
	* pretty-print.c (pp_printf): Do not set text.locus.
	(pp_verbatim): Do not set text.locus.
	* pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
	(struct text_info): Replace locus pointer with locations
	array. Add accessor functions.

2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	PR target/65768
	* config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
	* config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
	 large constants in register instead of splitting them.

2015-05-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66140
	* config/alpha/alpha.c (get_aligned_mem): Also look for reload
	replacements in memory addresses.
	(get_unaligned_address): Ditto.

2015-05-16  James Bowman  <james.bowman@ftdichip.com>

	* config/ft32/*: New files for FT32 port.
	* doc/install.texi: Add FT32 information.
	* doc/invoke.texi: Add FT32 information.
	* doc/md.texi: Add FT32 information.
	* doc/contrib.texi: Self added.

2015-05-15  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/64454
	* match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
	(-1 - A -> ~A): Remove unnecessary condition.

2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>

	* config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
	* config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
	(MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.

2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.h (chkp_wrap_function): New.
	* ipa-chkp.c (chkp_wrap_function): Remove 'static'.
	(chkp_wrap_function_name): New.
	(chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
	to get wrapper name.
	* lto-cgraph.c: Include ipa-chkp.h.
	(input_cgraph_1): Avoid alias chain for wrappers.

2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66134
	* tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
	(chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.

2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
	(AARCH64_FL_SLOWMUL): Delete.
	(AARCH64_FL_CRC): Redefine to 1<<3.
	(AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.

2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
	casting.

2015-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (extendqidi2): Use general_operand
	instead of some_operand for operand[1] predicate.
	(extendhidi2): Ditto.
	(cbranchdi4): Use general_operand instead of some_operand
	for operand[1] and operands[2] predicates.
	(cstoredi4): Ditto.
	* config/alpha/predicates.md (some_operand): Remove unused predicate.
	(some_ni_operand): Ditto.

2015-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_extract_integer): Do not handle
	CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
	(alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
	low part of the constant using alpha_emit_set_const_1.
	(alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.

2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>

	* varasm.c (output_constant_pool_1): Pass down alignment from
	constant pool entry's descriptor to output_constant_pool_2.
	(output_object_block): Add comment prior to call to
	output_constant_pool_1.

2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65862
	* target.def (ira_change_pseudo_allocno_class): New hook.
	* targhooks.c (default_ira_change_pseudo_allocno_class): Default
	value of the hook.
	* targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
	* doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
	hook.
	* ira-costs.c (find_costs_and_classes): Call the hook and change
	classes when it is necessary.
	* doc/tm.texi: Update.

2015-05-14  Alexander Monakov  <amonakov@ispras.ru>

	* config/i386/i386.md (sibcall_memory): Check that register with
	callee address is not also used as one of the arguments, instead
	of checking that it is not live after the sibcall.
	(sibcall_pop_memory): Ditto.
	(sibcall_value_memory): Ditto.
	(sibcall_value_pop_memory): Ditto.

2015-05-14  Marc Glisse  <marc.glisse@inria.fr>

	* generic-match-head.c (types_match): Handle non-types.
	* gimple-match-head.c (types_match): Likewise.
	* match.pd: Remove unnecessary TREE_TYPE for types_match.

2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
	(csneg3<mode>_insn): Enable expansion of pattern.

2015-05-14  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_select_section): Select the correct
	default section based upon the category of the decl.

2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/30967
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
	destination mode for the cost of scc patterns.

2015-05-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
	using SWIM248 mode iterator.
	(*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
	(*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
	for operand[2] constraint.
	(*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.

2015-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66133
	* omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
	make sure it is never noreturn, even when the task body does not
	return.
	(lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
	right before GIMPLE_OMP_RETURN.
	(make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
	for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
	GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.

2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
	* tree-ssa-math-opts.c: Include params.h
	(pow_synth_sqrt_info): New struct.
	(representable_as_half_series_p): New function.
	(get_fn_chain): Likewise.
	(print_nested_fn): Likewise.
	(dump_fractional_sqrt_sequence): Likewise.
	(dump_integer_part): Likewise.
	(expand_pow_as_sqrts): Likewise.
	(gimple_expand_builtin_pow): Use above to attempt to expand
	pow as series of square roots.  Removed now unused variables.

2015-05-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
	(alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
	Remove *p0 and *p1 arguments.  Rewrite function.
	(alpha_legitimate_constant_p): Update call to alpha_extract_integer.
	(alpha_split_const_mov): Update calls to alpha_extract_integer and
	alpha_emit_set_long_const.
	(alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
	(alpha_output_mi_thunk_osf): Ditto.
	* config/alpha/alpha.md (movti): Do not check operands[1]
	for CONST_DOUBLE.

2015-05-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66129
	* tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
	commutative.
	(vect_schedule_slp_instance): Fix typo.

2015-05-13  David Malcolm  <dmalcolm@redhat.com>

	* common.opt (fdump-internal-locations): New option.
	* input.c: Include diagnostic-core.h.
	(get_end_location): New function.
	(write_digit): New function.
	(write_digit_row): New function.
	(dump_location_range): New function.
	(dump_labelled_location_range): New function.
	(dump_location_info): New function.
	* input.h (dump_location_info): New prototype.
	* toplev.c (compile_file): Handle flag_dump_locations.

2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-expr.h (is_gimple_constant): Reorder.
	* tree-ssa-propagate.c (before_dom_children): Use inline accessor.

2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (simplify_set): When generating a CC set, if the
	source already is in the correct mode, do not wrap it in a
	compare.  Simplify the rest of that code.

2015-05-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66123
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
	a taken edge.

2015-05-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/66110
	* alias.c (alias_sets_conflict_p): Do not treat has_zero_child
	specially.
	* Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.

2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
	* aclocal.m4: Regenerated with automake-1.11.6.

2015-05-13  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66010
	* gimplify.h (gimplify_va_arg_internal): Remove declaration.
	* gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
	* tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
	and rval based on do_deref.

2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65103
	* config/i386/i386.c (ix86_rtx_costs): We want to propagate
	link time constants into adress expressions and therefore set
	their cost to 0.

2015-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/66112
	* config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
	Use SWI248 iterator instead of SWI.
	(*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
	Use eq_attr "alternative" "0" instead of match_test in
	length_immediate attribute computation.
	(*mulvhi4, *mulvhi4_1): New define_insns.

	PR target/66112
	* internal-fn.c (get_min_precision): Use UNSIGNED instead of
	SIGNED to get precision of non-negative value.

2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/66048
	* function.c (diddle_return_value_1): Process bounds first.
	* config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
	register.

2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR rtl-optimization/64616
	* loop-invariant.c (can_move_invariant_reg): New.
	(move_invariant_reg): Call above new function to decide whether
	instruction can just be moved, skipping creation of temporary
	register.

2015-05-12  Jan Hubicka  <hubicka@ucw.cz>

	PR target/pr66047.c
	* i386.c (ix86_function_sseregparm): Only return -1 if local function
	with implied regparm is called from -mno-sse function.
	(init_cumulative_args): Output error if ix86_function_sseregparm
	return -1 and SSE register would be needed.
	(function_arg_advance_32): Likewise.
	(function_arg_32): Likewise.
	* i386.h (ix86_args): Add decl field.

2015-05-12  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65873
	* ipa-inline.c (can_inline_edge_p): Allow early inlining of always
	inlines across optimization boundary.

2015-05-12  Jason Merrill  <jason@redhat.com>

	* config/mmix/mmix.c, config/msp430/msp430.c: Add space between
	string literal and macro name.

2015-05-12  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
	* config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
	* config/mips/predicates.md (const_immlsa_operand): Remove log call.

2015-05-12  David Malcolm  <dmalcolm@redhat.com>

	* doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
	(-Wmisleading-indentation): New option.
	* Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.

2015-05-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
	* config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
	(alpha_extract_integer): Ditto.
	(alpha_legitimate_constant_p): Ditto.
	(alpha_split_tmode_pair): Ditto.
	(alpha_preferred_reload_class): Add CONST_WIDE_INT.
	(alpha_expand_mov): Ditto.
	(print_operand): Remove handling of 'H' modifier.
	<case 'm'>: Remove CONST_DOUBLE handling.
	(summarize_insn): Handle CONST_WIDE_INT.
	* config/alpha/alpha.md (*andsi_internal): Remove H constraint.
	(anddi3): Ditto.
	(movti): Handle CONST_WIDE_INT.
	* config/alpha/constraints.md ('H'): Remove constraint definition.
	('G'): Do not match MODE_FLOAT class.
	* config/alpha/predicates.md (const0_operand): Also match
	const_wide_int.
	(non_add_const_operand): Ditto.
	(non_zero_const_operand): Ditto.
	(some_operand): Ditto.
	(input_operand): Ditto.  Handle CONST_WIDE_INT.
	(and_operand): Do not match const_double.
	* config/alpha/sync.md (fetchop_constr): Remove H constraint.

2015-05-12  Andrew MacLeod  <amacleod@redhat.com>

	PR target/65697
	* coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
	(enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
	* tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
	is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
	is_mm_seq_cst, is_mm_sync): New accessor functions.
	* builtins.c (expand_builtin_sync_operation,
	expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
	(expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
	(get_memmodel,  expand_builtin_atomic_compare_exchange,
	expand_builtin_atomic_load, expand_builtin_atomic_store,
	expand_builtin_atomic_clear): Use new accessor routines.
	(expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
	* optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
	(maybe_emit_sync_lock_test_and_set): Use new accessors and
	MEMMODEL_SYNC_ACQUIRE.
	(expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
	(expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
	expand_atomic_store): Use new accessors.
	* emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
	* tsan.c (instrument_builtin_call): Update check for memory model beyond
	final enum to use MEMMODEL_LAST.
	* c-family/c-common.c: Use new accessor for memmodel_base.
	* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
	accessors.
	* config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
	arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
	mem_thread_fence, *dmb): Likewise.
	* config/alpha/alpha.c (alpha_split_compare_and_swap,
	alpha_split_compare_and_swap_12): Likewise.
	* config/arm/arm.c (arm_expand_compare_and_swap,
	arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
	* config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
	atomic_loaddi): Likewise.
	* config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
	Likewise.
	* config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
	* config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
	use new accessors.
	* config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
	atomic_store<mode>, atomic_compare_and_swap<mode>,
	atomic_exchange<mode>): Use new accessors.
	* config/mips/mips.c (mips_process_sync_loop): Likewise.
	* config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
	* config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
	rs6000_post_atomic_barrier): Add new cases.
	(rs6000_expand_atomic_compare_and_swap): Use new accessors.
	* config/rs6000/sync.md (mem_thread_fence): Add new cases.
	(atomic_load<mode>): Add new cases and use new accessors.
	(store_quadpti): Add new cases.
	* config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
	accessors.
	* config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
	* doc/extend.texi: Update docs to indicate 16 bits are used for memory
	model, not 8.

2015-05-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (type_with_linkage_p): New function.
	(type_in_anonymous_namespace_p): Move here from tree.c; assert that
	type has linkage.
	(odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
	(can_be_name_hashed_p): Simplify.
	(hash_odr_name): Check that type has linkage before checking if it is
	anonymous.
	(types_same_for_odr): Likewise.
	(odr_name_hasher::equal): Likewise.
	(odr_subtypes_equivalent_p): Likewise.
	(warn_types_mismatch): Likewise.
	(get_odr_type): Likewise.
	(odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
	* ipa-utils.h (odr_type_p): Move offline.
	* tree.c (need_assembler_name_p): Fix handling of types
	without linkages.
	(type_in_anonymous_namespace_p): Move to ipa-devirt.c

2015-05-12  David Malcolm  <dmalcolm@redhat.com>

	* timevar.c (timevar_enable): Delete in favor of...
	(g_timer): New global.
	(struct timevar_def): Move to timevar.h inside class timer.
	(struct timevar_stack_def): Likewise.
	(timevars): Delete global in favor of field "m_timevars" within
	class timer in timevar.h
	(stack): Likewise, in favor of field "m_stack".
	(unused_stack_instances): Likewise, in favor of field
	"m_unused_stack_instances".
	(start_time): Likewise, in favor of field "m_start_time".
	(get_time): Eliminate check for timevar_enable.
	(timer::timer): New function, built from part of timevar_init.
	(timevar_init): Rewrite idempotency test from using
	"timevar_enable" bool to using dynamic allocation of "g_timer".
	Move rest of implementation into timer's constructor.
	(timevar_push_1): Rename to...
	(timer::push): ...this, adding "m_" prefixes to variables that
	are now fields of timer.
	(timevar_pop_1): Likewise, rename to...
	(timer::pop): ...this, and add "m_" prefixes.
	(timevar_start): Replace test for "timevar_enable" with one for
	"g_timer", and move bulk of implementation to...
	(timer::start): ...here, adding "m_" prefixes.
	(timevar_stop): Likewise, from here...
	(timer::stop): ...to here.
	(timevar_cond_start): Likewise, from here...
	(timer::cond_start): ...to here.
	(timevar_cond_stop): Likewise, from here...
	(timer::cond_stop): ...to here.
	(validate_phases): Rename to...
	(timer::validate_phases): ...this, and add "m_" prefixes.  Make
	locals "total" and "tv" const.
	(timevar_print): Rename to...
	(timer::print): ...this, and add "m_" prefixes.  Make locals
	"total" and "tv" const.  Eliminate test for timevar_enable.
	* timevar.h (timevar_enable): Eliminate.
	(g_timer): New declaration.
	(timevar_push_1): Eliminate.
	(timevar_pop_1): Eliminate.
	(timevar_print): Eliminate.
	(class timer): New class.
	(timevar_push): Rewrite to use g_timer.
	(timevar_pop): Likewise.
	* toplev.c (toplev::~toplev): Likewise.

2015-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* arm-protos.h (arm_sched_autopref): Delete.
	(tune_params): Re-organize, use enums for flag values.
	(FUSE_OPS): New macro.
	* arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
	(ARM_PREFETCH_BENEFICIAL): Likewise.
	(ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
	(arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
	(arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
	(arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
	(arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
	(arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
	(arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
	format.
	(arm_option_override, thumb2_reorg, arm_print_tune_info)
	(aarch_macro_fusion_pair_p): Update uses of current_tune.
	* arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.

2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
	"break".

2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
	value.
	(REG_CLASS_NAMES): Add "IJMP_REGS".
	(REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
	* config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
	use new "c" register constraint.
	* config/nios2/constraint.md (c): New register constraint
	corresponding to IJMP_REGS.

2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
	*rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
	define_splits): Delete, revamp, transmogrify into ...
	(*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
	*ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
	*lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
	New.

2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
	gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.

2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (extzv): FAIL for SImode.
	(extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
	*rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
	*rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
	*rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
	*rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
	*lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
	*lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
	*lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
	*lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
	*rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
	*rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
	*rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
	*rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
	*rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
	*rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
	and 30 corresponding splitters): Delete.

2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (define_split for bswaphi): Don't use
	zero_extract.

2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (recog_for_combine_1): New function, factored out
	from recog_for_combine.
	(change_zero_ext): New function.
	(recog_for_combine): If recog fails, try again with the pattern
	modified by change_zero_ext; if that still fails, restore the
	pattern.

2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (get_undo_marker): New function.
	(undo_to_marker): New function, largely factored out from ...
	(undo_all): ... this.  Adjust.

2015-05-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66101
	* tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
	fixup if we turn a loop exit edge to a fallthru edge.

2015-05-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/37021
	* tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
	(SLP_TREE_TWO_OPERATORS): New define.
	* tree-vect-slp.c (vect_create_new_slp_node): Initialize
	SLP_TREE_TWO_OPERATORS.
	(vect_build_slp_tree_1): Allow two mixing plus/minus in an
	SLP node.
	(vect_build_slp_tree): Adjust.
	(vect_analyze_slp_cost_1): Likewise.
	(vect_schedule_slp_instance): Vectorize mixing plus/minus by
	emitting two vector stmts and mixing the results.

2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* call.c (print_z_candidates): Remove dead code.

2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
	and zEC12_simple_fp.
	* config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
	to 1.

2015-05-12  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66010
	* gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
	ifn_va_arg.
	* gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
	(gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
	va_lists are passed, and remove corresponding handling.
	(gimplify_va_arg_expr): Only take address of ap if necessary.  Add
	do_deref argument to ifn_va_arg.
	* tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
	ifn_va_arg.

2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65955
	* config/arm/arm.md (movcond_addsi): Check that operands[2] is a
	REG before taking its REGNO.

2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
	rsp->sign_bit_copies and rsp->nonzero_bits into ...
	(update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
	present to get more accurate information about the number of sign bit
	copies and non zero bits.

2015-05-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
	do not allow unrolling.

2015-05-11  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-modes.def (CCP): New.
	* config/i386/i386.c (put_condition_code): Handle it.
	(ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.

2015-05-11  Richard Henderson  <rth@redhat.com>

	* target.def (md_asm_clobbers): Replace with...
	(md_asm_adjust): this.
	* tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
	(TARGET_MD_ASM_ADJUST): New.
	* tm.texi: Rebuild.
	* hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
	* hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
	* system.h (TARGET_MD_ASM_CLOBBERS): Poison.

	* cfgexpand.c (check_operand_nalternatives): Accept vector of
	constraints instead of lists of outputs and inputs.
	(expand_asm_stmt): Save and restore input_location around the
	body of the function.  Move asm data into vectors instead of
	building tree lists.  Generate cleanup sequences as needed,
	rather than waiting til the end.  Use new md_asm_adjust hook.

	* config/vxworks.c: Include vec.h before target.h.
	* gimple.c: Likewise.
	* incpath.c: Likewise.
	* mode-switching.c: Likewise.

	* config/cris/cris.c (cris_md_asm_clobbers): Convert to...
	(cris_md_asm_adjust): this.
	(TARGET_MD_ASM_CLOBBERS): Remove.
	(TARGET_MD_ASM_ADJUST): New.
	* config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
	(ix86_md_asm_adjust): this.
	(TARGET_MD_ASM_CLOBBERS): Remove.
	(TARGET_MD_ASM_ADJUST): New.
	* config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
	(mn10300_md_asm_adjust): this.
	(TARGET_MD_ASM_CLOBBERS): Remove.
	(TARGET_MD_ASM_ADJUST): New.
	* config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
	(rs6000_md_asm_adjust): this.
	(TARGET_MD_ASM_CLOBBERS): Remove.
	(TARGET_MD_ASM_ADJUST): New.
	* config/visium/visium.c (visium_md_asm_clobbers): Convert to...
	(visium_md_asm_adjust): this.
	(TARGET_MD_ASM_CLOBBERS): Remove.
	(TARGET_MD_ASM_ADJUST): New.

2015-05-11  Richard Henderson  <rth@redhat.com>

	* gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
	if noutputs is zero.
	* cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.

	* cfgexpand.c (expand_asm_operands): Merge into...
	(expand_asm_stmt): ... here.

	* cfgexpand.c (expand_asm_operands): Don't call
	resolve_asm_operand_names.
	* stmt.c (resolve_asm_operand_names): Clarify block comment.

2015-05-11  Jan Hubicka  <hubicka@ucw.cz>

	* dwarf2out.c (gen_member_die): Sanity check that we access
	TYPE_MAIN_VARIANT for TYPE_METHODS.
	* function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
	checking TYPE_METHODS.
	* tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
	if non-null.
	(build_distinct_type_copy): Clear TYPE_METHODS.
	(verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
	(verify_type): Allow TYPE_METHODS to be error_mark_node.
	* tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.

2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>

	* emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
	(emit_pattern_before_setloc): Likewise.

2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>

	* genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
	for define_peephole2s.
	(get_peephole2_pattern): New function.
	(main): Use it.  Call validate_pattern.

2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	* config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
	LAST_CALLEE_SAVED_REG instead of hard-coded register number.
	(Last callee saved reg is different for AVR_TINY architecture)

2015-05-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
	when looking for memory references.

2015-05-11  Alexander Monakov  <amonakov@ispras.ru>

	PR target/65753
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
	via function pointers.

2015-05-11  Alexander Monakov  <amonakov@ispras.ru>

	* calls.c (prepare_call_address): Transform PLT call to GOT lookup and
	indirect call by forcing address into a pseudo with -fno-plt.
	* common.opt (flag_plt): New option.
	* doc/invoke.texi (Code Generation Options): Add -fno-plt.
	([-fno-plt]): Document.

2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR bootstrap/66105
	* config/rs6000/option-defaults.h: Add space between string literal
	and macro name.

2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* gcc.target/arm/pr64616.c: Test dump rather than assembly to work
	accross ARM targets.

2015-05-11  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
	* config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.

2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/66076
	* rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
	Don't grow the heap array if it is already big enough from a
	previous iteration.

2015-05-11  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm-protos.h (arm_declare_function_name): Declare.
	(is_called_in_ARM_mode): Remove.
	* config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
	(arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
	* config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
	 arm_declare_function_name.

2015-05-11  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm.c (arm_option_override): Reoganized and split into :
	(arm_option_params_internal); New function.
	(arm_option_check_internal): New function.
	(arm_option_override_internal): New function.
	(thumb_code, thumb1_code): Remove.
	* config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
	(TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
	(thumb_code, thumb1_code): Remove.
	* config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.

2015-05-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_set_const_1)
	(alpha_emit_set_long_const, alpha_extract_integer)
	(alpha_legitimate_constant_p, alpha_split_const_mov)
	(alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
	[HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
	(alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
	HOST_WIDE_INT_1U.
	* config/alpha/predicates.md (mode_mask_operand): Do not match
	const_double RTX.
	[HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
	* config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
	Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
	[HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
	(*negtf_internal): Use gen_int_mode instead of immed_double_const.

2015-05-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/65780
	* config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
	default_binds_local_p_2.
	* config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
	* config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.

2015-05-09  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION

2015-05-09  Jan Hubicka  <hubicka@ucw.cz>

	Patch by Richard Biener
	* coverage.c (coverage_obj_init): Delay building of type variant
	until the type is finished.

2015-05-09  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
	mismatch between C and C++ type; compoare correctly ARG_TYPES
	for non-prototypes and output correctly parameter index for METHOD_TYPE.
	(odr_types_equivalent_p): Fix wording of warning about attributes;
	it is OK to match prototype and non-prototype.

2015-05-09  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
	TYPE_ARG_TYPES list.
	(verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
	* tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES

2015-05-09  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
	* tree.h (is_lang_specific): Constify.

2015-05-09  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/64454
	* tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
	Rewrite.

2015-05-08  Jason Merrill  <jason@redhat.com>

	* bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
	config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
	config/darwin.h, config/darwin9.h, config/elfos.h,
	config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
	config/microblaze/microblaze.h, config/mips/mips.h,
	config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
	config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
	config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
	config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
	config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
	cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
	dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
	ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
	ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
	modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
	tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
	between string literal and macro name.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* jump.c: Change argument types to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* lra-constraints.c: Change argument type to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* df-problems.c: Change argument type to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c: Change argument type to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtl.h: Adjust.
	* rtlanal.c: Change argument type to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* sched-deps.c: Change argument types to rtx_insn *.
	* sched-int.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* dwarf2cfi.c: Change argument type to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* ira.c (decrease_live_ranges_number): Changetype of local
	variable to rtx_insn *.
	* recog.c: Change argument types to rtx_insn *.
	* recog.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c: Change argument types to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* ira-color.c: Change argument types to rtx_insn *.
	* lra-eliminations.c: Likewise.
	* ira.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gcse.c: Change argument types to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* emit-rtl.c (emit_debug_insn_before): Change argument type to
	rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
	to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
	to rtx_insn *.
	* rtl.h: Likewise.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* except.c (can_nonlocal_goto): Change type of argument to
	rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
	* rtl.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
	* cfgrtl.c (can_delete_label_p): Adjust.
	* rtl.h: likewise.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c (stop_search_p): Change argument to rtx_insn *.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* except.c (make_reg_eh_region_note): Change argument to
	rtx_insn *.
	(make_reg_eh_region_note_nothrow_nononlocal): Likewise.
	* except.h: Adjust.

2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* mode-switching.c (commit_mode_sets): Change type of local
	variable from rtx to rtx_insn *.

2015-05-08  Jim Wilson  <jim.wilson@linaro.org>

	* doc/install.texi (--enable-languages): Add missing jit and lto info.
	Add ^ to grep command.
	* doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
	arg to last gimple_simplify declaration.  Add missing gimple_build
	declaration for built-in function case with four tree args.

2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
	(MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
	(GNU_USER_DYNAMIC_LINKERN32): Update.

2015-05-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66036
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
	Handle strided group loads.
	(vect_verify_datarefs_alignment): Likewise.
	(vect_enhance_data_refs_alignment): Likewise.
	(vect_analyze_group_access): Likewise.
	(vect_analyze_data_ref_access): Likewise.
	(vect_analyze_data_ref_accesses): Likewise.
	* tree-vect-stmts.c (vect_model_load_cost): Likewise.
	(vectorizable_load): Likewise.

2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md: Require operand inequality in one
	of the peepholes.

2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
	    Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
	from (set ...).
	* config/rx/rx.md (movdi, movdf): Likewise.
	Likewise for define_peephole2s.

2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
	vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
	vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
	vtst_u64): Rewrite using gcc vector extensions.

2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
	vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.

2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>

	* optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.

2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/glibc-stdint.h (OPTION_MUSL): Define.
	(INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
	Change the definition based on OPTION_MUSL for 64 bit targets.
	* config/linux.h (OPTION_MUSL): Redefine.
	* config/alpha/linux.h (OPTION_MUSL): Redefine.
	* config/rs6000/linux.h (OPTION_MUSL): Redefine.
	* config/rs6000/linux64.h (OPTION_MUSL): Redefine.

2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
	    Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config.gcc (LIBC_MUSL): New tm_defines macro.
	* config/linux.h (OPTION_MUSL): Define.
	(MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
	(MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
	(INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
	(INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
	(INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
	* config/linux.opt (mmusl): New option.
	* doc/invoke.texi (GNU/Linux Options): Document -mmusl.
	* configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
	(gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
	* configure: Regenerate.

2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
	    Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR target/48904
	* config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
	* config/i386/knetbsd-gnu64.h: New file.

2015-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/64918
	* doc/invoke.texi: Document -Woverride-init-side-effects.

2015-05-07  Marek Polacek  <polacek@redhat.com>

	PR c/65179
	* doc/invoke.texi: Document -Wshift-negative-value.

2015-05-06  Aditya Kumar  <hiraditya@msn.com>

	* gcov-tool.c (do_merge): Refactore to remove int ret.
	* ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
	!type == FUNC to type != FUNC.
	* reload.h (struct target_reload): Changee to type of
	x_spill_indirect_levels from bool to unsigned char.

2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (always_void_p): New function.
	* gengenrtl.c (always_void_p): Likewise.
	(genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
	with code foo are always VOIDmode.
	* genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
	* builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
	compare-elim.c, config/aarch64/aarch64.c,
	config/aarch64/aarch64.md, config/alpha/alpha.c,
	config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
	config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
	config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
	config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
	config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
	config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
	config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
	config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
	config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
	config/ia64/vect.md, config/iq2000/iq2000.c,
	config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
	config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
	config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
	config/mep/mep.c, config/microblaze/microblaze.c,
	config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
	config/mn10300/mn10300.c, config/msp430/msp430.c,
	config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
	config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
	config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
	config/rs6000/altivec.md, config/rs6000/rs6000.c,
	config/rs6000/rs6000.md, config/rs6000/vector.md,
	config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
	config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
	config/sh/sh.md, config/sh/sh_treg_combine.cc,
	config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
	config/spu/spu.md, config/stormy16/stormy16.c,
	config/tilegx/tilegx.c, config/tilegx/tilegx.md,
	config/tilepro/tilepro.c, config/tilepro/tilepro.md,
	config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
	config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
	expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
	lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
	reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
	var-tracking.c: Update calls accordingly.

2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>

	PR middle-end/192
	PR middle-end/54303
	* varasm.c (function_mergeable_rodata_prefix): New function.
	(mergeable_string_section): Use it.
	(mergeable_constant_section): Use it.

2015-05-07  Jeff Law  <law@redhat.com>

	PR target/39726
	* match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
	simplifier to narrow arithmetic.
	* generic-match-head.c: (types_match, single_use): New functions.
	* gimple-match-head.c: (types_match, single_use): New functions.

2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* combine.c (make_compound_operation): Remove checks for PLUS/MINUS
	rtx type.

2015-05-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66002
	* passes.def: Schedule another pass_merge_phi after ifcombine, right
	before phiopt.

2015-05-07  Marek Polacek  <polacek@redhat.com>
	    Martin Uecker  <uecker@eecs.berkeley.edu>

	* doc/invoke.texi: Document -fsanitize=bounds-strict.
	* flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
	into SANITIZE_NONDEFAULT.
	* opts.c (common_handle_option): Handle -fsanitize=bounds-strict.

2015-05-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66015
	* config/alpha/alpha.c (alpha_override_options_after_change): New.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
	(alpha_override_options): Move align_loops, align_jumps and
	align_functions handling into alpha_override_options_after_change.

2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
	    Chris Jones  <chrisj@nvidia.com>
	    Joshua Conner  <jconner@nvidia.com>

	* config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
	linking of crtfastmath.o.
	* config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.

2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
	(cstore<mode>4_unsigned_imm): New expander.
	(cstore<mode>4): Remove empty constraint strings.  Use the new
	expanders.

2015-05-06  Yvan Roux  <yvan.roux@linaro.org>

	PR target/64208
	* config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
	alternatives.

2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/geniterators.sh: Use standard BRE in sed.

2015-05-06  Alan Modra  <amodra@gmail.com>

	PR target/66033
	* config/rs6000/rs6000.md (nop): Use an unspec pattern.
	(UNSPEC_NOP): Define.
	(reload_vsx_from_gpr<mode>): Add missing DONE.
	(reload_gpr_from_vsx<mode>): Likewise.
	* config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
	(vsx_div_v2di, vsx_udiv_v2di): Likewise.

2015-05-06  Christian Bruel  <christian.bruel@st.com>

	PR target/66015
	* config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
	align_jumps, align_functions into aarch64_override_options_after_change.

2015-05-06  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_supported_load_permutation_p): Use
	vect_transform_slp_perm_load to check if we support a permutation
	for basic-block vectorization.

2015-05-06  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (need_to_save): Save register 22 if it is
	used, even if it is not being used as a frame pointer.

2015-05-05  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (gen_member_die): Don't emit anything for an
	anonymous class constructor.

2015-05-05  David Malcolm  <dmalcolm@redhat.com>

	* auto-profile.c (afdo_find_equiv_class): Fix indentation so
	that it reflects the block structure.
	(afdo_propagate_edge): Likewise.
	(afdo_calculate_branch_prob): Likewise.
	(afdo_annotate_cfg): Likewise.
	* cfgcleanup.c (equal_different_set_p): Likewise.
	(try_crossjump_to_edge): Likewise.
	* cgraph.c (cgraph_node::verify_node): Likewise.
	* cgraphunit.c (expand_all_functions): Likewise.
	* config/i386/i386.c (ix86_expand_copysign): Likewise.
	(exact_dependency_1): Likewise.
	* dwarf2asm.c (dw2_output_indirect_constants): Likewise.
	* dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
	* gensupport.c (process_define_subst): Likewise.
	* lto-wrapper.c (merge_and_complain): Likewise.
	* tree-if-conv.c (if_convertible_bb_p): Likewise.
	* tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
	* tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
	* tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
	* tree-vect-loop.c (vectorizable_reduction): Likewise.
	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
	* tree-vect-stmts.c (vectorizable_shift): Likewise.
	* tree-vrp.c (vrp_finalize): Likewise.
	* tree.c (variably_modified_type_p): Likewise.

2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>

	* config.gcc: Use darwin9.h, darwin10.h and darwin12.h
	on darwin12 and later.
	* config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
	file to pass -rdynamic on darwin12 and later.
	* config/darwin.opt (rdynamic): Add.

2015-05-05  Uros Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (C Extensions): Update menu for moved Variable
	Attributes and Type Attributes sections.

2015-05-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65990
	* config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
	if rep_8byte stringop strategy was specified for 32-bit target.

2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/65915
	* config/i386/i386.md (vector convert to float spltiter): Check for
	xmm16+, when splitting scalar float conversion.
	* config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.

2015-05-05  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430-opts.h (enum msp430_regions): New.
	* config/msp430/msp430.c (msp430_override_options): Complain if
	-mcode-region or -mdata-region is used on a non MSP430X.
	(msp430_section_attr): New function.  Checks lower, upper and
	either attributes.
	(msp430_attribute_table): Add lower, upper and either.
	(gen_prefix): New function.  Generates a prefix for a section
	name.
	(msp430_select_section): New function - handles the choice of
	section for an object.  Takes into account memory region
	attributes and options.
	(msp430_function_section): Use gen_prefix.
	(TARGET_SECTION_TYPE_FLAGS): Define.
	(msp430_section_type_flags): New function.
	(TARGET_ASM_UNIQUE_SECTION): Define.
	(msp430_unique_section): New function.
	(msp430_output_aligned_decl_common): New function.
	(msp430_do_not_relax_short_jumps): New function.
	* config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
	Define.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
	* config/msp430/msp430-protos.h
	(msp430_do_not_relax_short_jumps): New prototype.
	(msp430_output_aligned_decl_common): New prototype.
	* config/msp430/msp430.md (length): New attribute.
	(cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
	then use a long code sequence for short jumps.
	* config/msp430/msp430.opt (mcode-region): New.
	(mdata-region): New.
	* doc/invoke.texi: Document new options.
	* doc/extend.texi: Document new attributes.

2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64-protos.h (struct cpu_branch_cost): New.
	(tune_params): Add field branch_costs.
	(aarch64_branch_cost): Declare.
	* config/aarch64.c (generic_branch_cost): New.
	(generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(aarch64_branch_cost): Define.
	* config/aarch64/aarch64.h (BRANCH_COST): Redefine.

2015-05-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
	and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
	* config/i386/i386.md: Ditto.
	* config/i386/winnt.c: Ditto.

2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/extend.texi (__atomic Builtins): Move implementation details
	to the end of the description, rewrite opening paragraphs, state
	difference with __sync builtins, state C11/C++11 assumptions,
	weaken itemized descriptions, add explanation of memory model
	behaviour, expand description of compare-exchange, simplify text.

2015-05-05  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.

2015-05-05  Yvan Roux  <yvan.roux@linaro.org>

	* config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
	(LINK_SPEC): Include CA53_ERR_843419_SPEC.
	* config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
	(LINK_SPEC): Include CA53_ERR_843419_SPEC.
	* config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
	* configure: Regenerate.
	* configure.ac: Add --enable-fix-cortex-a53-843419 option.
	* doc/install.texi (aarch64*-*-*): Document new
	--enable-fix-cortex-a53-843419 option.
	* doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
	and -mno-fix-cortex-a53-843419 options.

2015-05-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65871
	* config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.

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

	* tree.c (verify_type): Check various uses of TYPE_MAXVAL;
	fix overactive TYPE_MIN_VALUE check and add FIXME for type
	compatibility problems.

2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>

	* config/microblaze/microblaze.md (cbranchsi4): Added immediate
	constraints.
	(cbranchsi4_reg): New.
	* config/microblaze/microblaze.c
	(microblaze_expand_conditional_branch_reg): New.
	* config/microblaze/microblaze-protos.h
	(microblaze_expand_conditional_branch_reg): New prototype.

2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>

	* config/microblaze/microblaze.md (peephole2): New.

2015-05-04  Jeff Law  <law@redhat.com>

	Revert:
	2015-05-04  Jeff Law  <law@redhat.com>

	* match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
	simplifier to narrow arithmetic.
	* generic-match-head.c: (types_match, single_use): New functions.
	* gimple-match-head.c: (types_match, single_use): New functions.

2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65987
	* config/sh/sh.c (output_far_jump): Take into account crossing jumps.
	(split_branches): Likewise.

2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>

	* common.opt (fdelete-null-pointer-checks): Init to -1.
	* config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
	override flag_delete_null_pointer_checks default.
	* doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
	behavior re address zero.  Better document target-specific behavior.
	(-fisolate-errneous-paths-dereference): Mention relationship to
	-fdelete-null-pointer-checks.

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

	PR tree-optimization/65984
	* ubsan.c: Include tree-cfg.h.
	(instrument_bool_enum_load): Use stmt_ends_bb_p instead of
	stmt_could_throw_p test, rename can_throw variable to ends_bb.

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

	* config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
	to CONST_DOUBLE_P predicate.
	(standard_sse_constant_p): Return 0 for !TARGET_SSE.
	(ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
	allow only operands that satisfy standard_sse_constant_p predicate.
	* config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
	to CONST_DOUBLE_P predicate.

2015-05-04  Jeff Law  <law@redhat.com>

	* match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
	simplifier to narrow arithmetic.
	* generic-match-head.c: (types_match, single_use): New functions.
	* gimple-match-head.c: (types_match, single_use): New functions.

2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/arm/arm.c: Restore bootstrap.

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

	* config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
	* config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
	as CONST_WIDE_INT, not CONST_DOUBLE.
	(ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
	(output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
	(ix86_find_base_term): Do not check for CONST_DOUBLE.
	(ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
	(ix86_build_signbit_mask): Rewrite using wide ints.
	(ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
	(ix86_rtx_costs): Handle CONST_WIDE_INT.
	(find_constant): Ditto.
	* config/i386/i386.md (bts, btr, btc peepholes): Rewrite
	using gen_int_mode.
	* config/i386/predicates.md (x86_64_immediate_operand)
	<case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
	(x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
	<case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
	(const0_operand): Also match const_wide_int.
	(constm1_operand): Ditto.
	(const1_operand): Ditto.

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

	PR tree-optimization/65965
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
	store groups at gaps.

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

	PR tree-optimization/65935
	* tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
	then make sure to apply that swapping to the IL.

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

	* Makefile.in (PATCHLEVEL_c): New variable.
	(DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
	expand the same way as if DEVPHASE_c was non-empty.

2015-05-04  Kai Tietz  <ktietz@redhat.com>

	PR target/65559
	* lto-wrapper.c (run_gcc): Open filename
	in binary-mode.

2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Variable Attributes, Type Attributes):  Move
	sections up in file, to immediately after the Function Attributes
	section.

2015-05-02  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (verify_type): Check various uses of TYPE_MINVAL.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
	(insert_partition_copy_on_edge): Adjust.
	(insert_rtx_to_part_on_edge): Likewise.
	(insert_part_to_rtx_on_edge): Likewise.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* function.c (set_return_jump_label): Change type of argument to
	rtx_insn *.
	* function.h (set_return_jump_label): Adjust.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reload.h (struct reg_equivs_t): Change type of init to
	rtx_insn *.
	* ira.c (fix_reg_equiv_init): Adjust.
	* reload1.c (eliminate_regs_1): Likewise.
	(init_eliminable_invariants): Likewise.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cselib.c (fp_setter_insn): Take a rtx_insn *.
	* cselib.h (fp_setter_insn): Adjust.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* recog.c (struct validate_replace_src_data): Change type of
	insn field to rtx_insn *.
	(validate_replace_src_group): Change type of argument to rtx_insn *.
	* recog.h (validate_replace_src_group): Adjust.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* haifa-sched.c: Change the type of some variables to rtx_insn *.
	* sched-deps.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.
	* sel-sched.c: Likewise.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	to rtx_insn *.
	* config/i386/i386.c: Change the type of some arguments to
	rtx_insn *.
	* config/arm/arm.c: Likewise.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* lra-constraints.c: Change type of some arguments to rtx_insn *.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* regcprop.c (kill_autoinc_value): Change type of argument to
	rtx_insn *.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genrecog.c (print_subroutine): Adjust.
	* recog.c (get_bool_attr_mask_uncached): Likewise.
	* recog.h (struct recog_data_d): Change the type of insn to
	rtx_insn *.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* df-problems.c (df_set_note): Change type of argument to
	rtx_insn *.

2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* builtins.c (expand_builtin_trap): Change type of local
	variable to rtx_insn *.
	(add_sched_insns_for_speculation): Likewise.
	(ix86_emit_save_regs): Likewise.
	(get_scratch_register_on_entry): Likewise.
	(ix86_emit_restore_reg_using_pop): Likewise.
	(ix86_emit_leave): Likewise.
	(ix86_emit_restore_regs_using_mov): Likewise.
	(ix86_expand_epilogue): Likewise.
	Likewise.
	(rl78_alloc_physical_registers_umul): Likewise.
	* cselib.c (discard_useless_locs): Likewise.
	(cselib_invalidate_regno): Likewise.
	(cselib_invalidate_mem): Likewise.
	* function.c (expand_function_start): Likewise.
	(emit_use_return_register_into_block): Likewise.
	* gcse.c: Likewise.
	* haifa-sched.c (ok_for_early_queue_removal): Likewise.
	* ifcvt.c (noce_get_alt_condition): Likewise.
	* loop-doloop.c (doloop_condition_get): Likewise.
	* lra-constraints.c (inherit_in_ebb): Likewise.
	* modulo-sched.c (sms_schedule_by_order): Likewise.
	* recog.c (next_insn_tests_no_inequality): Likewise.
	* reorg.c (emit_delay_sequence): Likewise.
	(update_reg_dead_notes): Likewise.
	(fix_reg_dead_note): Likewise.
	(fill_slots_from_thread): Likewise.
	(delete_computation): Likewise.

2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Variable Attributes): Add menu and proper
	@nodes to subsections.  Move Microsoft Windows attributes to
	their own subsection.
	(Type Attributes): Reorganize introduction to remove duplicate
	list of attributes.  Add menu and proper @nodes to subsections.
	Alphabetize the main table of common attributes.

2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

	* match.pd: New simplification patterns.
	(x + (x & 1))  -> ((x + 1) & ~1)
	(x & ~(x & y)) -> ((x & ~y))
	(x | ~(x | y)) -> ((x | ~y))

2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* target.def (attribute_table): Mention that struct attribute_spec
	is defined in tree-core.h rather than tree.h
	* doc/tm.texi: Regenerate.

2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>

	* genrecog.c (test): Rename to rtx_test.  Update rest of file
	accordingly.

2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>

	PR translation/65959
	* params.h (DEFPARAM): Rename msgid to nocmsgid.

2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64-protos.h (tune_params):
	Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
	* config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
	Return value depending on target.
	(generic_tunings): Initialize new target settings.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.

2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
	Make Cortex-A53 shift costs more accurate.

2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
	UNSIGNED_FLOAT.

2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs):
	Calculate cost of op0 and op1 in PLUS and MINUS cases.

2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
	Add cost of op0 in the compare-with-fpzero case.

2015-04-30  David Malcolm  <dmalcolm@redhat.com>

	* builtins.c (fold_builtin_1): Remove spurious second
	semicolon.
	* cgraph.h (symtab_node::get_availability): Likewise.
	* opts.c (common_handle_option): Remove spurious second semicolon.
	* tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
	* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.

2015-04-30  Caroline Tice  <cmtice@google.com>

	PR gcov-profile/65929
	* config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
	(ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
	* doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
	(ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
	* doc/tm.texi: Regenerate.
	* final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
	instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
	* varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
	instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.

2015-04-30  Marek Polacek  <polacek@redhat.com>

	* varasm.c (handle_cache_entry): Fix logic.

2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
	(*extrsi5_insn_uxtw_alt): Likewise.
	* config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
	(aarch64_rtx_costs, IOR case): Use above to properly cost extr
	operations.

2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
	fabd in ABS case.

2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md
	(*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
	(*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
	appropriately.  Handle alternative EON form.

2015-04-30  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
	* config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.

2015-04-30  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65873
	* ipa-inline.c (can_inline_edge_p): It is safe to inline across
	-fstrict-aliasing boundaries.

2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
	and [SU]MNEGL patterns.

2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_shift_p): New function.
	(aarch64_rtx_mult_cost): Update comment to reflect that it also handles
	combined arithmetic-shift ops.  Properly handle all shift and extend
	operations that can occur in combination with PLUS/MINUS.
	Rename maybe_fma to compound_p.
	(aarch64_rtx_costs): Use aarch64_shift_p when costing compound
	arithmetic and shift operations.

2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
	rather than arith_shift cost when costing ADD/MINUS of an
	extended value.

2015-04-30  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65948
	* ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
	to itself.

2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>

	* genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
	are for the same position.

2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>

	* tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
	vectorize_loops.
	(vectorize_loops): Use it.

2015-04-29  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
	for aggregate types.
	(register_odr_type): Be ready for MAIN_VARIANT of ODR type
	type to be non_ODR.
	* tree.c (need_assembler_name_p): Compute mangled name for
	non-fundamental types and integer types.

2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>

	* dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
	manual swaps.
	* expr.c (expand_expr_real_2): Likewise.

2015-04-29  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (build_common_builtin_nodes): Do not build
	__builtin_alloca_with_align as equivalent of library alloca.

2015-04-29  Jan Hubicka  <hubicka@ucw.cz>

	* dwarf2out.c (gen_type_die_with_usage): Call verify_type.
	* ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
	bugus variants.
	* tree.c: Include print-tree.h and ipa-utils.h
	(free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
	(free_lang_data_in_cgraph): Call verify_type.
	(verify_type_variant): New function.
	(verify_type): New function.
	* tree.h (verify_type): Declare.

2015-04-29  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips-cpus.def: (mips4): Change default processor
	from PROCESSOR_R8000 to PROCESSOR_R10000.

2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>

	* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
	la/jalr instead of jal.

2015-04-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65871
	* config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
	(*bmi2_bzhi_<mode>3_1_ccz): Ditto.
	(setcc+movzbl peephole2): Check also clobbered reg.
	(setcc+andl peephole2): Ditto.

2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/65099
	* config/nvptx/mkoffload.c (target_ilp32): New variable.
	(main): Set it depending on "-foffload-abi=[...]".
	(compile_native, main): Use it to pass "-m32" or "-m64" to the
	compiler.

2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/65770
	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
	vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
	Flip lane index back at assembly time for bigendian.

2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	* tree.h (OMP_STANDALONE_CLAUSES): New macro.
	* gimplify.c (gimplify_omp_workshare): Use it.

2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>

	* Makefile.in (build/genrecog.o): Depend on inchash.h.
	(build/genrecog$(build_exeext): Depend on build/hash-table.o and
	build/inchash.o
	* genrecog.c: Rewrite most of the code except for the third page.

2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>

	* inchash.h, inchash.c: Include bconfig.h for build objects.
	* Makefile.in (build/inchash.o): New rule.

2015-04-29  Yvan Roux  <yvan.roux@linaro.org>

	PR target/65924
	* config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
	number in type attribute expression.

2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>

	* loop-iv.c (canon_condition): Generalize to all types of integer
	constant.

2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>

	* gimple-walk.c: Prune duplicate or unneeded includes.
	(walk_gimple_asm): Only call parse_input_constraint or
	parse_output_constraint if their findings are used.
	Honour parse_input_constraint and parse_output_constraint
	result.

2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.

2015-04-29  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65893
	* passes.def (pass_all_optimizations): Move pass_stdarg to after
	pass_dce.

2015-04-29  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_group_access): Properly
	compute GROUP_SIZE for basic-block SLP.
	* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
	take into account gaps.
	(vect_get_mask_element): Properly reject references to previous
	vectors.
	(vect_transform_slp_perm_load): Likewise.

2015-04-29  Christian Bruel  <christian.bruel@st.com>

	PR target/64835
	* config/i386/i386.c (ix86_default_align): New function.
	(ix86_override_options_after_change): Call ix86_default_align.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
	(ix86_override_options_after_change): New function.

2015-04-28  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (record_equality); Fix comment typos.

2015-04-28  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65887
	* gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.

2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Declaring Attributes of Functions): Split into
	subsections by target.  Alphabetize the table of common attributes.
	Rewrite some of the introductory text to reflect the new structure.
	Update some cross-references to point to the new subsections.
	(Attribute Syntax): Put paragraph about "__" naming here.  Remove
	duplicate copies in the discussion of function, label, and type
	attributes.

2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR bootstrap/65910
	* varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.

2015-04-28  Jason Merrill  <jason@redhat.com>

	PR c++/65734
	* stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
	(finalize_type_size): Respect TYPE_USER_ALIGN.
	(layout_type) [ARRAY_TYPE]: Likewise.

2015-04-28  Yvan Roux  <yvan.roux@linaro.org>

	* config/arm/arm.md (*arm_movt): Fix type attribute.
	(*cmpsi_shiftsi): Likewise.
	(*cmpsi_shiftsi_swp): Likewise.
	(*movsicc_insn): Likewise.
	(*cond_move): Likewise.
	(*if_plus_move): Likewise.
	(*if_move_plus): Likewise.
	(*if_arith_move): Likewise.
	(*if_move_arith): Likewise.
	(*if_shift_move): Likewise.
	(*if_move_shift): Likewise.
	(*arm_movtas_ze): Likewise.
	* config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
	redundancy and type attribute.
	(*thumb2_movsi_insn): Fix type attribute.
	(*thumb2_addsi_short): Likewise.
	(thumb2_addsi3_compare0): Likewise.
	(*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
	attributes accordingly.

2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR other/65911
	* function.c (pad_to_arg_alignment): Add parentheses.

2015-04-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
	libgcc/config/frv/elf-lib.h.

2015-04-28  Tom de Vries  <tom@codesourcery.com>

	* tree-call-cdce.c: Fix example in header comment.

2015-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62283
	* tree-vect-slp.c (vect_build_slp_tree): When the SLP build
	fails fatally and we are vectorizing a basic-block simply
	cause the child to be constructed piecewise.
	(vect_analyze_slp_cost_1): Adjust.
	(vect_detect_hybrid_slp_stmts): Likewise.
	(vect_bb_slp_scalar_cost): Likewise.
	(vect_get_constant_vectors): For piecewise constructed
	constants place them after the last def.
	(vect_get_slp_defs): Adjust.
	* tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
	externals for basic-block vectorization.

2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR target/63503
	* config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
	aarch64-*-*.
	* config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
	* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
	(AARCH64_TUNE_FMA_STEERING): Likewise.
	* config/aarch64/aarch64-cores.def: Set
	AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
	FMUL/FMADD instructions.
	* config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
	(aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
	aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
	* config/aarch64/cortex-a57-fma-steering.h: New file.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.

2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.c (std_preds): Add missing codes to address_operand entry.

2015-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65851
	* tree-ssa-ccp.c (set_lattice_value): Perform a meet when
	changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
	(ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
	rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
	(ccp_visit_phi_node): Adjust.
	(evaluate_stmt): For simplifications to SSA names return its
	lattice value if that isn't VARYING.  Return immediately when
	simplified to a constant.
	(visit_assignment): Adjust.
	(ccp_visit_stmt): Likewise.

2015-04-28  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65818
	* tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
	evaluated.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* calls.c (save_fixed_argument_area): Don't check
	ARGS_GROW_DOWNWARD with the preprocessor.
	(restore_fixed_argument_area): Likewise.
	(mem_overlaps_already_clobbered_arg_p): Likewise.
	(check_sibcall_argument_overlap): Likewise.
	(expand_call): Likewise.
	(emit_library_call_value_1): Likewise.
	(store_one_arg): Likewise.
	* function.c (assign_parms): Likewise.
	(locate_and_pad_parm): Likewise.
	(pad_to_arg_alignment): Likewise.
	* targhooks.c (std_gimplify_va_arg_expr): Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
	* defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
	* calls.c (save_fixed_argument_area): Don't chekc if
	ARGS_GROW_DOWNWARD is defined.
	(restore_fixed_argument_area): Likewise.
	(mem_overlaps_already_clobbered_arg_p): Likewise.
	(check_sibcall_argument_overlap): Likewise.
	(expand_call): Likewise.
	(emit_library_call_value_1): Likewise.
	(store_one_arg): Likewise.
	* function.c (assign_parms): Likewise.
	(locate_and_pad_parm): Likewise.
	(pad_to_arg_alignment): Likewise.
	* targhooks.c (std_gimplify_va_arg_expr): Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (gen_epilogue): New function.
	* alias.c (init_alias_analysis): don't check if HAVE_epilogue is
	defined.
	* cfgrtl.c (cfg_layout_finalize): Likewise.
	* df-scan.c: Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	(reposition_prologue_and_epilogue_notes): Likewise.
	* reorg.c (find_end_label): Likewise.
	* toplev.c: Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* bb-reorder.c (HAVE_return): Don't check if its undefined.
	* defaults.h (gen_simple_return): New function.
	(gen_simple_return): Likewise.
	(HAVE_return): Add default definition to false.
	(HAVE_simple_return): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
	HAVE_return and HAVE_simple_return are defined.
	* function.c (gen_return_pattern): Likewise.
	(convert_jumps_to_returns): Likewise.
	(thread_prologue_and_epilogue_insns): Likewise.
	* reorg.c (find_end_label): Likewise.
	(dbr_schedule): Likewise.
	* shrink-wrap.c: Likewise.
	* shrink-wrap.h: Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (EPILOGUE_USES): Add default definition of false.
	* df-scan.c (EPILOGUE_USES): Remove check if its undefined.
	* resource.c (init_resource_info): Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
	to false.
	* dwarf2out.c (field_byte_offset): REmove check if
	PCC_BITFIELD_TYPE_MATTERS is defined.
	* stor-layout.c (layout_decl): Likewise.
	(update_alignment_for_field): Likewise.
	(place_field): Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
	true.
	* regrename.c (check_new_reg_p): Remove check if
	HARD_REGNO_RENAME_OK is defined.
	* sel-sched.c (sel_hard_regno_rename_ok): Likewise.

2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
	* cse.c (fold_rtx): Likewise.
	* config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
	* config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
	* config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
	* config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
	* config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
	* config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
	* config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
	* config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
	* config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
	* config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
	* Likewise.
	* config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
	* config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
	* config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
	* config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
	* config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
	* config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
	* config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
	* config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
	* config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
	* config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
	* config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
	* config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
	* defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
	either true or false.

2015-04-27  Jeff Law  <law@redhat.com>

	PR tree-optimization/65217
	* tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
	of them has a single use, make sure it is the LHS of the implied
	copy.

2015-04-28  Alan Modra  <amodra@gmail.com>

	PR target/65810
	* config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
	(offsettable_ok_by_alignment): Use minimum of decl and toc
	pointer alignment.  Replace dead code with assertion.
	(use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
	case if size exceeds toc pointer alignment.
	(rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
	(rs6000_emit_move): Likewise.
	* configure.ac: Add linker toc pointer alignment check.
	* configure: Regenerate.
	* config.in: Regenerate.

2015-04-27  Yoshinori Sato  <ysato@users.sourceforge.jp>

	* config.gcc: Add h8300-*-linux.
	* config/h8300/linux.h: New.
	* config/h8300/t-linux: New.
	* config/h8300/h8300.c (h8300_option_override): Normal mode
	is not supported for h8300-*-linux.
	(h8300_file_start): Target priority change.
	(get_shift_alg): Likewise.
	(h8300_shift_need_scratch_p): Likewise.
	* config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
	* config/h8300/h8300.md (define_peephole2): Remove duplicate condition.

2015-04-27  Caroline Tice  <cmtice@google.com>

	* final.c (final_scan_insn):  Output cold_function_name as function
	type.
	* varasm.c (cold_function_name):  Make global.
	(assemble_start_function):  Re-set cold_function_name.
	(assemble_end_function): Output cold partition size.
	* varasm.h (cold_function_name):  Declare global.

2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/i386.h (EXT_REX_SSE_REG_P): New.
	* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
	constraint.
	(*movxi_internal_avx512f): Ditto.
	(define_split): Check for xmm16+, when splitting scalar float_extend.
	(*extendsfdf2_mixed): Use "v" constraint.
	(define_split): Check for xmm16+, when splitting scalar float_truncate.
	(*truncdfsf_fast_sse): Use "v" constraint.
	(fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
	(*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
	(define_peephole2): Check for xmm16+, when converting scalar
	float_truncate.
	(define_peephole2): Check for xmm16+, when converting scalar
	float_extend.
	(*fop_<mode>_comm_mixed): Use "v" constraint.
	(*fop_<mode>_comm_sse): Ditto.
	(*fop_<mode>_1_mixed): Ditto.
	(*sqrt<mode>2_sse): Ditto.
	(*ieee_s<ieee_maxmin><mode>3): Ditto.

2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* combine.c (simplify_if_then_else): Use std::swap instead
	of manually swapping.
	(known_cond): Likewise.
	(simplify_comparison): Likewise.

2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/64579
	* config/rs6000/htm.md: Remove all define_expands.
	(UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
	UNSPECV_HTM_TABORTWCI): Remove.
	(UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
	(tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
	trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
	(tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
	(tabortdc_internal, tabortdci_internal, tabortwc_internal,
	tabortwci_internal): Remove define_insns.
	(tabort<wd>c, tabort<wd>ci): New define_insns.
	(tabort): Use gpc_reg_operand.
	(tcheck): Remove operand.
	(htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
	* config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
	expected value.
	* config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
	(BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
	(tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
	tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
	tsr, ttest): Pass in the RS6000_BTC_CR attribute.
	(get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
	get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
	(tcheck): Remove builtin argument.
	* config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
	not TARGET_64BIT.
	(htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
	tabortdc and tabortdci builtins when not in 64-bit mode.
	Modify code to handle the loss of the HTM define_expands.
	Emit code to copy the CR register to TARGET.
	(htm_init_builtins): Modify code to handle the loss of the HTM
	define_expands.
	* config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
	(RS6000_BTC_64BIT): Likewise.
	(RS6000_BTC_CR): New macro.
	* doc/extend.texi: Update documentation for htm builtins.

2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* simplify-rtx.c (simplify_gen_binary): Use std::swap instead
	of manually swapping.
	(simplify_associative_operation): Likewise.
	(simplify_binary_operation): Likewise.
	(simplify_plus_minus): Likewise.
	(simplify_relational_operation): Likewise.
	(simplify_ternary_operation): Likewise.

2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/stormy16/predicates.md (xs_hi_general_operand): Delete.
	(xs_hi_nonmemory_operand): Remove error.
	* config/stormy16/stormy16.md (movhi, movhi_internal): Use
	general_operand rather than xs_hi_general_operand.

2015-04-27  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
	(record_equivalences_from_stmt): Valueize rhs.
	(record_equality): Canonicalize x and y order via
	tree_swap_operands_p.  Do not swap operands for same loop depth.

2015-04-27  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	PR target/65895
	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
	Add hint how to use own spec file.

2015-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65875
	* tree-vrp.c (update_value_range): If in is_new case setting
	old_vr to VR_VARYING, also set new_vr to it.  Remove
	old_vr->type == VR_VARYING test.
	(vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
	SSA_PROP_INTERESTING if update_value_range returned true,
	but new range is VR_VARYING.

2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* combine.c (sign_extend_short_imm): New.
	(set_nonzero_bits_and_sign_copies): Use above new function for sign
	extension of src short immediate.
	(reg_nonzero_bits_for_combine): Likewise for tem.

2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (self_referential_component_ref_p): New predicate.
	(copy_self_referential_tree_r): Use it.
	(self_referential_size): Punt for simple operations directly involving
	self-referential component references.
	* tree-cfg.c (dump_function_to_file): Add missing final curly bracket.

2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-icf.c (icf_handled_component_p): Remove redundant tests.

2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>

	* vec.h (vec): Make splice arguments const.  Update definitions
	accordingly.

2015-04-27  Yvan Roux  <yvan.roux@linaro.org>

	* config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
	alternatives.

2015-04-26  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65826
	* internal-fn.def: Mark VA_ARG with ECF_LEAF.

2015-04-24  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
	(*madd3<mode>): Ditto.
	(*msub4<mode>): Ditto.
	(*msub3<mode>): Ditto.
	(*nmadd4<mode>): Ditto.
	(*nmadd3<mode>): Ditto.
	(*nmadd4<mode>_fastmath): Ditto.
	(*nmadd3<mode>_fastmath): Ditto.
	(*nmsub4<mode>): Ditto.
	(*nmsub3<mode>): Ditto.
	(*nmsub4<mode>_fastmath): Ditto.
	(*nmsub3<mode>_fastmath): Ditto.

2015-04-24  Jason Merrill  <jason@redhat.com>

	PR c++/50800
	* tree.c (build_reference_type_for_mode): Don't pass can_alias_all
	down when building TYPE_CANONICAL.
	(build_pointer_type_for_mode): Likewise.

2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>

	* genrecog.c (validate_pattern): Check matching constraint refers
	to a lower numbered operand.

2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65849
	* config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
	save to independent variables use the Save attribute.  This will
	allow these options to be modified with the #pragma/attribute
	target support.
	(-mallow-movmisalign): Likewise.
	(-mallow-df-permute): Likewise.
	(-msched-groups): Likewise.
	(-malways-hint): Likewise.
	(-malign-branch-targets): Likewise.
	(-mvectorize-builtins): Likewise.
	(-msave-toc-indirect): Likewise.

	* config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
	can be set via the #pragma/attribute target support.
	(rs6000_opt_vars): Likewise.
	(rs6000_inner_target_options): If VSX was set, also set
	-mno-avoid-indexed-addresses.

2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/iterators.md (shiftable_ops): Rename to...
	(SHIFTABLE_OPS): ... This.  Update use in comments.
	(ior_xor): Rename to...
	(IOR_XOR): ... This.
	(vqh_ops): Rename to...
	(VQH_OPS): ... This.
	(vqhs_ops): Rename to...
	(VQHS_OPS): ... This.
	(rshifts): Rename to...
	(RSHIFTS): ... This.
	(returns): Rename to...
	(RETURNS): ... This.
	* config/arm/arm.md: Update uses of the above.
	* config/arm/neon.md: Likewise.

2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config.host (case ${host}): Add aarch64*-*-linux case.
	* config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
	fields to all the cores.
	* config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
	Add MCPU_MTUNE_NATIVE_SPECS.
	* config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
	field to all extensions.
	* config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
	* config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
	Adjust definition of AARCH64_OPT_EXTENSION.
	* config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
	(MCPU_MTUNE_NATIVE_SPECS): Define.
	* config/aarch64/driver-aarch64.c: New file.
	* config/aarch64/x-arch64: New file.
	* doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
	-mtune and -march.

2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
	    Wei Mi  <wmi@google.com>

	* config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
	* config/i386/i386.c (extract_base_offset_in_addr): New function.
	(ix86_operands_ok_for_move_multiple): Ditto.
	* config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
	(movlpd/movhpd to movupd peephole2): Ditto.

2015-04-24  Marek Polacek  <polacek@redhat.com>

	PR c/61534
	* input.h (from_macro_expansion_at): Define.

	PR c/63357
	* doc/invoke.texi: Update description of -Wlogical-op.

2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
	ternary operator in fprintf and harmonize spacing.

2015-04-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
	Mark operand1 commutative.

2015-04-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
	input operands in memory.
	(*vec_concatv2si_sse4_1): Ditto.
	(*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
	(vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
	register_operand.
	(vec_extract_hi_v32hi): Ditto.
	(vec_extract_hi_v64hi): Ditto.
	(<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.

2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
	    Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/34503
	* cprop.c (cprop_reg_p): New.
	(hash_scan_set): Use above function to check if register can be
	propagated.
	(find_avail_set): Return up to two sets, one whose source is a
	register and one whose source is a constant.  Sets are returned in an
	array passed as parameter rather than as a return value.
	(cprop_insn): Use a do while loop rather than a goto.  Try each of the
	sets returned by find_avail_set, starting with the one whose source is
	a constant. Use cprop_reg_p to check if register can be propagated.
	(do_local_cprop): Use cprop_reg_p to check if register can be
	propagated.
	(implicit_set_cond_p): Likewise.

2015-04-23  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
	(sem_function::equals): IGNORED_NODES parameter is now unused;
	update call of equals_private.
	(sem_function::equals_private): Do not call equals_wpa; skip
	gimple body matching if there is no body.
	(sem_function::init): Add logic to hash tthunk info.
	(sem_function::parse): Also parse thunks.
	* ipa-icf.h (equals_private): Update declaration.

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
	asterisk from name so this can be generated directly.
	(*altivec_stvx_<mode>_internal): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
	that this is never called during or after reload/lra.
	(rs6000_frame_related): Remove split_reg
	argument and logic that references it.
	(emit_frame_save): Remove last parameter from call to
	rs6000_frame_related.
	(rs6000_emit_prologue): Remove last parameter from eight calls to
	rs6000_frame_related.  Force generation of stvx instruction for
	Altivec register saves.  Remove split_reg handling, which is no
	longer needed.
	(rs6000_emit_epilogue):  Force generation of lvx instruction for
	Altivec register restores.

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (mcrypto): Change option description to
	match category changes in ISA 2.07B.

2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
	iterators.
	(cmp_op, cmp_type): New code attributes.
	(NEON_VCMP, NEON_VACMP): New int iterators.
	(cmp_op_unsp): New int attribute.
	* config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
	(neon_vceq<mode>): Delete.
	(neon_vc<cmp_op><mode>_insn): New pattern.
	(neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
	(neon_vcgeu<mode>): Delete.
	(neon_vcle<mode>): Likewise.
	(neon_vclt<mode>: Likewise.
	(neon_vcage<mode>): Likewise.
	(neon_vcagt<mode>): Likewise.
	(neon_vca<cmp_op><mode>): New define_expand.
	(neon_vca<cmp_op><mode>_insn): New pattern.
	(neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.

2015-04-23  Jan Hubicka  <hubicka@ucw.cz>

	* tree.h (attribute_value_equal): Declare.
	* tree.c (attribute_value_equal): Export.

2015-04-23  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_item::compare_attributes): New function.
	(sem_item::compare_referenced_symbol_properties): Compare variable
	attributes.
	(sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
	(sem_function::param_used_p): New function.
	(sem_function::equals_wpa): Fix attribute comparsion; match
	parameter type codes; do not compare paremter flags when
	they are not used; compare edge flags; compare indirect calls.
	(sem_item::update_hash_by_addr_refs): Hash reference type.
	(sem_function::equals_private): Do not match DECL_ATTRIBUTES.
	(sem_variable::equals_wpa): Do not match DECL_ALIGN; match
	reference use type.
	(sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
	* ipa-icf.h (compare_attributes, param_used_p): Declare.

2015-04-23  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
	cleanup.
	(sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
	DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
	(sem_item::compare_referenced_symbol_properties): New.
	(sem_item::hash_referenced_symbol_properties): New.
	(sem_item::compare_cgraph_references): Rename to ...
	(sem_item::compare_symbol_references): ... this one; use
	compare_referenced_symbol_properties.
	(sem_function::equals_wpa): Do not compare
	DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
	DECL_IS_OPERATOR_NEW; compare pointer sizes.
	(sem_item::update_hash_by_addr_refs): Call
	hash_referenced_symbol_properties.
	(sem_item::update_hash_by_local_refs): Cleanup.
	(sem_function::merge): Do not mix up symbol properties.
	(sem_variable::equals_wpa): Use compare_symbol_references.
	* ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
	(sem_item::hash_referenced_symbol_properties): New.
	(sem_item::compare_symbol_references): New.
	(sem_item::compare_cgraph_references): Remove.

2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>

	PR target/26702
	* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
	Emit size of local.

2015-04-23  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_preferred_reload_class): Add
	ATTRIBUTE_UNUSED to x parameter.
	* config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
	TARGET_CRYPTO to TARGET_P8_VECTOR>
	(crypto_vpermxor_<mode>): Likewise.
	* config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
	(BU_CRYPTO_3A): Likewise.
	(BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
	(BU_CRYPTO_OVERLOAD_3A): New #define.
	(VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPMSUMD): Likewise.
	(VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
	(VPERMXOR_V4SI): Likewise.
	(VPERMXOR_V8HI): Likewise.
	(VPERMXOR_V16QI): Likewise.
	(VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
	BU_CRYPTO_OVERLOAD_2A.
	(VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
	BU_CRYPTO_OVERLOAD_3A.
	* config/rs6000/rs6000.opt (mcrypto): Change description of
	option.

2015-04-23  Richard Biener  <rguenther@suse.de>

	* passes.def: Remove copy propagation passes run directly after CCP.
	* tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
	SSA names.
	(ccp_visit_phi_node): Rework to handle first executable edge
	specially.

2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
	(ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
	(THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
	* config/arm/arm.c (arm_legimitimize_reload_address): Remove.
	(thumb_legimitimize_reload_address): Remove.
	* config/arm/arm-protos.h (arm_legimitimize_reload_address):
	Remove.
	(thumb_legimitimize_reload_address): Remove.

2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.

2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (load_multiple): Reject operand 2 greater than
	MAX_LDM_STM_OPS.
	(store_multiple): Likewise.

2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
	* config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
	arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
	arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
	arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
	arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
	arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
	Specify issue_rate value.
	(arm_issue_rate): Look up issue rate from tuning structs. Remove
	large switch statement.
	(arm_marvell_pj4_tune): New struct.
	* config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
	struct.

2015-04-23  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
	(vect_find_last_store_in_slp_instance): Rename to ...
	(vect_find_last_scalar_stmt_in_slp): ... this and generalize.
	(vect_analyze_slp_cost_1): Use vector_load for constant defs
	and vec_construct for external defs when estimating prologue cost.
	(vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
	Compute costs here only when vectorizing loops.
	(vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
	have been determined.
	(vect_schedule_slp_instance): Simplify vectorized code placement
	and prepare for in-BB external defs.
	* tree-vectorizer.h (struct _slp_instance): Remove first_load member.
	(SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
	* tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
	guard.
	(vect_model_load_cost): Likewise.
	(vectorizable_store): Instead add it here.
	(vectorizable_load): Likewise.
	(vect_is_simple_use): Dump def type textually.

2015-04-23  Richard Biener  <rguenther@suse.de>

	* cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
	* cfgloop.c (verify_loop_structure): Verify the root loop node.
	* except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
	instead of get_eh_region_from_lp_number.
	* loop-init.c (fix_loop_structure): If we removed a loop, reset
	the SCEV cache.

2015-04-23  Anton Blanchard  <anton@samba.org>

	* config/rs6000/rs6000.c (rs6000_output_function_prologue): No
	need for -mprofile-kernel to save LR to stack.

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
	adjustments.
	(insn_is_swappable_p): Return 1 for a convert from double to
	single precision when all of its uses are splats of BE element
	zero.

2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* ira-costs.c (record_operand_costs): Fix typo (remove redundant code).

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65456
	* config/rs6000/rs6000.c (rs6000_option_override_internal):  For
	VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
	TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
	option.
	(rs6000_builtin_mask_for_load): Return 0 for targets with
	efficient unaligned VSX accesses so that the vectorizer will use
	direct unaligned loads.
	(rs6000_builtin_support_vector_misalignment): Always return true
	for targets with efficient unaligned VSX accesses.
	(rs6000_builtin_vectorization_cost): Cost of unaligned loads and
	stores on targets with efficient unaligned VSX accesses is almost
	always the same as the cost of an aligned load or store, so model
	it that way.
	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
	unaligned vectors if we have efficient unaligned VSX accesses.
	* config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
	undocumented option.

2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Revert:
	2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>

	* config.gcc (LIBC_MUSL): New tm_defines macro.
	* config/linux.h (OPTION_MUSL): Define.
	(INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
	(INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
	(INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.

	* config/linux.opt (mmusl): New option.
	* configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
	(gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.

	* configure: Regenerate.

2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>

	* config.gcc (LIBC_MUSL): New tm_defines macro.
	* config/linux.h (OPTION_MUSL): Define.
	(INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
	(INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
	(INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.

	* config/linux.opt (mmusl): New option.
	* configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
	(gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.

	* configure: Regenerate.

2015-04-22  Yury Gribov  <y.gribov@samsung.com>

	* doc/invoke.texi (-fsanitize-sections): Update description.
	* asan.c (set_sanitized_sections): Parse incoming arg.
	(section_sanitized_p): Support wildcards.

2015-04-22  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65823
	* gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
	equality between ap_copy and ap.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR target/47098
	* config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR target/47122
	* config.gcc (vax-*-openbsd*): Fix name of pthread spec header.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR target/55144
	* config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
	remove already contained t-files.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
	Remove unneeded forward declarations.
	(suitable_for_tail_call_opt_p): Commentary typo fix.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* varasm.c (emit_bss): Remove redundant guard.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.

2015-04-22  Hale Wang  <hale.wang@arm.com>
	    Terry Guo  <terry.guo@arm.com>

	PR rtl-optimization/64818
	* combine.c (can_combine_p): Don't combine user-specified
	register if it is in an asm input.

2015-04-21  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* passes.def (early_optimizations): Add pass_dse.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
	* reorg.c (redundant_insn): Remove ifdef
	INSN_REFERENCES_ARE_DELAYED.
	* resource.c (mark_referenced_resources): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (INSN_SETS_ARE_DELAYED): New definition.
	* reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
	* resource.c (mark_set_resources): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
	* cfgcleanup.c (flow_find_cross_jump): Likewise.
	(flow_find_head_matching_sequence): Likewise.
	(try_head_merge_bb): Likewise.
	* combine.c (can_combine_p): Likewise.
	(try_combine): Likewise.
	(distribute_notes): Likewise.
	* df-problems.c (can_move_insns_across): Likewise.
	* final.c (final): Likewise.
	* gcse.c (insert_insn_end_basic_block): Likewise.
	* ira.c (find_moveable_pseudos): Likewise.
	* reorg.c (try_merge_delay_insns): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	* sched-deps.c (sched_analyze_2): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* df-scan.c (df_get_entry_block_def_set): Remove #ifdef
	PIC_OFFSET_TABLE_REGNUM.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* alias.c (init_alias_target): Remove ifdef
	* HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* df-scan.c (df_insn_refs_collect): Likewise.
	(df_get_regular_block_artificial_uses): Likewise.
	(df_get_eh_block_artificial_uses): Likewise.
	(df_get_entry_block_def_set): Likewise.
	(df_get_exit_block_use_set): Likewise.
	* emit-rtl.c (gen_rtx_REG): Likewise.
	* ira.c (ira_setup_eliminable_regset): Likewise.
	* reginfo.c (init_reg_sets_1): Likewise.
	* regrename.c (rename_chains): Likewise.
	* reload1.c (reload): Likewise.
	(eliminate_regs_in_insn): Likewise.
	* resource.c (mark_referenced_resources): Likewise.
	(init_resource_info): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (MASK_RETURN_ADDR): New definition.
	* except.c (expand_builtin_extract_return_addr): Remove ifdef
	MASK_RETURN_ADDR.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (RETURN_ADDR_OFFSET): New definition.
	* except.c (expand_builtin_extract_return_addr): Remove ifdef
	RETURN_ADDR_OFFSET.
	(expand_builtin_frob_return_addr): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
	(try_redirect_by_replacing_jump): Likewise.
	(rtl_tidy_fallthru_edge): Likewise.
	* combine.c (insn_a_feeds_b): Likewise.
	(find_split_point): Likewise.
	(simplify_set): Likewise.
	* cprop.c (cprop_jump): Likewise.
	* cse.c (cse_extended_basic_block): Likewise.
	* df-problems.c (can_move_insns_across): Likewise.
	* function.c (emit_use_return_register_into_block): Likewise.
	* haifa-sched.c (sched_init): Likewise.
	* ira.c (find_moveable_pseudos): Likewise.
	* loop-invariant.c (find_invariant_insn): Likewise.
	* lra-constraints.c (curr_insn_transform): Likewise.
	* postreload.c (reload_combine_recognize_const_pattern):
	* Likewise.
	* reload.c (find_reloads): Likewise.
	* reorg.c (delete_scheduled_jump): Likewise.
	(steal_delay_list_from_target): Likewise.
	(steal_delay_list_from_fallthrough): Likewise.
	(redundant_insn): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(delete_computation): Likewise.
	* sched-rgn.c (add_branch_dependences): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_cc0.
	* caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
	HAVE_cc0.
	* cfgcleanup.c (flow_find_cross_jump): Likewise.
	(flow_find_head_matching_sequence): Likewise.
	(try_head_merge_bb): Likewise.
	* cfgrtl.c (rtl_merge_blocks): Likewise.
	(try_redirect_by_replacing_jump): Likewise.
	(rtl_tidy_fallthru_edge): Likewise.
	* combine.c (do_SUBST_MODE): Likewise.
	(insn_a_feeds_b): Likewise.
	(combine_instructions): Likewise.
	(can_combine_p): Likewise.
	(try_combine): Likewise.
	(find_split_point): Likewise.
	(subst): Likewise.
	(simplify_set): Likewise.
	(distribute_notes): Likewise.
	* cprop.c (cprop_jump): Likewise.
	* cse.c (cse_extended_basic_block): Likewise.
	* df-problems.c (can_move_insns_across): Likewise.
	* final.c (final): Likewise.
	(final_scan_insn): Likewise.
	* function.c (emit_use_return_register_into_block): Likewise.
	* gcse.c (insert_insn_end_basic_block): Likewise.
	* haifa-sched.c (sched_init): Likewise.
	* ira.c (find_moveable_pseudos): Likewise.
	* loop-invariant.c (find_invariant_insn): Likewise.
	* lra-constraints.c (curr_insn_transform): Likewise.
	* optabs.c (prepare_cmp_insn): Likewise.
	* postreload.c (reload_combine_recognize_const_pattern):
	* Likewise.
	* reload.c (find_reloads): Likewise.
	(find_reloads_address_1): Likewise.
	* reorg.c (delete_scheduled_jump): Likewise.
	(steal_delay_list_from_target): Likewise.
	(steal_delay_list_from_fallthrough): Likewise.
	(try_merge_delay_insns): Likewise.
	(redundant_insn): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(delete_computation): Likewise.
	(relax_delay_slots): Likewise.
	* sched-deps.c (sched_analyze_2): Likewise.
	* sched-rgn.c (add_branch_dependences): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
	that is trivially ded on non cc0 targets.
	(simplify_set): Likewise.
	(mark_used_regs_combine): Likewise.
	* cse.c (new_basic_block): Likewise.
	(fold_rtx): Likewise.
	(cse_insn): Likewise.
	(cse_extended_basic_block): Likewise.
	(set_live_p): Likewise.
	* rtlanal.c (canonicalize_condition): Likewise.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* conditions.h: Define macros even if HAVE_cc0 is undefined.
	* emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
	* final.c: Likewise.
	* jump.c: Likewise.
	* recog.c: Likewise.
	* recog.h: Declare functions even when HAVE_cc0 is undefined.
	* sched-deps.c (sched_analyze_2): Always compile case for cc0.

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h: New definition of EH_RETURN_DATA_REGNO.
	* except.c: Remove definition of EH_RETURN_DATA_REGNO.
	* builtins.c (expand_builtin): Remove check if
	EH_RETURN_DATA_REGNO is defined.
	* df-scan.c (df_bb_refs_collect): Likewise.
	(df_get_exit_block_use_set): Likewise.
	* haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
	* ira-lives.c (process_bb_node_lives): Likewise.
	* lra-lives.c (process_bb_lives): Likewise.

2015-04-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
	FIRST_PSEUDO_REG): New.
	* config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
	(ARG_POINTER_REGNUM): Define to ARGP_REG.
	(FRAME_POINTER_REGNUM): Define to FRAME_REG.
	(HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
	(FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
	(FIRST_INT_REG): New.
	(LAST_INT_REG): New.
	(FIRST_*_REG): Define using *_REG.
	(LAST_*_REG): Ditto.
	(QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
	(LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
	(FIRST_FLOAT_REG): Define to FIRST_STACK_REG.

2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* expmed.c: (synth_mult): Only assume overlapping
	shift with previous steps in alg_sub_t_m2 case.

2015-04-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65650
	* tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
	transitions involving copies.
	(set_lattice_value): Adjust for copy lattice state.
	(ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
	if that doesn't dominate the merge point.
	(bit_value_unop): Adjust what we treat as varying mask.
	(bit_value_binop): Likewise.
	(bit_value_assume_aligned): Likewise.
	(evaluate_stmt): When we simplified to a SSA name record a copy
	instead of dropping to varying.
	(visit_assignment): Simplify.

	* gimple-match.h (gimple_simplify): Add another callback.
	* gimple-fold.c (fold_stmt_1): Adjust caller.
	(gimple_fold_stmt_to_constant_1): Likewise - pass valueize
	for the 2nd callback.
	* gimple-match-head.c (gimple_simplify): Add a callback that is
	used to valueize the stmt operands and use it that way.

2015-04-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65788
	* tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.

2015-04-21  Richard Biener  <rguenther@suse.de>

	* config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
	vec_construct cost by vec_stmt_cost.

2015-04-21  Richard Biener  <rguenther@suse.de>

	* cfghooks.h (create_basic_block): Replace with two overloads
	for RTL and GIMPLE.
	(split_block): Likewise.
	* cfghooks.c (split_block): Rename to ...
	(split_block_1): ... this.
	(split_block): Add two type-safe overloads for RTL and GIMPLE.
	(split_block_after_labels): Call split_block_1.
	(create_basic_block): Rename to ...
	(create_basic_block_1): ... this.
	(create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
	(create_empty_bb): Call create_basic_block_1.
	* cfgrtl.c (fixup_fallthru_exit_predecessor): Use
	split_block_after_labels.
	* omp-low.c (expand_parallel_call): Likewise.
	(expand_omp_target): Likewise.
	(simd_clone_adjust): Likewise.
	* tree-chkp.c (chkp_get_entry_block): Likewise.
	* cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
	create_basic_block overload.
	(cgraph_node::expand_thunk): Likewise.
	* tree-cfg.c (make_blocks): Likewise.
	(handle_abnormal_edges): Likewise.
	* tree-inline.c (copy_bb): Likewise.

2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
	New pattern.
	(*xor_one_cmplsidi3_ze): Likewise.

2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
	use df_remove_problem rather than manually removing problems, leaving
	holes in df->problems_in_order[].

2015-04-21  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65802
	* internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.

2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
	Increase to 128.
	(aarch64_rewrite_selected_cpu): Do not chop off extensions starting
	at '.'.  Assert that there's enough space for everything.

2015-04-21  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/64950
	Revert:
	2010-08-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41089
	* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
	as volatile.

2015-04-20  Shiva Chen  <shiva0217@gmail.com>

	PR rtl-optimization/64916
	* cfgcleanup.c (values_equal_p): New function.
	(can_replace_by): Use it.

2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65801
	* doc/invoke.texi ([-Wnarrowing]): Update.

2015-04-20  Jeff Law  <law@redhat.com>

	PR tree-optimization/65658
	* tree-ssa-threadupdate.c (redirection_block_p): Remove
	redundant test for GIMPLE_ASSIGN in last change.

2015-04-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (set_pic_reg_ever_live): Remove.
	(legitimize_pic_address): Do not call set_pic_reg_ever_live.
	(legitimize_tls_address): Ditto.
	(ix86_expand_move): Ditto.
	(ix86_expand_binary_operator): Remove reload_in_progress checks.
	(ix86_expand_unary_operator): Ditto.
	* config/i386/predicates.md (index_register_operand): Ditto.

2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>

	* reorg.c (try_merge_delay_insns): Improve correctness checking
	for targets with multiple delay slots.

2015-04-20  Jeff Law  <law@redhat.com>

	PR tree-optimization/65658
	* tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
	statements too.

2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
	* config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
	Delete.

2015-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65807
	* dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.

2015-04-20  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (gimple_build): Remove optional valueize arguments.
	* gimple-fold.c (gimple_build_valueize): New function.
	(gimple_build): Always use gimple_build_valueize as valueize hook.

2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/64134
	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
	and overwrite variable parts if <= 1/2 the elements are variable.

2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65805
	* lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
	Don't use difference of offset and previous offset if
	update_sp_offset is non-zero.
	(eliminate_regs_in_insn): Ditto.
	* lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
	lra_eliminate_regs_1 call.
	* lra-constraints.c (get_equiv_with_elimination): Ditto.

2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-table.h: Remove version of hash_table that stored value_type *.
	* asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
	config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
	config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
	dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
	gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
	hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
	ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
	loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
	reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
	tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
	tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
	tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
	tree-ssa-structalias.c, tree-ssa-tail-merge.c,
	tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
	valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.

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

	PR target/65787
	* config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
	subsequent SH_NONE operand does not overwrite an existing *special
	value.
	(adjust_extract): Handle case where a vec_extract operation is
	wrapped in a PARALLEL.

2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65780
	* config/i386/i386.c (ix86_binds_local_p): Define only if
	TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.

2015-04-17  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
	* tree-ssa-scopedtables.c: New file.
	* tree-ssa-scopedtables.h: New file.
	* tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
	(const_and_copies): Change name/type.
	(record_const_or_copy): Move into tree-ssa-scopedtables.c
	(record_const_or_copy_1): Similarly.
	(restore_vars_to_original_value): Similarly.
	(pass_dominator::execute): Create and destroy const_and_copies table.
	(thread_across_edge): Update passing of const_and_copies.
	(record_temporary_equivalence): Use method calls rather than
	manipulating const_and_copies directly.
	(record_equality, cprop_into_successor_phis): Similarly.
	(dom_opt_dom_walker::before_dom_children): Similarly.
	(dom_opt_dom_walker::after_dom_children): Similarly.
	(eliminate_redundant_computations): Similarly.
	* tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
	(record_temporary_equivalence): Likewise.
	(invalidate_equivalences): Likewise.
	(record_temporary_equivalences_from_phis): Update due to type
	change of const_and_copies.  Use method calls rather than
	manipulating the stack directly.
	(record_temporary_equivalences_from_stmts_at_dest): Likewise.
	(thread_through_normal_block, thread_across_edge): Likewise.
	(thread_across_edge): Likewise.
	* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
	* tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
	of equiv_stack.
	(identify_jump_threads): Update due to type change of equiv_stack.
	(finalize_jump_threads): Delete the equiv_stack when complete.

2015-04-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
	* config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
	* config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.

2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>

	PR target/65535
	* config.gcc: Exit with a comment when we do not have a major version
	number for the FreeBSD target.

2015-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/65689
	* genpreds.c (struct constraint_data): Add maybe_allows_reg and
	maybe_allows_mem bitfields.
	(maybe_allows_none_start, maybe_allows_none_end,
	maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
	maybe_allows_mem_end): New variables.
	(compute_maybe_allows): New function.
	(add_constraint): Use it to initialize maybe_allows_reg and
	maybe_allows_mem fields.
	(choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
	is_address constraints such that those that allow neither mem nor
	reg come first, then those that only allow reg but not mem, then
	those that only allow mem but not reg, then the rest.
	(write_allows_reg_mem_function): New function.
	(write_tm_preds_h): Call it.
	* stmt.c (parse_output_constraint, parse_input_constraint): Use
	the generated insn_extra_constraint_allows_reg_mem function
	instead of always setting *allows_reg = true; *allows_mem = true;
	for unknown extra constraints.

2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65780
	* output.h (default_binds_local_p_3): New.
	* varasm.c (default_binds_local_p_3): Make it public.  Take an
	argument to indicate if common symbol may be local.  If common
	symbol may be local, treat non-external variable as defined
	locally.
	(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
	(default_binds_local_p_1): Pass false to default_binds_local_p_3.
	* config/i386/i386.c (ix86_binds_local_p): New.
	(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
	ix86_binds_local_p.

2015-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65771
	* dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
	trying mem_loc_descriptor on XEXP (rtl, 0).

2015-04-17  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
	Release symbol_compare_collection.
	* ipa-reference.c: Add TODO that a vector should be released.

2015-04-17  Sivanupandi Pitchumani  <Pitchumani.Sivanupandi@atmel.com>

	PR target/65296
	* config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
	to new AVR-LibC file layout (bug #44574).
	(*avrlibc_devicelib): Same.
	* config/avr/avr-mcus.def: Adjust comments.
	* config/avr/avr.opt (nodevicelib): Adjust help.

2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.

2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c++/64527
	* gimplify.c (gimplify_init_constructor): Always emit a
	side-effecting constructor.

2015-04-17  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/64950
	* gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
	in cfun->curr_properties.
	(gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
	if we generate an IFN_VA_ARG.
	* tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
	function if PROP_gimple_lva is not set in src function.

2015-04-17  Tom de Vries  <tom@codesourcery.com>
	    Michael Matz  <matz@suse.de>

	PR tree-optimization/64950
	* gimple-iterator.c (update_modified_stmts): Remove static.
	* gimple-iterator.h (update_modified_stmts): Declare.
	* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
	(gimplify_va_arg_internal): New function.
	(gimplify_va_arg_expr): Use IFN_VA_ARG.
	* gimplify.h (gimplify_va_arg_internal): Declare.
	* internal-fn.c (expand_VA_ARG): New unreachable function.
	* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
	* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
	(expand_ifn_va_arg): New function.
	(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
	(pass_stdarg::execute): Call expand_ifn_va_arg.
	(pass_data_lower_vaarg): New pass_data.
	(pass_lower_vaarg): New gimple_opt_pass.
	(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
	(make_pass_lower_vaarg): New function.
	* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
	properties_required field.
	* passes.def (all_passes): Add pass_lower_vaarg.
	* tree-pass.h (PROP_gimple_lva): Add define.
	(make_pass_lower_vaarg): Declare.

2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
	* calls.c (call_expr_flags): Same.

2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
	(pass_stdarg::execute): ... here.

2015-04-17  Tom de Vries  <tom@codesourcery.com>
	    Michael Matz  <matz@suse.de>

	* tree-cfg.c (make_blocks_1): Factor out of ...
	(make_blocks): ... here.
	(make_edges_bb): Factor out of ...
	(make_edges): ... here.
	(gimple_find_sub_bbs): New function.
	* tree-cfg.h (gimple_find_sub_bbs): Declare.

2015-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.

2015-04-17  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (set_sanitized_sections): New function.
	(section_sanitized_p): Ditto.
	(asan_protect_global): Optionally sanitize user-defined
	sections.
	* asan.h (set_sanitized_sections): Declare new function.
	* common.opt (fsanitize-sections): New option.
	* doc/invoke.texi (-fsanitize-sections): Document new option.
	* opts-global.c (handle_common_deferred_options): Handle new
	option.

2015-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65771
	* dwarf2out.c (loc_list_from_tree): Return NULL
	for DEBUG_EXPR_DECL.

2015-04-17  Christian Bruel  <christian.bruel@st.com>

	* ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
	same attributes.

2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>

	* ira-color.c (setup_left_conflict_sizes_p): Do not process
	node itself when computing left conflict subnode size.

2015-04-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (register_mixssei387nonimm_operand): New.
	* config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
	*fop_<mode>_1_sse using enabled attribute.  Use
	register_mixssei387nonimm_operand operand 1 predicate. Change
	alternative 3 constraints from "x" to "v".

2015-04-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65774
	* tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
	bit-value tracking on.

2015-04-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64277
	* tree-vrp.c (check_array_ref): Fix anti-range handling,
	simplify upper bound handling.
	(search_for_addr_array): Simplify.
	(check_array_bounds): Handle ADDR_EXPRs here.
	(check_all_array_refs): Simplify.

2015-04-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (print_reg): Rewrite function.

2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
	Invert the condition.

2015-04-16  Renlin Li  <renlin.li@arm.com>

	* simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
	simplifications for UNSIGNED_FLOAT.

2015-04-16  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
	MUL_UNINIT.
	(enum rl78_cpu_type): New.
	* config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
	(umulhi3_shift_virt): Remove m constraint from operand 1.
	(umulqihi3_virt): Likewise.
	* config/rl78/rl78.c (rl78_option_override): Add code to process
	-mcpu and -mmul options.
	(rl78_alloc_physical_registers): Add code to handle divhi and
	divsi valloc attributes.
	(set_origin): Likewise.
	* config/rl78/rl78.h (RL78_MUL_G14): Define.
	(TARGET_G10, TARGET_G13, TARGET_G14): Define.
	(TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
	__RL78_Gxx__.
	(ASM_SPEC): Pass -mcpu on to assembler.
	* config/rl78/rl78.md (mulqi3): Add a clobber of AX.
	(mulqi3_rl78): Likewise.
	(mulhi3_g13): Likewise.
	(mulhi3): Generate the G13 or G14 versions of the insn directly.
	(mulsi3): Likewise.
	(mulhi3_g14): Add clobbers of AX and BC.
	(mulsi3_g14): Likewise.
	(mulsi3_g13): Likewise.
	(udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
	(udivmodsi4_g14, udivmodsi4_g13): New patterns.
	* config/rl78/rl78.opt (mmul): Initialise value to
	RL78_MUL_UNINIT.
	(mcpu): New option.
	(m13, m14, mrl78): New option aliases.
	* config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
	(MULTILIB_DIRNAMES): Add g13 and g14.
	* doc/invoke.texi: Document -mcpu and -mmul options.

2015-04-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-ccp.c (likely_value): See if we have operands that
	are marked as never simulate again and return CONSTANT in this
	case.
	* tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
	not have any operands that will be simulated again as
	not being simulated again.

2015-04-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
	Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
	(*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
	attribute.
	(*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
	enabled attribute.
	(*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
	*float<SWI48:mode><MODEF:mode>2_sse.
	(*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
	enabled attribute.
	(*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
	enabled attribute.

2015-04-15  Tom de Vries  <tom@codesourcery.com>

	PR other/65487
	* function.c (push_dummy_function): New function.
	(init_dummy_function_start): Use push_dummy_function.
	(pop_dummy_function): New function.  Factored out of ...
	(expand_dummy_function_end): ... here.
	* function.h (push_dummy_function, pop_dummy_function): Declare.
	* passes.c (pass_manager::dump_passes): Use push_dummy_function and
	pop_dummy_function.
	* tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.

2015-04-15  Jeff Law  <law@redhat.com>

	PR tree-optimization/47679
	* tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
	need for forward declaration in upcoming changes.
	(record_conditions, record_edge_info): Likewise.

	PR rtl-optimization/42522
	* cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
	SIGN_EXTRACT as a whole object rather than simplifying
	its operand.

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

	PR ipa/65765
	* ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
	and GIMPLE_PREDICT use break instead of return true. For
	GIMPLE_EH_DISPATCH, compare dispatch region.

2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/extend.texi (__sync Builtins): Simplify some text.  Update
	details about the implementation.  Make clear preference for
	__atomic builtins.  Reduce possibility of future change.

2015-04-15  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.opt (mallow-string-insns): New option.
	* config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
	builtin if string instructions are denied.
	* config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
	__RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
	appropriate.
	(ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
	* config/rx/rx.md (movstr): Enable pattern only if string
	instructions are allowed.
	(rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
	(cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
	* config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
	(MULTILIB_DIRNAMES): Add no-strings.
	* doc/invoke.texi: Document -mno-allow-string-insns.

2015-04-15  Alan Modra  <amodra@gmail.com>

	PR target/65408
	PR target/58744
	PR middle-end/36043
	* calls.c (load_register_parameters): Don't load past end of
	mem unless suitably aligned.

2015-04-15  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
	decrement instruction as being frame related.
	(rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
	based addresses.
	If zero extending a function address enclose the operation in
	%code(...).
	(rl78_preferred_reload_class): New function.
	(TARGET_PREFERRED_RELOAD_CLASS): Define.
	* config/rl78/rl78.md: Remove useless constraints in expanders.
	(mulqi3_rl78): Remove + qualifier on input-only operand 1.
	(mulhi3_rl78): Likewise.
	(mulhi3_g13): Likewise.
	(mulsi3_rl78): Likewise.
	(es_addr): Move to before the multiply patterns.

2015-04-15  Alan Modra  <amodra@gmail.com>

	* function.h (struct emit_status): Delete x_first_insn, x_last_insn
	and sequence_stack.  Add seq.
	(seq_stack): Delete.
	* function.c (prepare_function_start): Don't access x_last_insn.
	* emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
	(get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
	* emit_rtl.c (start_sequence, push_topmost_sequence,
	pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
	sequence accessors.
	(get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
	remove_insn): Likewise.  Simplify.
	* config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
	and pop_topmost_sequence.
	(m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
	debug insns.
	* config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.

2015-04-14  Yvan Roux  <yvan.roux@linaro.org>

	PR target/65729
	* lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
	the assertiion.

2015-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (LEGACY_INT_REG_P): New define.
	(LEGACY_INT_REGNO_P): Ditto.
	(GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
	(ANY_MASK_REG_P): Remove.
	(BND_REG_P): Rename from ANY_BND_REG_P.
	* config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
	legacy integer registers.  Do not handle MMX_REG_P in a special way.
	Merge 64byte and 32byte SSE handling.

2015-04-14  Nick Clifton  <nickc@redhat.com>

	* expr.c (expand_assignment): Force an address offset computation
	into a register before changing its mode.
	(expand_expr_real_1): Likewise.

2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
	vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
	vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
	vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
	vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
	vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
	vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
	and __aarch64_vget_lane_any.

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

	PR rtl-optimization/65761
	* cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
	get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).

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

	* graphite-scop-detection.c: Do not include cp/cp-tree.h.
	(graphite_can_represent_scev): Use POINTER_TYPE_P.

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

	PR tree-optimization/65758
	* tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
	against -1.
	(ccp_lattice_meet): Likewise.
	(bit_value_unop): Likewise.
	(bit_value_binop): Likewise.
	(bit_value_assume_aligned): Likewise.

2015-04-14  Christian Bruel  <christian.bruel@st.com>

	* execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
	function.

2015-04-14  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/63387
	* match.pd ((x unord x) | (y unord y) -> (x unord y),
	(x unord x) | (x unord y) -> (x unord y)): New simplifications.

2015-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (any_QIreg_operand): Rename from
	q_regs_operand.  Do not process subregs.
	(QIreg_operand): Use QI_REGNO_P predicate.
	(ext_QIreg_operand): Ditto.
	(ext_register_operand): Ditto.
	* config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
	(AND splitters): Ditto.
	(AND with -65536 splitter): Add SWI48 mode for operand 0.
	(AND with -256 splitter): Use any_QIreg_operand predicate and
	SWI248 mode for operand 0.
	(AND with -65281 splitter): Use QIreg_operand predicate and SWI248
	mode for operand 0.
	(SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.

2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/plugins.texi: Rewrite first introductory paragraph.

2015-04-12  Jan Hubicka  <hubicka@ucw.cz>

	* tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
	(gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.

2015-04-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-profie.c (ipa_profile): Check number of parameters
	and possible polymorphic call targets before
	devirtualizing.

2015-04-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
	*bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.

2015-04-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65204
	* tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
	takens for bit-CCP.

2015-04-13  Richard Biener  <rguenther@suse.de>

	PR target/65660
	* config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
	and cond_not_taken_branch_cost to 4 and 2.
	(bdver2_cost): Likewise.
	(bdver3_cost): Likewise.
	(bdver4_cost): Likewise.

2015-04-12  Jan Hubicka  <hubicka@ucw.cz>

	* hash-table.h (hash_table constructor): Add mem stats.
	(alloc_entries): Likewise.

2015-04-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipcp_driver): Relase prev_edge.
	* passes.c (execute_one_pass): Only add transform if pass has one.

2015-04-12  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386.c (ix86_option_override_internal): Don't set
	-fprefetch-loop-arrays if optimizing for size.

2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Martin Jambor and
	Michael Matz.

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

	* BASE-VER: Set to 6.0.0.

	PR tree-optimization/65747
	* ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
	rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.

2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (-Wmemset-transposed-args): Break a long
	sentence.  Improve grammar.

2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.

2015-04-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65743
	* ipa-inline-transform.c (speculation_removed): Remove static var.
	(check_speculations): New function.
	(clone_inlined_nodes): Do not check spculations.
	(inline_call): Call check_speculations.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Do not
	consider non-invariants.

2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	PR ipa/65722
	* ipa-icf.c (sem_item::compare_cgraph_references): function and
	variable can not match.
	(sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
	(sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.

2015-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65735
	* tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
	Remove visited_phis argument, add visited_bbs, avoid recursing into the
	same bb rather than just into the same phi node.
	(thread_through_normal_block): Adjust caller.

2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Ira Rosen.

2015-04-11  Benno Schulenberg  <bensberg@justemail.net>

	* gcov.c (find_source): Fix miswording in error message.
	* config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
	(ix86_expand_sse_comi_round): Fix typo in error message.

2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Laurynas Biveinis.

2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Update Joe Buck's entry.

2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65710
	* lra-assigns.c (spill_for): Update smallest_bad_spills_num.
	Print bad_spills_num and insn_pseudos_num.

2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65694
	* config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
	when creating +1 values for SImode.

2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65729
	* lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
	assert.

2015-04-10  Jakub Jelinek  <jakub@redhat.com>
	    Iain Sandoe  <iain@codesourcery.com>

	PR target/65351
	* configure: Regenerate.

2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/65671
	* config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.

2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add John Marino.

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

	PR tree-optimization/65709
	* ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
	TREE_TYPE (TREE_TYPE (t)).

2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65710
	* lra-int.h (lra_bad_spill_regno_start): New.
	* lra.c (lra_bad_spill_regno_start): New.
	(lra): Set up lra_bad_spill_regno_start.  Set up
	lra_constraint_new_regno_start unconditionally.
	* lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
	spill preferences.

2015-04-09  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/65554
	* gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
	(fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
	of STRIP_NOPS.

2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/65693
	* combine.c (is_parallel_of_n_reg_sets): Move outside of
	#ifndef HAVE_cc0.

2015-04-09  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
	device specs file if "device-specs%s" didn't resolve to a path.

2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/65676
	* config/i386/i386.c (fixup_modeless_constant): New.
	(ix86_expand_args_builtin): Fixup modeless constant operand.
	(ix86_expand_round_builtin): Ditto.
	(ix86_expand_special_args_builtin): Ditto.
	(ix86_expand_builtin): Ditto.

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

	PR target/65693
	* config/i386/i386.md (*udivmod<mode>4_pow2): Allow
	any pow2 integer in between 2 and 0x80000000U inclusive.

2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/65693
	* combine.c (is_parallel_of_n_reg_sets): Change first argument
	from an rtx_insn * to an rtx.
	(try_combine): Adjust both callers.  Use it once more.

2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.c (chkp_find_const_bounds_var): Remove.
	(chkp_make_static_const_bounds): Search existing
	symbol by assembler name.  Use make_decl_one_only.
	(chkp_get_zero_bounds_var): Remove node	search which
	is now performed in chkp_make_static_const_bounds.
	(chkp_get_none_bounds_var): Likewise.

2015-04-08  Michael Witten  <mfwitten@gmail.com>

	* doc/extend.texi (Attribute Syntax): Add a trailing semicolon
	to an example.

2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree.h (CONVERT_EXPR_P): Commentary typo fix.

2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (__sync Builtins): Fix grammar.

2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* doc/cfg.texi (GIMPLE statement iterators): Fix typo.

2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* varasm.c (emit_local): Move definition of align.

2015-04-08  Julian Brown  <julian@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Support variable mapping.

2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
	alpha_links **.
	(alpha_write_one_linkage): Correct typo.

2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-comdats.c (propagate_comdat_group): Walk through thunks.

2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (bootstrap-lto-noplugin): Rewrite.

2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.h (chkp_insert_retbnd_call): New.
	* tree-chkp.c (chkp_insert_retbnd_call): New.
	* ipa-split.c (insert_bndret_call_after): Remove.
	(split_function): Use chkp_insert_retbnd_call.
	* cgraphunit.c (cgraph_node::expand_thunk): Build returned
	bounds for instrumented functions.

2015-04-07  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65540
	* calls.c (initialize_argument_information): When producing tail
	call also turn SSA_NAMES passed by references to original PARM_DECLs

2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65648
	* lra-remat.c (do_remat): Process input and non-input insn
	registers separately.

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

	PR debug/65678
	* valtrack.c (debug_lowpart_subreg): New function.
	(dead_debug_insert_temp): Use it.

	PR middle-end/65680
	* expr.c (get_inner_reference): Handle bit_offset that doesn't fit
	into signed HOST_WIDE_INT the same as negative bit_offset.

2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-comdats.c (ipa_comdats): Visit all thunks
	to set proper comdat group.

2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65489
	* config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
	on constants for NEON VSTRUCT modes.

2015-04-07  Jakub Jelinek  <jakub@redhat.com>
	    Iain Sandoe  <iain@codesourcery.com>

	PR target/65351
	* configure: Regenerate.

2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65614
	* config/rs6000/rs6000.c (struct processor_costs): Add cost field
	for SF->DF conversions to make FLOAT_EXTEND more expensive, so
	that LFD is used to load double constants instead of LFS.  Add
	defaults for all costs structures.  Add comments for missing
	initialization fields.
	(size32_cost): Likewise.
	(size64_cost): Likewise.
	(rs64a_cost): Likewise.
	(mpccore_cost): Likewise.
	(ppc403_cost): Likewise.
	(ppc405_cost): Likewise.
	(ppc440_cost): Likewise.
	(ppc476_cost): Likewise.
	(ppc601_cost): Likewise.
	(ppc603_cost): Likewise.
	(ppc604_cost): Likewise.
	(ppc604e_cost): Likewise.
	(ppc620_cost): Likewise.
	(ppc630_cost): Likewise.
	(ppccell_cost): Likewise.
	(ppc750_cost): Likewise.
	(ppc7450_cost): Likewise.
	(ppc8540_cost): Likewise.
	(ppce300c2c3_cost): Likewise.
	(ppce500mc_cost): Likewise.
	(ppce500mc64_cost): Likewise.
	(ppce5500_cost): Likewise.
	(ppce6500_cost): Likewise.
	(titan_cost): Likewise.
	(power4_cost): Likewise.
	(power6_cost): Likewise.
	(power7_cost): Likewise.
	(power8_cost): Likewise.
	(ppca2_cost): Likewise.
	(rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.

	* config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
	instead of XXLOR to copy SFmode to clear out dirty bits created
	when SFmode denormals are generated.
	(mov<mode>_hardfloat, FMOVE32 case): Likewise.
	(truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.

2015-04-06  Evandro Menezes  <e.menezes@samsung.com>

	* doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
	* config/aarch64/aarch64-cores.def (exynos-m1): New core.
	* config/aarch64/aarch64-tune.md: Regenerate.

2015-04-06  Evandro Menezes  <e.menezes@samsung.com>

	* doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
	* config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
	* config/arm/arm-cores.def (exynos-m1): New core.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Add entry for "exynos-m1".
	* config/arm/bpabi.h: Likewise.

2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-cp (set_single_call_flag): Remove too
	restrictive assert.

2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>

	* config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
	GOMP_offload_unregister from the destructor.

2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
	flags for instrumentation thunk.
	(chkp_produce_thunks): Likewise.

2015-04-05  Martin Liska  <mliska@suse.cz>

	PR ipa/65665
	* ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
	has computed data structure.
	(sem_item_optimizer::update_hash_by_addr_refs): Likewise.

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

	* invoke.texi (inline-unit-growth): Increase growth to 20%
	* params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.

2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65647
	* lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
	value checking.
	(lra_rematerialization_iter): New.
	* lra.c (lra): Initialize lra_rematerialization_iter.
	Stop updating lra_constraint_new_regno_start after switching of
	inheritance and rematerialization.
	* lra-remat.c (lra_rematerialization_iter): New.
	(lra_remat): Add printing pass iteration.  Do rematerialization
	only first LRA_MAX_REMATERIALIZATION_PASSES iterations.

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

	PR tree-optimization/64909
	PR tree-optimization/65660
	* tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
	to take a cost vector for scalar iteration cost.
	(vect_get_single_scalar_iteration_cost): Likewise.
	* tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
	Compute the scalar iteration cost into a cost vector.
	(vect_get_known_peeling_cost): Use the scalar cost vector to
	account for the cost of the peeled iterations.
	(vect_estimate_min_profitable_iters): Likewise.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
	Likewise.

2015-04-04  Alan Modra  <amodra@gmail.com>

	PR target/65576
	PR target/65240
	* config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
	0.0 constant unless TARGET_VSX.
	* config/rs6000/rs6000.md (extenddftf2_internal): Remove last
	alternative.

2015-04-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65654
	* ipa-inline-transform.c (inline_call): Skip sanity check to work
	around the ICE

2015-04-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65655
	* ipa-inline-analysis.c (edge_set_predicate): Do not redirect
	speculative indirect edges to avoid ordering issue.

2015-04-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* ipa-inline.c (edge_badness): Add combined size to the denominator.

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

	* omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
	TYPE_ARTIFICIAL on the .omp_data* types.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* cgraphunit.c (cgraph_node::expand_thunk): Don't expand
	instrumentation thunks.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/i386.c (ix86_expand_call): Avoid nested
	PARALLEL in returned call value.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* lto-cgraph.c (input_cgraph_1): Always link instrumented
	assembler name with original one.

2015-04-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_register_priority): Use AX_REG.

2015-04-02  Uros Bizjak  <ubizjak@gmail.com>

	Revert parts of r216820.
	* config/i386/i386.md (movqi_internal): Correct type calculation
	for alternatives 3 and 5.

2015-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/61977
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
	predefine __vector/__bool/__pixel macros nor context sensitive
	macros for CLK_ASM.
	* config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.

2015-04-02  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_move_double): Directly handle register
	indexed memory operand.  Simplify handling of scaled register indexed
	memory operands.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR driver/65444
	* config/i386/linux-common.h (MPX_SPEC): New.
	(CHKP_SPEC): Add MPX_SPEC.
	* doc/invoke.texi (-fcheck-pointer-boudns): Document
	possible issues with '-z bndplt' support in linker.

2015-04-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
	(loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
	(storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
	* reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
	(subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.

2015-04-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (UNSPEC_MOVA): Remove.
	(atomic_load<mode>): Change operand 0 predicate to
	nonimmediate_operand and fix up the destination when needed.
	Use UNSPEC_LDA.
	(atomic_loaddi_fpu): Use UNSPEC_LDA.
	(atomic_store<mode>): Change operand 1 predicate to
	nonimmendate_operand and move the source to register when needed.
	Use UNSPEC_STA.
	(atomic_store<mode>_1): Use UNSPEC_STA.
	(atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
	Fix moves from memory operand.  Use UNSPEC_STA.

2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* expmed.c (strict_volatile_bitfield_p): Check that the access will
	not cross a MODESIZE boundary.
	(store_bit_field, extract_bit_field): Added assertions in the
	strict volatile bitfields code path.

2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR target/65624
	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
	Increase args array size by one to avoid buffer overflow.

2015-03-31  Jan Hubicka  <hubicka@ucw.cz>

	* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
	split_part.
	* ipa-inline.c (edge_badness): Add wrapper penalty.
	(sum_callers): Move up.
	(inline_small_functions): Set single_caller.
	* ipa-inline.h (inline_summary): Add single_caller.
	* ipa-split.c (split_function): Set split_part.
	(cgraph_node::create_clone): Do not shadow decl; copy split_part.
	* cgraph.h (cgraph_node): Add split_part.

2015-03-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/58945
	* config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
	Do not split operands 0 and operands 2 to halfmode.
	(atomic_compare_and_swap<mode>): Update for
	atomic_compare_and_swap<dwi>_doubleword changes.

2015-03-31  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (need_assembler_name_p): Artificial types have no ODR names.
	* ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
	no caching is done.

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

	PR ipa/65557
	* ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
	has already filled up function summary.
	(sem_item_optimizer::update_hash_by_addr_refs): Likewise.

2015-03-31  Richard Biener  <rguenther@suse.de>

	* tree-sra.c (create_access_replacement): Drop under-/over-alignment
	of types.

2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
	nested functions.
	(s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
	(s390_asm_output_function_label): Adapt to new signature of
	s390_function_num_hotpatch_hw
	Optimise the code generating assembler output.
	Add comments to assembler file.

2015-03-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/65626
	* tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
	of the noreturn call so it is last and cleanup_control_flow_bb
	can do the CFG part.

2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65531
	* ipa-chkp.c (chkp_maybe_create_clone): Don't set
	same_comdat_group for external symbols.
	* symtab.c (symtab_node::verify_symtab_nodes): Avoid
	infinite same_comdat_group traversal loop.

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

	PR plugins/61176
	* Makefile.in (install-plugin): Add all gcc/*.{h,def} files
	automatically to $headers.

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

	PR ipa/65610
	* ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
	* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
	function.
	(decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
	Use it.
	* ipa-prop.c (param_type_may_change_p): Likewise.
	* tree-ssa-live.c: Include ipa-utils.h and its dependencies.
	(remove_unused_scope_block_p): Add in_ctor_dtor_block
	argument.  Before inlining, preserve
	inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
	with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
	recursive calls.
	(remove_unused_locals): Adjust remove_unused_scope_block_p caller.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* ipa-inline.c (edge_badness): Base denominator on callee's
	grwoth squared.

2015-03-27  Martin Jambor  <mjambor@suse.cz>

	PR ipa/65478
	* params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
	(PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
	* ipa-prop.h (ipa_node_params): New flags node_within_scc and
	node_calling_single_call.
	* ipa-cp.c (count_callers): New function.
	(set_single_call_flag): Likewise.
	(initialize_node_lattices): Count callers and set single_flag_call if
	necessary.
	(incorporate_penalties): New function.
	(good_cloning_opportunity_p): Use it, dump new flags.
	(propagate_constants_topo): Set node_within_scc flag if appropriate.
	* doc/invoke.texi (ipa-cp-recursion-penalty,
	ipa-cp-single-call-pentalty): Document.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65588
	* symtab.c (symtab_node::get_partitioning_class): Register vars
	are duplicated.
	* varpool.c (symbol_table::output_variables) Do not assemble unefined
	decls for non-symbols.

2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65248
	* output.h (default_binds_local_p_2): New.
	* varasm.c (default_binds_local_p_2): Renamed to ...
	(default_binds_local_p_3): This.  Don't return true on protected
	data symbol if protected data may be external.
	(default_binds_local_p): Use default_binds_local_p_3.
	(default_binds_local_p_1): Likewise.
	(default_binds_local_p_2): New.
	* config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
	default_binds_local_p_2 if TARGET_MACHO is undefined.

2015-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/65593
	* config/i386/i386.c (legitimize_pic_address): If base
	is SYMBOL_REF or LABEL_REF using %rip addressing, force
	it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR target/65531
	* symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
	comdat groups.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65600
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
	of optimized out indirect call.
	(redirect_to_unreachable): Always build symbol table node for
	BUILT_IN_UNREACHABLE

2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65407
	* ira-costs.c (record_reg_classes): Process all constraint string
	containing 0-9.

2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>

	* config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
	memory_operand.

	PR target/65052
	* config/c6x/constraints.md (S3): New constraint.
	* config/c6x/c6x.md (real_jump): Use it.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/65595
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
	do redirection if the call is not optimized out.

2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65495
	* c-family/c.opt (fcheck-pointer-bounds): List supported languages.
	(fchkp-check-incomplete-type): Add LTO.
	(fchkp-zero-input-bounds-for-main): Likewise.
	(fchkp-first-field-has-own-bounds): Likewise.
	(fchkp-narrow-bounds): Likewise.
	(fchkp-narrow-to-innermost-array): Likewise.
	(fchkp-use-static-bounds): Likewise.
	(fchkp-use-static-const-bounds): Likewise.
	(fchkp-treat-zero-dynamic-size-as-infinite): Likewise.

2015-03-27  Marek Polacek  <polacek@redhat.com>

	* gimple-iterator.h (gsi_prev_nondebug): Fix typo.

2015-03-27  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/65583
	* ubsan.c (ubsan_create_edge): New function.
	(instrument_bool_enum_load): Call it.
	(instrument_nonnull_arg): Likewise.
	(instrument_nonnull_return): Likewise.
	(instrument_object_size): Likewise.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer.h (class lto_location_cache): Turn loc_cache into
	auto_vec.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65536
	* lto-streamer.h (class lto_location_cache): New.
	(struct data_in): Add location_cache.
	(lto_input_location): Update prototype.
	(stream_input_location_now): New.
	* streamer-hooks.h (struct streamer_hooks): Make input_location to take
	pointer to location.
	(stream_input_location): Update.
	* ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
	(warn_odr): Apply location cache before warning.
	(lto_input_location): Update prototype.
	* gimple-streamer-in.c (input_phi, input_gimple_stmt):
	Use stream_input_location_now.
	* lto-streamer-in.c (lto_location_cache::current_cache): New static
	variable.
	(lto_location_cache::cmp_loc): New function.
	(lto_location_cache::apply_location_cache): New function.
	(lto_location_cache::accept_location_cache): New function.
	(lto_location_cache::revert_location_cache): New function.
	(lto_location_cache::input_location): New function.
	(lto_input_location): Do location caching.
	(stream_input_location_now): New function.
	(input_eh_region, input_struct_function_base): Use
	stream_input_location_now.
	(lto_data_in_create): use new.
	(lto_data_in_delete): Use delete.
	* tree-streamer-in.c (unpack_ts_block_value_fields,
	unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
	lto_input_ts_exp_tree_pointers): Update for cached location api.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* passes.def: Add pass_nothrow.
	* ipa-pure-const.c: (pass_data_nothrow): New.
	(pass_nothrow): New.
	(pass_nothrow::execute): New.
	(make_pass_nothrow): New.
	* tree-pass.h (make_pass_nothrow): Declare.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
	edge to change by speculation resolution or redirection.
	(edge_set_predicate): Likewise.
	(inline_summary_t::duplicate): Likewise.
	(remap_edge_summaries): Likewise.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
	New macros.
	(can_inline_edge_p): Relax option matching for always inline functions.

2015-03-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65561
	* config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
	Check operand 4 and operand 0 for equality.
	(avx512f_vextract<shuffletype>32x4_1_maskm):
	Check operand 6 and operand 0 for equality.
	(vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
	for equality.
	(vec_extract_hi_<mode>_maskm): Ditto.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
	dead calls back to live.
	(cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
	cross check to ...
	(cgraph_node::verify_node): ... here; verify only callee edges,
	not caller.
	* cif-code.def (CILK_SPAWN): New code.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (redirect_to_unreachable): New function.
	(edge_set_predicate): Use it to mark unreachable edges.
	(inline_summary_t::duplicate): Remove unnecesary code.
	(remap_edge_summaries): Likewise.
	(dump_inline_summary): Report contains_cilk_spawn.
	(compute_inline_parameters): Compute contains_cilk_spawn.
	(inline_read_section, inline_write_summary): Stream
	contains_cilk_spawn.
	* ipa-inline.c (can_inline_edge_p): Do not touch
	DECL_STRUCT_FUNCTION that may not be available;
	use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
	remove check for callee_fun->can_throw_non_call_exceptions and
	replace it by optimization attribute check; check for flag_exceptions.
	* ipa-inline-transform.c (inline_call): Maintain
	DECL_FUNCTION_PERSONALITY
	* ipa-inline.h (inline_summary): Add contains_cilk_spawn.

2015-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65551
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
	TYPE_PRECISION only for INTEGRAL_TYPE_P types.

2015-03-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/65555
	* tree-cfg.c (verify_gimple_call): Do not require a call to
	have no LHS if it wasn't recognized as control altering yet.

2015-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64715
	* passes.def: Add another instance of pass_object_sizes before ccp1.
	* tree-object-size.c (pass_object_sizes::execute): In
	first_pass_instance, only handle __bos (, 1) and __bos (, 3)
	calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
	__bos result and the computed constant.  Remove redundant
	checks, obsoleted by gimple_call_builtin_p test.

	* var-tracking.c (variable_tracking_main_1): Don't track
	variables for targetm.no_register_allocation targets.

2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
	* config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.

2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65569
	* config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
	XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
	0.0 is correctly setup.
	(extenddftf2_internal): Likewise.

2015-03-25  Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/65177
	* tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
	(bb_in_bbs): New.
	(duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
	edges not adjacent on the path to the original code.

2015-03-25  Uros Bizjak  <ubizjak@gmail.com>

	PR bootstrap/65537
	* doc/install.texi (Building a native compiler): Document new
	bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
	configuration assumes that the host supports the linker plugin.

2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65508
	* tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
	chain for generated call.

2015-03-25  Richard Biener  <rguenther@suse.de>

	* passes.c (pass_manager::execute_early_local_passes): Guard
	execution of pass_chkp_instrumentation_passes with
	flag_check_pointer_bounds.
	(pass_chkp_instrumentation_passes::gate): Likewise.

2015-03-25  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/65538
	* symbol-summary.h (function_summary::~function_summary):
	Relese memory for allocated summaries.
	(function_summary::release): New function.

2015-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR lto/65515
	* lto-streamer-out.c (DFS::worklist): New struct.
	(DFS::worklist_vec): New data member.
	(DFS::next_dfs_num): Remove.
	(DFS::DFS): Rewritten using worklist instead of recursion,
	using most of code from DFS::DFS_write_tree.
	(DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
	pass it to DFS_write_tree calls.
	(DFS::DFS_write_tree): Remove SINGLE_P argument, after
	quick initial checks push it into worklist_vec and return.

2015-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/65519
	* genmatch.c (expr::gen_transform): Re-write to avoid
	using gimple_build.

2015-03-25  Bin Cheng  <bin.cheng@arm.com>

	* doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.

2015-03-25  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.opt (print_tune_info): New option.
	* config/arm/arm.c (arm_print_tune_info): New function.
	(arm_file_start): Call arm_print_tune_info.
	* config/arm/arm-protos.h (struct tune_params): Add comment.
	* doc/invoke.texi (@item -mprint-tune-info): New item.
	(-mtune): mention it in ARM Option Summary.

2015-03-25  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
	correct clause.

2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
	* ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
	(sem_item::add_type): New function.
	(sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
	(sem_function::compare_polymorphic_p): Do not consider indirect calls.
	(sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
	(sem_function::equals_wpa): Fix typo.
	* ipa-icf.h (sem_item::add_type): New function.
	(symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
	order.

2015-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65533
	* tree-vect-slp.c (vect_build_slp_tree): Before re-trying
	with swapped operands, call vect_free_slp_tree on
	SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
	vector.

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

	PR middle-end/65517
	* tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
	for fixup if necessary.

2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Function Attributes): Add @cindex entries
	for all attributes and regularize their format.  Delete text
	about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
	information about "eightbit_data", "tiny_data", and "model"
	variable attributes to the Variable Attributes section.  Fix
	some obvious typos and copy-editing issues.
	(Variable Attributes, Type Attributes): Likewise add/fix
	@cindex entries for all attributes.

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

	PR target/65523
	* tree-chkp.c (chkp_build_returned_bound): Ignore
	ERF_RETURNS_ARG calls if they have fewer than needed arguments.

2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65505
	* config/sh/predicates.md (simple_mem_operand,
	displacement_mem_operand): Add test for reg.
	(short_displacement_mem_operand): Test for displacement_mem_operand
	before invoking sh_disp_addr_displacement.
	* config/sh/constraints.md (Sdd, Sra): Simplify.
	* config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
	Remove redundant displacement_mem_operand tests.

2015-03-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
	the same -mmcu=MCU more than once.

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

	PR bootstrap/65522
	* ipa-devirt.c: Remove duplicate demangle.h include.

	PR target/65504
	* config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
	on the pseudo.
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
	REG_POINTER on *destptr after adjusting it for prologue size.

	PR ipa/65521
	* ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
	ultimate_alias_target ()->order ints instead of
	ultimate_alias_target () pointers.

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

	PR tree-optimization/65518
	* tree-vect-stmts.c (vectorizable_load): Reject single-element
	interleaving cases we generate absymal code for.

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

	PR tree-optimization/65494
	* tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
	matches here.
	(vect_analyze_slp_instance): But do that here, always and once.

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

	* expmed.c (synth_mult): Fix comment about multiplying by T-1 and
	adding T or multiplying by T+1 and subracting T.

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

	PR rtl-optimization/64317
	* Makefile.in (OBJS): Add gcse-common.c
	* gcse.c: Include gcse-common.h
	(struct modify_pair_s): Move structure definition to gcse-common.h
	(compute_transp): Move function to gcse-common.c.
	(canon_list_insert): Similarly.
	(record_last_mem_set_info): Break out some code and put it into
	gcse-common.c.  Call into the new common code.
	(compute_local_properties): Pass additional arguments to compute_transp.
	* postreload-gcse.c: Include gcse-common.h and df.h
	(modify_mem_list_set, blocks_with_calls): New variables.
	(modify_mem_list, canon_modify_mem_list, transp): Likewise.
	(get_bb_avail_insn): Pass in the expression index too.
	(alloc_mem): Allocate memory for the new bitmaps and lists.
	(free_mem): Free memory for the new bitmaps and lists.
	(insert_expr_in_table): Record a bitmap index for each entry we
	add to the table.
	(record_last_mem_set_info): Call into common code in gcse-common.c.
	(get_bb_avail_insn): If no available insn was found in the requested
	BB.  If BB has a single predecessor, see if the expression is
	transparent in BB and available in that single predecessor.
	(compute_expr_transp): New wrapper for compute_transp.
	(eliminate_partially_redundant_load): Pass expression's bitmap_index
	to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
	(gcse_after_reload_main): If there are elements in the hash table,
	then compute transparency for all the elements in the hash table.
	* gcse-common.h: New file.
	* gcse-common.c: New file.

2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/cpp.texi (Search Path): Hyphenate "command-line" when used
	as an adjective.
	(System Headers): Likewise.
	(Ifdef): Likewise.
	(Traditional macros): Likewise.
	(Invocation): Likewise.
	(Option Index): Likewise.
	* doc/cppopts.texi (-M): Likewise.
	(-finput-charset): Likewise.
	(--help): Likewise.
	* doc.invoke.texi (AVR Options): Likewise.
	(V850 Options): Likewise.

2015-03-22  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65475
	* ipa-devirt.c: Include demangle.h
	(odr_type_d): Add field rtti_broken.
	(odr_subtypes_equivalent_p): Do not require name to match.
	(compare_virtual_tables): Fix typo; if type already has ODR violation,
	bypass the tests; be ready for function referneces in vtables that are
	not DECL_VIRTUAL; make warnings to be OPT_Wodr.
	(warn_odr): Give up for nameless types.
	(warn_types_mismatch): Report mismatch in mangled names;
	report mismatch in anonymous namespaces; look into component types to
	give useful error; report when mismatch is dragged in from other ODR
	type.
	(odr_types_equivalent_p): Match types for being polymorphic; avoid
	duplicated diagnostics.
	(add_type_duplicate): Reorder checks so more informative ones come
	first; fix typo; do not output "the extra base is defined here" when
	we did not warn.
	(BINFO_N_BASE_BINFOS): Relax sanity check.

2015-03-22  Martin Liska  <mliska@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (def_builtin): Set deferred_isa_values for
	masks that can potentially include a builtin.
	(ix86_add_new_builtins): Introduce fast filter for isa values
	that cannot trigger builtin inclusion.

2015-03-22  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
	(sem_item::update_hash_by_local_refs): Likewise.
	(sem_variable::get_hash): Empty line is fixed.
	(sem_item_optimizer::execute): Include adding of hash references.
	(sem_item_optimizer::update_hash_by_addr_refs): New function.
	(sem_item_optimizer::build_hash_based_classes): Use local hash.
	* ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
	(sem_item::update_hash_by_local_refs): Likewise.

2015-03-20  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65502
	* ipa-comdats.c (enqueue_references): Walk through thunks.
	(ipa_comdats): Likewise.
	(set_comdat_group_1): New function.

2015-03-20  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65475
	* ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
	non-polymorphic

2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Update entry for Danny Smith.

2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
	function parameter declaration.
	* config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
	Update arguments to nios2_adjust_call_address().
	(sibcall_internal): Rename from *sibcall.
	(sibcall_value_internal): Rename from *sibcall_value.
	* config/nios2/nios2.c (nios2_emit_add_constant): New function.
	(nios2_large_got_address): Add target temp reg parameter.
	(nios2_got_address): Adjust call to nios2_large_got_address, add
	force_reg around it.
	(nios2_load_pic_address): Add target temp reg parameter, replace call
	to nios2_got_address with corresponding code.
	(nios2_legitimize_constant_address): Update call to
	nios2_load_pic_address.
	(nios2_adjust_call_address): Add temp reg parameter, update PIC case
	to use temp reg for PIC loading purposes.
	(nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
	(TARGET_ASM_OUTPUT_MI_THUNK): Likewise.

2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fno-diagnostics-show-caret): Fix
	usage of "the @option{...}".
	(-Wopenmp-simd): Likewise.
	(-fsanitize-recover): Likewise.
	(-fsanitize-undefined-trap-on-error): Likewise.
	(-flto): Likewise.
	(tracer-dynamic-coverage-feedback): Likewise.
	(reorder-block-duplicate-feedback): Likewise.
	(loop-unroll-jam-size): Likewise.
	(-B): Likewise.
	(-I-): Likewise.
	(-mabs=legacy): Likewise.
	(-mupper-regs-df): Likewise.
	(-mupper-regs-sf): Likewise.
	(-mpointers-to-nested-functions): Likewise.

2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Cilk Plus Builtins): Add markup.

2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
	additional index entries and cross-references.
	(-fchkp-check-incomplete-type): Likewise.
	(-fchkp-first-field-has-own-bounds): Likewise.
	(-fchkp-narrow-to-innermost-array): Likewise.
	(-fchkp-use-fast-string-functions): Likewise.
	(-fchkp-use-nochk-string-functions): Likewise.
	(-fchkp-use-static-const-bounds): Likewise.
	(-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
	(-fchkp-instrument-marked-only): Likewise.
	(-fchkp-use-wrappers): Likewise.
	(-static-libmpx): Likewise.
	(-static-libmpxwrappers): Likewise.
	* doc/extend.texi (bnd_legacy): Likewise.
	(bnd_instrument): Likewise.
	(bnd_variable_size): Likewise.
	(Pointer Bounds Checker builtins): Likewise.

2015-03-21  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65458
	* cgraph.c (cgraph_node::dump): Handle parallelized_function field.
	* cgraph.h (cgraph_node): Add parallelized_function field.
	* lto-cgraph.c (lto_output_node): Write parallelized_function field.
	(input_overwrite_node): Read parallelized_function field.
	* omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
	parallelized_function on cgraph_node for child_fn.
	* tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
	Remove include of gt-tree-parloops.h.
	(parallelized_functions): Remove static variable.
	(parallelized_function_p): Rewrite using parallelized_function field of
	cgraph_node.
	(create_loop_fn): Remove adding to parallelized_functions.
	* Makefile.in (GTFILES): Remove tree-parloops.c

2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64366
	* lra.c (lra_update_insn_regno_info): Consider regs in
	CALL_INSN_FUNCTION_USAGE memory.

2015-03-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/64715
	* tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
	for type comparison and gcc_checking_assert.
	(chrec_fold_plus_poly_poly): Likewise.
	(chrec_fold_multiply_poly_poly): Likewise.
	(chrec_convert_1): Likewise.
	* gimplify.c (gimplify_expr): Remove premature folding of
	&X + CST to &MEM[&X, CST].

2015-03-20  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
	already is final.
	(ipa_inline): Recompute inline_failed codes.
	* cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
	USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
	CIF_FINAL_ERROR.

2015-03-20  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/60851
	* recog.c (constrain_operands): Accept a pseudo register before reload
	for LRA enabled targets.

2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65240
	* config/rs6000/predicates.md (easy_fp_constant): Remove special
	-ffast-math handling that kept non-0 constants live in the RTL
	until reload.  Remove logic testing the number of instructions it
	took to create a constant in a GPR that was never used, due to a
	test for soft-float earlier.
	(memory_fp_constant): Delete, no longer used.

	* config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
	alternatives for loading non-0 constants into GPRs for hard
	floating point that is no longer needed due to changes in
	easy_fp_constant.  Add support for loading 0.0 into GPRs.
	(mov<mode>_hardfloat32): Likewise.
	(mov<mode>_hardfloat64): Likewise.
	(mov<mode>_64bit_dm): Likewise.
	(movtd_64bit_nodm): Likewise.
	(pre-reload move FP constant define_split): Delete define_split,
	since it is no longer used.
	(extenddftf2_internal): Remove GHF constraints that are not valid
	for extenddftf2.

2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63491
	* lra-constraints.c (check_and_process_move): Use src instead of
	sreg.  Remove some dead code.

2015-03-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65380
	* ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
	(sem_variable::merge): Likewise.

2015-03-19  Martin Liska  <mliska@suse.cz>

	PR ipa/65465
	* cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
	all fields of cgraph_thunk_info.

2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_maybe_create_clone): Don't try to
	clone instrumented thunks.

2015-03-19  Richard Biener  <rguenther@suse.de>

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

	PR middle-end/63155
	* tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
	* tree-ssa-coalesce.c: Include timevar.h.
	(attempt_coalesce): Handle graph being NULL.
	(coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
	Split out abnormal coalescing to ...
	(perform_abnormal_coalescing): ... this function.
	(coalesce_ssa_name): Perform abnormal coalescing without computing
	live/conflict.
	(verify_ssa_coalescing_worker): New function.
	(verify_ssa_coalescing): Likewise.

2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65400
	* tsan.c (instrument_gimple): Clear tail call flag on
	calls.

2015-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65400
	* ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
	call in the return bb.
	(find_split_points): Add RETURN_BB argument, don't call
	find_return_bb.
	(split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
	if true append TSAN_FUNC_EXIT internal call after the call to
	the split off function.
	(execute_split_functions): Call find_return_bb here.
	Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
	Adjust find_split_points and split_function calls.

2015-03-18  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
	(iorqi3_virt): Likewise.

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

	* tree-parloops.c (parallelize_loops): Make static.
	* tree-parloops.h (parallelize_loops): Remove extern declaration.

2015-03-18  Andrew Stubbs  <ams@codesourcery.com>

	PR middle-end/64491
	Revert:
	2014-11-20  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
	condition would be removed due to undefined behaviour.

2015-03-18  Martin Liska  <mliska@suse.cz>

	PR ipa/65432
	* cgraph.c (cgraph_node::get_create): Remove unnecessary
	xstrdup_for_dump wrapper.
	* ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
	sem_item::name.
	(sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
	with xstrdup_for_dump.
	(sem_variable::equals): Likewise.
	(sem_item_optimizer::read_section): Use symtab_node::name instead of
	sem_item::name.
	(sem_item_optimizer::parse_funcs_and_vars): Likewise.
	(sem_item_optimizer::merge_classes): Wrap symtab_node::name and
	symtab_node::asm_name with xstrdup_for_dump.
	(congruence_class::dump): Use symtab_node::name instead of
	sem_item::name.
	* ipa-icf.h (symtab_node::name): Remove.
	(symtab_node::asm_name): Likewise.

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

	PR tree-optimization/65450
	* tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
	function.
	(vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
	it instead of duplicate_ssa_name_ptr_info.

	PR target/65222
	* doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.

2015-03-18  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (struct access_matrix): Remove.
	(AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
	AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
	AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
	(am_vector_index_for_loop): Likewise.
	(struct data_reference): Remove access_matrix member.
	(DR_ACCESS_MATRIX): Remove.
	(lambda_vector_new): Add comment.
	(lambda_matrix_new): Use XOBNEWVEC.

2015-03-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
	(pass_ch::execute): Cleanup the CFG only if we did sth.
	* tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.

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

	* expmed.c (synth_mult): Use std::swap instead of manually
	swapping algorithms.

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

	PR target/65078
	* config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.

2015-03-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config/avr/avr.opt (-nodevicelib): New option.
	* doc/invoke.texi (AVR Options): Document it.
	* config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
	libgcc.a, libc.a, libm.a.
	* config/avr/specs.h: Same.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
	which don't (directly) depend on the device.  Print more help.
	(*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
	(*cpp): Don't define __AVR_DEV_LIB_NAME__.
	* config/avr/driver-avr.c: Remove -nodevicelib from option list in
	case of an error.
	(avr_devicespecs_file): Use suffix "%s" instead of absolute path
	for specs file name.
	* config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
	* config/avr/avr-mcus.def: Adjust initializers and comments.

2015-03-16  Jan Hubicka  <hubicka@ucw.cz>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Use
	DECL_ONE_ONLY to check if decl is one only.
	* ipa-split.c (consider_split): Limit splitt of one only functions.

2015-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65427
	* tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
	functions.
	(expand_vector_operations_1): Handle BLKmode vector COND_EXPR.

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

	* cgraph.h (add_new_static_var): Remove declaration.
	* varpool.c (add_new_static_var): Remove function.

2015-03-16  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
	instead of vec<tree> * with vec_alloc and release for args.
	Adjust all users.

	PR middle-end/65431
	* omp-low.c (delete_omp_context): Only splay_tree_delete
	reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
	is_gimple_omp_oacc contexts.  Don't look at ctx->outer.

2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR sanitizer/64820
	* cfgexpand.c (align_base): New function.
	(alloc_stack_frame_space): Call it.
	(expand_stack_vars): Align prev_frame to be sure
	data->asan_vec elements aligned properly.

2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/65409
	* expr.c (store_field): Do not do a direct block copy if the source is
	a PARALLEL with BLKmode.

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

	PR middle-end/65414
	Revert:
	2015-03-12  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64895
	* lra-lives.c (check_pseudos_live_through_calls): Use
	actual_call_used_reg_set instead of call_used_reg_set, if available.

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

	PR target/63150
	* config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
	Modify Z->r bswapdi splitter to use dest in place of scratch.
	In r->Z and Z->r bswapdi splitter rename word_high, word_low
	to word1, word2 and rearrange logic to suit.
	(bswapdi2_64bit): Remove early clobber on Z->r alternative.
	(bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
	(bswapdi2_32bit): Remove early clobber on Z->r alternative.
	Add one '?' on r->r.  Modify Z->r splitter to avoid need for
	early clobber.

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

	PR tree-optimization/65369
	* tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
	Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
	(vs - 1) * TYPE_SIZE_UNIT (elem_type).

	PR tree-optimization/65418
	* tree-ssa-reassoc.c (extract_bit_test_mask): If there
	are casts in the first PLUS_EXPR operand, ensure tbias and
	*totallowp are in the inner type.

	PR rtl-optimization/65401
	* combine.c (rtx_equal_for_field_assignment_p): Add widen_x
	argument.  If true, adjust_address_nv of x with big-endian
	correction for the mode widening to GET_MODE (y).
	(make_field_assignment): Don't do MEM mode widening here.
	Use MEM_P instead of GET_CODE == MEM.

2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>

	* varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
	the external decls.

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

	PR target/64600
	* config/arm/arm.c (arm_gen_constant, AND case): Use
	ARM_SIGN_EXTEND when constructing AND mask.

2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* graph.c (print_graph_cfg): Make function names visible and append
	parenthesis to it.  Also make groups of basic blocks belonging to the
	same function visible.

2015-03-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
	to avoid quadratic behavior with inline expansion splitting blocks.
	* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
	with the successor if the predecessor will be merged with it.
	* tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
	entry block with its successor.

2015-03-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
	(cleanup_tree_cfg_1): Do not call it.
	(execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
	(fixup_noreturn_call): Mark the stmt as control altering.
	* tree-cfg.c (execute_fixup_cfg): Do not dump the function
	here.
	(pass_data_fixup_cfg): Produce a dump file.
	* tree-ssa-dom.c: Include tree-cfgcleanup.h.
	(need_noreturn_fixup): New global.
	(pass_dominator::execute): Fixup queued noreturn calls.
	(optimize_stmt): Queue calls that became noreturn for fixup.
	* tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
	* tree-ssa-pre.c: Include tree-cfgcleanup.h.
	(el_to_fixup): New global.
	(eliminate_dom_walker::before_dom_childre): Queue calls that
	became noreturn for fixup.
	(eliminate): Fixup queued noreturn calls.
	* tree-ssa-propagate.c: Include tree-cfgcleanup.h.
	(substitute_and_fold_dom_walker): New member stmts_to_fixup.
	(substitute_and_fold_dom_walker::before_dom_children): Queue
	alls that became noreturn for fixup.
	(substitute_and_fold): Fixup queued noreturn calls.

2015-03-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
	and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
	are building; for methods check ODR type of class they belong to if
	they may lead to a polymorphic call.
	(sem_function::compare_polymorphic_p): Be bit smarter about testing
	when function may lead to a polymorphic call.
	(sem_function::compare_type_list): Remove.
	(sem_variable::equals): Update use of compatible_types_p.
	(sem_variable::parse_tree_refs): Remove.
	(sem_item_optimizer::filter_removed_items): Do not filter out CXX
	cdtor.
	* ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
	matching here.
	(func_checker::compatible_polymorphic_types_p): Break out from ...
	(unc_checker::compatible_types_p): ... here.
	* ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
	Declare.
	(unc_checker::compatible_types_p): Update.
	* ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
	Remove.

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

	PR rtl-optimization/65235
	* simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
	When first element of vec_concat is const_int, calculate its size
	using second element.

2015-03-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/65270
	* fold-const.c (operand_equal_p): Fix ordering of resetting
	OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.

2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_reorg): Move code to output nops after label
	to s390_reorg ().
	(s390_asm_output_function_label): Likewise.
	* config/s390/s390.c (s390_asm_output_function_label):
	Fix function label alignment with -mhtopatch.
	* config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
	UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
	("nop_2_byte"): New define_insn.
	("nop_4_byte"): Likewise.
	("nop_6_byte"): Likewise.
	* doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
	* doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.

2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65103
	* config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
	register.

2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65044
	* toplev.c (process_options): Restrict Pointer Bounds Checker
	usage with Address Sanitizer.

2015-03-12  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (gimple_split_block): Remove loop finding stmt
	to split on.
	* omp-low.c (expand_omp_taskreg): Split block before removing
	the stmt.
	(expand_omp_target): Likewise.
	* ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
	* tree-parloops.c (create_call_for_reduction_1): Pass a proper
	stmt to split_block.

2015-03-12  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64895
	* lra-lives.c (check_pseudos_live_through_calls): Use
	actual_call_used_reg_set instead of call_used_reg_set, if available.

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

	* cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
	(cgraph_node::remove): Likewise.
	(cgraph_node::get_untransformed_body): Likewise.
	* varpool.c (varpool_node::remove): Likewise.
	(varpool_node::get_constructor): Add sanity check.

2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fgnu89-inline): Remove discussion about
	old GCC versions.
	(-fabi-compat-version): Likewise.
	(-ffriend-injection): Likewise.
	(-Wdeclaration-after-statement): Likewise.
	(-fomit-frame-pointer): Likewise.
	(-ftree-coalesce-inlined-vars): Likewise.
	(-fvisibility=): Likewise.
	* doc/extend.texi (Typeof): Likewise.
	(Zero Length): Likewise.
	(Escaped Newlines): Likewise.
	(Compound Literals): Likewise.
	(Function Attributes): Likewise.
	(Label Attributes): Likewise.
	(Type Attributes): Likewise.
	(Function Names): Likewise.
	(Other Builtins): Likewise.
	(Function Specific Option Pragmas): Likewise.
	(C++ Interface): Likewise.

2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".

2015-03-11  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/65388
	* tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.

2015-03-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
	* configure: Regenerate.
	* config.in: Regenerate.
	* doc/invoke.texi (AVR Options) [-mrmw]: Document it.
	[-mn-flash]: Document it.
	[__AVR_ARCH__]: Document avrtiny.

	* config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
	(*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
	(*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.

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

	* doc/invoke.texi: Add missing cpu values (z196, zEC12).

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

	PR target/65242
	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
	allow reloads of PLUS in floating point/VSX registers.

2015-03-11  Junmo Park  <junmoz.park@samsung.com>

	* config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
	crypto_sha256_fast.
	(cortex_a57_crypto_complex): Add crypto_sha256_slow.

2015-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65310
	* tree-sra.c (build_ref_for_offset): Also preserve larger
	alignment.

2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>

	* asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/65368
	* config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
	new define_expand.
	(*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.

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

	* ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
	(sem_function::equals_wpa): ... here.

2015-03-10  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65367
	* ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
	when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
	separately.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/65286
	* config/rs6000/t-linux: For powerpc64* target set
	MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.

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

	PR middle-end/44563
	* tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
	for redirect_all_calls.

2015-03-10  Marek Polacek  <polacek@redhat.com>

	* gdbinit.in (pcfun): Define and document.

2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>

	* config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
	of libgomp-plugin.h.
	(find_target_compiler): Support a case when the path to gcc is
	specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
	(generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
	intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
	libgomp-plugin.h.
	(main): Use GCC_INSTALL_NAME as target_driver_name.
	* config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
	define.
	(mkoffload.o): Remove obsolete include path and defines.
	(mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).

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

	PR middle-end/63155
	* tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
	* tree-ssa-coalesce.c: Include timevar.h.
	(attempt_coalesce): Handle graph being NULL.
	(coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
	Split out abnormal coalescing to ...
	(perform_abnormal_coalescing): ... this function.
	(coalesce_ssa_name): Perform abnormal coalescing without computing
	live/conflict.
	(verify_ssa_coalescing_worker): New function.
	(verify_ssa_coalescing): Likewise.

2015-03-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config.gcc (extra_options) [avr]: Remove.
	(extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
	(tm_file) [avr]: Add avr/specs.h after avr/avr.h.
	(tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.

	* config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
	(-mmcu=): Add Var and MissingArgError properties.
	(-march=): Remove.
	* config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
	* config/avr/t-multilib: Regenerate.
	* config/avr/specs.h: New file.
	* config/avr/driver-avr.c: New file.
	* config/avr/genopt.sh: Remove file.
	* config/avr/avr-tables.opt: Remove file.
	* config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
	* config/avr/avr-c.c: Same.
	* avr-arch.h: Same.
	(avr_current_device): Remove proto.
	* config/avr/avr.h (avr_current_arch): Rename to avr_arch.
	(AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(avr_devicespecs_file): New specs function proto.
	(DRIVER_SELF_SPECS): Use device-specs-file spec function.
	* config/avr/avr.c (avr_current_arch): Rename to avr_arch.
	(avr_current_device): Remove definition and usage.
	(avr_set_core_architecture): New static function.
	(avr_option_override): Use it.
	* config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
	(mcu_name): New static array.
	(comparator, avr_archs_str, avr_mcus_str): New static functions.
	(avr_inform_devices, avr_inform_core_architectures): New functions.
	* config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
	(avrlibc.h) [WITH_AVRLIBC]: Include.
	(../rtems.h, rtems.h) [WITH_RTEMS]: Include.
	(print_mcu): Rewrite from scratch.
	* config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
	Forward to avr-specific specs defined in device-specs file.
	* config/avr/t-avr (driver-avr.o): New rule.
	(avr-devices.o): Depend on avr-arch.h.
	(avr-mcus): No more depend on avr-tables.opt.
	(avr-tables.opt): Remove rule.
	(install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* c-family/c.opt (fchkp-use-wrappers): New.
	* ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
	(chkp_wrap_function): New.
	(chkp_build_instrumented_fndecl): Support wrapped
	functions.
	* doc/invoke.texi (-fcheck-pointer-bounds): New.
	(-fchkp-check-incomplete-type): New.
	(-fchkp-first-field-has-own-bounds): New.
	(-fchkp-narrow-bounds): New.
	(-fchkp-narrow-to-innermost-array): New.
	(-fchkp-optimize): New.
	(-fchkp-use-fast-string-functions): New.
	(-fchkp-use-nochk-string-functions): New.
	(-fchkp-use-static-bounds): New.
	(-fchkp-use-static-const-bounds): New.
	(-fchkp-treat-zero-dynamic-size-as-infinite): New.
	(-fchkp-check-read): New.
	(-fchkp-check-write): New.
	(-fchkp-store-bounds): New.
	(-fchkp-instrument-calls): New.
	(-fchkp-instrument-marked-only): New.
	(-fchkp-use-wrappers): New.
	(-static-libmpx): New.
	(-static-libmpxwrappers): New.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
	(CHKP_SPEC): Add wrappers library.
	* c-family/c.opt (static-libmpxwrappers): New.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/linux-common.h (LIBMPX_LIBS): New.
	(LIBMPX_SPEC): New.
	(CHKP_SPEC): New.
	* gcc.c (CHKP_SPEC): New.
	(LINK_COMMAND_SPEC): Add CHKP_SPEC.
	* c-family/c.opt (static-libmpx): New.

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

	PR middle-end/44563
	* cgraph.h (struct cgraph_edge_hasher): Add hash overload
	for compare_type.
	* cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
	(cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
	(cgraph_add_edge_to_call_site_hash): Likewise.
	(cgraph_node::get_edge): Likewise.
	(cgraph_edge::set_call_stmt): Likewise.
	(cgraph_edge::remove_caller): Likewise.

2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
	(callee_saved_gpr_regs_size): ... this.
	(callee_saved_regs_first_regno): Rename to ...
	(callee_saved_first_gpr_regno): ... this.
	(callee_saved_regs_last_regno) Rename to ...
	(callee_saved_last_gpr_regno): ... this.
	* config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
	variables.
	(nds32_initial_elimination_offset): Likewise.
	(nds32_expand_prologue): Likewise.
	(nds32_expand_epilogue): Likewise.
	(nds32_expand_prologue_v3push): Likewise.
	(nds32_expand_epilogue_v3pop): Likewise.
	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
	Adjust renamed variables.
	(nds32_output_stack_pop): Likewise.

2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
	code in comment.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/65321
	* cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
	than shift mode.
	* var-tracking.c (use_narrower_mode): Likewise.

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

	PR tree-optimization/65355
	* varasm.c (notice_global_symbol): Do not produce RTL.
	* symtab.c (symtab_node::can_increase_alignment_p): Check for section
	anchor.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
	check for section anchors.

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

	PR target/65286
	* config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
	to be single-arch by default.  Set cpu_is_64bit for powerpc64
	given --with-cpu=native.
	* config/rs6000/t-fprules: Do not set default MULTILIB vars.
	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
	and powerpc64le.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
	rs6000_isa_flags rather than TARGET_64BIT.

2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.

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

	PR lto/65361
	* ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
	on a TREE_BINFO, instead use BINFO_TYPE.

2015-03-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/65270
	* tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
	* fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
	operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
	of that.  When comparing dereferences compare alignment.
	When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.

2015-03-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (check_callers): Check
	node->can_remove_if_no_direct_calls_and_refs_p.
	(growth_likely_positive): Reorganize to call
	can_remove_if_no_direct_calls_p later.
	* cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
	will_be_removed_from_program_if_no_direct_calls_p): Add
	will_inline parameter.
	* cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
	cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
	Handle inliner case correctly.

2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63743
	* cfgexpand.c (reorder_operands): Also reorder if only second operand
	had its definition forwarded by TER.

2015-03-08  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65316
	* ipa-utils.h (types_odr_comparable): Add strict argument.
	* ipa-devirt.c: Fix whitespace;
	(odr_hasher): Remove.
	(odr_name_hasher, odr_vtable_hasher): New hashers.
	(can_be_name_hashed_p): New predicate.
	(hash_type_name): remove.
	(hash_odr_name): New.
	(odr_name_hasher::hash): new.
	(can_be_vtable_hashed_p): New.
	(hash_odr_vtable): New.
	(odr_vtable_hasher::hash): New.
	(types_same_for_odr): Add strict parameter.
	(types_odr_comparable): Likewise.
	(odr_name_hasher::equal): New.
	(odr_vtable_hasher::equal): New.
	(odr_name_hasher::remove): New.
	(odr_hash_type): Change to hash_table<odr_name_hasher>.
	(odr_vtable_hash_type): New.
	(odr_vtable_hash): New.
	(odr_subtypes_equivalent_p): Do strict comparsion.
	(add_type_duplicate): Merge type names; cleanup; avoid type
	duplicates.
	(register_odr_type): Initialize vtable hash.
	(build_type_inheritance_graph): Likewise
	(get_odr_type): Reorg to use two hashes.
	(dump_possible_polymorphic_call_targets): Move sanity check after debug
	output.
	(ipa_devirt): Dump type_inheritance_graph.
	(types_same_for_odr): Add strict mode.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65334
	* cgraph.h (symtab_node): Add definition_alignment,
	can_increase_alignment_p and increase_alignment.
	* symtab.c (symtab_node::can_increase_alignment_p,
	increase_alignment_1, symtab_node::increase_alignment,
	symtab_node::definition_alignment): New.
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
	can_increase_alignment_p.
	* tree-vectorizer.c (increase_alignment): Use increase_alignment.
	* tree-vect-stmts.c (ensure_base_align): Likewise.
	* varasm.c (function_section_1): Use definition_alignment.
	(assemble_start_function): Likewise.
	(emit_local): likewise.
	(build_constant_desc): Likewsie.
	(output_constant_def_contents): Likewise.
	(place_block_symbol): Likewise.
	(output_object_block): Likewise.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65316
	* tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
	when outputting debug.

2015-03-07  Marek Polacek  <polacek@redhat.com>
	    Martin Uecker  <uecker@eecs.berkeley.edu>

	PR sanitizer/65280
	* doc/invoke.texi: Update description of -fsanitize=bounds.

2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* tree-ssa-phiopt.c (neg_replacement): Remove.
	(tree_ssa_phiopt_worker): Remove negate optimization.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65302
	* value-prof.c (gimple_ic): Pure dead eh edges when needed.

2015-03-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/64928
	* tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
	and liveout_obstack members.
	(calculate_live_on_exit): Remove.
	(calculate_live_ranges): Change declaration.
	* tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
	(new_tree_live_info): Adjust.
	(calculate_live_ranges): Delete livein when not wanted.
	(calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
	Deal with partly deleted live info.
	(loe_visit_block): Remove temporary bitmap by using
	bitmap_ior_and_compl_into.
	(live_worklist): Adjust accordingly.
	(calculate_live_on_exit): Make static.
	* tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
	we do not need livein.

2015-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* real.c (real_from_string): Fix typo in assertion.

2015-03-06  Alex Velenko  <alex.velenko@arm.com>

	* ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
	the patch.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.

2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64342
	* lra-assigns.c (find_hard_regno_for): Rename to
	find_hard_regno_for_1.  Add a new parameter.
	(find_hard_regno_for): New function using find_hard_regno_for_1.

2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/65067
	* expmed.c (store_bit_field, extract_bit_field): Reworked the
	strict volatile bitfield handling.

2015-03-05  Martin Liska  <mliska@suse.cz>

	PR ipa/65318
	* ipa-icf.c (sem_variable::equals): Compare variables types.

2015-03-05  Richard Henderson  <rth@redhat.com>

	PR target/65121
	* config/arm/arm.c (arm_function_in_section_p): Fix predicate to
	correctly check weak symbol binding.

2015-03-05  Steve Ellcey  <sellcey@imgtec.com>

	PR middle-end/65315
	* cfgexpand.c (expand_stack_vars): Update large_align to maximum
	needed alignment.

2015-03-05  Martin Liska  <mliska@suse.cz>

	* ipa-inline.c (inline_small_functions): Set default value to
	prevent warning during bootstrap.
	* tree.h: Add pragma guard that ignores false positives during
	bootstrap.

2015-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65310
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
	Properly preserve alignment of the base of the access.

2015-03-05  Richard Biener  <rguenther@suse.de>

	PR ipa/65270
	* ipa-icf-gimple.c (func_checker::compare_memory_operand):
	Compare dependence info.

2015-03-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/65233
	* ipa-polymorphic-call.c: Include tree-ssa-operands.h and
	tree-into-ssa.h.
	(walk_ssa_copies): Revert last chage.  Instead do not walk
	SSA names registered for SSA update.

2015-03-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65270
	* ipa-icf.c (sem_item::compare_cgraph_references): Compare
	vtable references for their containing type.
	(sem_function::equals_wpa): Compare TYPE_RESTRICT
	and type attributes.

2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (round_up_loc): Cast divisor to signed on all paths
	before negating it.
	* stor-layout.c (finalize_record_size): Revert latest change.

2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.

2015-03-03  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
	for correct comdat handling.
	(cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
	Likewise.
	* cgraph.h (call_for_symbol_and_aliases): Fix formating.
	(used_from_object_file_p_worker): Remove.
	(cgraph_node::only_called_directly_or_alised): Add
	used_from_object_file_p.
	* ipa-inline-analysis.c (growth_likely_positive): Optimie.
	* ipa-inline-transform.c (can_remove_node_now_p_1): Use
	can_remove_if_no_direct_calls_and_refs_p.

2015-03-04  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.h (enum reg_class): Remove real registers from
	General register class.
	* config/rl78/rl78-real.md: Replace general register constraints
	with real+virtual register constraints.

2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
	from checking for -mhtm option.

2015-03-03  Jan Hubicka  <hubicka@ucw.cz>

	* tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
	(struct ipa_sra_check_caller_data): Add has_thunk field.
	(ipa_sra_check_caller): Check for thunk.
	(ipa_sra_preliminary_function_checks): Give up on function with
	thunks.
	(ipa_early_sra): Use call_for_symbol_and_aliases.

2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65249
	* config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
	called for __stack_chk_guard symbol.

2015-03-03  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
	inc/dec.
	(*addhi3_real): Likewise.
	* config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
	pattern to match incrementing memory.
	* config/rl78/predicates.md (rl78_1_2_operand): New.
	* config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
	it's the same and only mem.
	(rl78_alloc_physical_registers_op2): If there's effectively only
	one MEM, transcode it into HL.
	(rl78_far_p): Reject addresses that aren't legitimate.

2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
	negating it.

	* tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.

2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>

	Implement call0 ABI for xtensa
	* config/xtensa/constraints.md ("a" constraint): Include stack
	pointer in case of call0 ABI.
	("q" constraint): Make empty in case of call0 ABI.
	("D" constraint): Include stack pointer in case of call0 ABI.
	* config/xtensa/xtensa-protos.h (xtensa_set_return_address,
	xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
	prototypes.
	* config/xtensa/xtensa.c (xtensa_callee_save_size): New
	variable.
	(xtensa_regno_to_class): Make it a local variable in the
	function xtensa_regno_to_class.
	(xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
	macro, function prototype and implementation.
	(reg_nonleaf_alloc_order): Make it a local variable in the
	function order_regs_for_local_alloc.
	(xtensa_conditional_register_usage): New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
	(xtensa_valid_move): Allow direct moves to stack pointer
	register in call0 ABI.
	(xtensa_setup_frame_addresses): Only spill register windows in
	windowed ABI.
	(xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
	call0 ABI respectively.
	(xtensa_function_arg_1): Only mark a7 register for copying in
	windowed ABI.
	(xtensa_call_save_reg): New function.
	(compute_frame_size): Add space for callee saved register
	storage to the frame size in call0 ABI.
	(xtensa_expand_prologue): Generate code to set up stack frame
	and save callee-saved registers in call0 ABI.
	(xtensa_expand_epilogue): New function.
	(xtensa_set_return_address): New function.
	(xtensa_return_addr): Calculate return address in call0 ABI.
	(xtensa_builtin_saveregs): Only mark a7 register for copying and
	emit copying code in windowed ABI.
	(order_regs_for_local_alloc): Add preferred register allocation
	order for non-leaf function in call0 ABI.
	(xtensa_static_chain): Add atatic chain passing for call0 ABI.
	(xtensa_asm_trampoline_template): Add trampoline generation for
	call0 ABI.
	(xtensa_trampoline_init): Add trampoline initialization for
	call0 ABI.
	(xtensa_conditional_register_usage, xtensa_regno_to_class): New
	functions.
	* config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
	(TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
	(CALL_USED_REGISTERS): Modify to encode both windowed and call0
	ABI call-used registers.
	(HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
	(INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
	call0 ABI.
	(REG_CLASS_CONTENTS): Include all registers into the preferred
	reload registers set, adjust the set in the
	xtensa_conditional_register_usage.
	(xtensa_regno_to_class): Drop variable declaration.
	(REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
	function.
	(WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
	respectively.
	(FUNCTION_PROFILER): Add _mcount call for call0 ABI.
	(TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
	(RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
	(ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
	location in call0 ABI.
	(EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
	stack adjustment size when handling exception.
	(CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
	* config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
	definitions.
	("return" pattern): Generate ret.n/ret in call0 ABI.
	("epilogue" pattern): Expand epilogue.
	("nonlocal_goto" pattern): Use default in call0 ABI.
	("eh_return" pattern): Move implementation to eh_set_a0_windowed,
	emit eh_set_a0_* depending on ABI.
	("eh_set_a0_windowed" pattern): Former eh_return pattern.
	("eh_set_a0_call0", "blockage"): New patterns.

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

	PR ipa/65287
	* ipa-icf.c (sem_variable::parse): Skip all alias variables.

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

	PR 65138/target
	* config/rs6000/rs6000-tables.opt: Regenerate table.

2015-03-03  Renlin Li  <renlin.li@arm.com>

	* doc/md.texi (@item ^): Change ? into ^.

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

	* doc/tm.texi: Regenerated.

2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>

	* builtins.c (expand_builtin_return_addr): Add
	RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
	surrounding #ifdef.
	* config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
	definition to 1.
	* config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
	Likewise.
	* defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
	undefined.
	* doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
	paragraph.

2015-03-03  Martin Jambor  <mjambor@suse.cz>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (ipa_sra_check_caller_data): New type.
	(has_caller_p): Removed.
	(ipa_sra_check_caller): New function.
	(ipa_sra_preliminary_function_checks): Use it.

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

	* ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
	instead of if branch.

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

	PR ipa/65282
	* ipa-icf.c (sem_variable::equals): Fix wrong condition.

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

	PR tree-optimization/65241
	* tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
	hash table if INSERT is true.

2015-03-03  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.

2015-03-03  Georg-Johann Lay  <avr@gjlay.de>

	PR target/64331
	* config/avr/avr.c (context.h, tree-pass.h): Include them.
	(avr_pass_data_recompute_notes): New static variable.
	(avr_pass_recompute_notes): New class.
	(avr_register_passes): New static function.
	(avr_option_override): Call it.

2015-03-03  Georg-Johann Lay  <avr@gjlay.de>

	Fix various problems with specs file generation.

	PR target/65296
	* config.gcc (extra_gcc_objs) [avr]: Remove.
	* config/avr/driver-avr.c: Remove file.
	* config/avr/t-avr (driver-avr.o): Remove rule.
	(gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
	INCLUDES to build.  Depend on TM_H.
	* config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
	build warnings.  Fix non-matching types and non-existing %-codes.
	(tm.h): Include.
	(*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
	(*libgcc) [WITH_AVRLIBC]: Add "-lm".
	* config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
	* config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
	(CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
	(LIBGCC_SPEC): Remove definitions.

2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
	to create a register in testing mode.

2015-03-03  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65263
	* cgraph.c (cgraph_node::has_thunk_p): New function.
	* cgraph.h (cgraph_node::has_thunk_p: Likewise.
	* ipa-icf.c (redirect_all_callers): Do not redirect thunks.
	(sem_function::merge): Assert is changed.

2015-03-03  Martin Liska  <mliska@suse.cz>
	    Martin Jambor  <mjambor@suse.cz>

	PR ipa/65087
	* ipa-icf.c (sem_item_optimizer::execute): Change function
	return value to boolean.
	(sem_item_optimizer::merge_classes): Likewise.
	(ipa_icf_driver): Return TODO_remove_functions in case there's
	a merge operation processed.
	* ipa-icf.h: Change function return value to boolean.

2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR 65138/target
	* config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
	processor type for 64-bit little endian PowerPC.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
	-mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
	TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
	printing built-in mask so it does not pass NULL pointers.

	* doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
	-mcpu=powerpc64le.

2015-03-02  Steve Ellcey  <sellcey@imgtec.com>

	PR target/58158
	* config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
	!ISA_HAS_FP_CONDMOVE.

2015-03-02  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.md (*udivmod<mode>4_pow2): Remove
	reload_completed.

2015-03-02  Ulrich Drepper  <drepper@gmail.com>

	* doc/invoke.texi (Options for Code Generation Conventions):
	Fix URL of DSO paper.

2015-03-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65130
	* ipa-inline.c (check_callers): Looks for recursion.
	(inline_to_all_callers): Give up on uninlinable or recursive edges.
	* ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
	summary of inline clones.
	(do_estimate_growth_1): Fix recursion check.

2015-03-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64988
	* ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
	comdat groups.

2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
	    Aldy Hernandez  <aldyh@redhat.com>

	PR lto/65276
	* ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
	when checking TYPE_BINFO.

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

	PR ipa/65270
	* ipa-icf-gimple.c: Include builtins.h.
	(func_checker::compare_memory_operand): Compare base alignment.

2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65184
	* config/i386/i386.c (ix86_pass_by_reference): Bounds are never
	passed by reference.

2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65183
	* tree-chkp.c (chkp_check_lower): Don't check against
	zero bounds for already instrumented functions.
	(chkp_check_upper): Likewise.
	(chkp_fini): Clean pass local data to avoid wrong reusage.

2015-02-28  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_variable::equals): Improve debug output;
	get variable constructor.
	(sem_variable::parse): Do not filter out too early; give up on
	volatile and register vars.
	(sem_item_optimizer::filter_removed_items): Filter out nonreadonly
	variables.
	* ipa-icf.h (sem_variable::init): Do not set ctor.
	(sem_variable::ctor): Remove.

2015-03-01  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/65233
	* ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c: Include stor-layout.h
	(sem_function::compare_cgraph_references): Rename to ...
	(sem_item::compare_cgraph_references): ... this one.
	(sem_variable::equals_wpa): New function
	(sem_variable::equals): Do not check stuff already verified by
	equals_wpa.
	(sem_variable::equals): Reorg based on varasm.c:compare_constant.
	* ipa-icf.h (sem_item): Add compare_cgraph_references.
	(sem_function): Remove compare_cgraph_references.
	(sem_variable): Turns equals_wpa into non-inline.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
	(sem_item::add_expr): New function.
	(sem_function::hash_stmt): Handle operands of most statements.
	(sem_variable::get_hash): Hash the actual constructor.
	* ipa-icf.h (sem_item): Add add_expr.
	(sem_function): Update prototype of hash_stmt

2015-02-28  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65245
	* ipa-icf-gimple.c (func_checker::compare_function_decl):
	Remove.
	(func_checker::compare_variable_decl): Skip symtab vars.
	(func_checker::compare_cst_or_decl): Update.
	* ipa-icf.c (sem_function::parse): Do not consider aliases.
	(sem_function::compare_cgraph_references): Add ADDRESS parameter;
	use correct symtab predicates.
	(sem_function::equals_wpa): Update uses of compare_cgraph_references.
	(sem_variable::parse):  Update comment.
	(sem_item_optimizer::build_graph): Consider ultimate aliases
	for references.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
	of OBJ_TYPE_REF.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
	(sem_variable::merge) Likewise.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
	target; also match flag_ipa_devirt.

2015-03-01  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf-gimple.c (func_checker::compare_variable_decl):
	Validate variable alignment.
	* ipa-icf.c (sem_function::equals_private): Be more precise
	about non-common function attributes.
	(sem_variable::equals): Likewise.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65237
	* ipa-icf.c (sem_function::merge): Do not attempt to produce alias
	across COMDAT group boundary.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65232
	* ipa-icf.c (clear_decl_rtl): New function.
	(sem_function::merge): Clear RTL before forming alias.
	(sem_variable::merge): Clear RTL before forming alias.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65236
	* cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.

2015-02-28  Xingxing Pan  <xxingpan@marvell.com>

	* config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
	to neon_to_gp<q>.

2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	* params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
	a typo in the description.

2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64317
	* params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
	* params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
	* lra-constraints.c: Include "params.h".
	(EBB_PROBABILITY_CUTOFF): Use
	LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
	(lra_inheritance): Use '<' instead of '<=' for
	EBB_PROBABILITY_CUTOFF.
	* doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
	Document change.

2015-02-27  Martin Liska  <mliska@suse.cz>

	* ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
	vector length condition.

2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (x86 transactional memory intrinsics):
	Reorganize discussion of _xbegin.  Clarify that the return
	value is a bit mask.  Expand example and move to end of section.

2015-02-26  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	PR rtl-optimization/65220
	* config/i386/i386.md (*udivmod<mode>4_pow2): New.

2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65032
	* lra-remat.c (update_scratch_ops): New.
	(do_remat): Call it.
	* lra.c (lra_register_new_scratch_op): New. Take code from ...
	(remove_scratches): ... here.
	* lra-int.h (lra_register_new_scratch_op): New prototype.

2015-02-27  Marek Polacek  <polacek@redhat.com>

	PR c/65040
	* doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
	-Wformat-signedness anymore.

2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
	function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.

2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (enum s390_builtin):
	Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
	(code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
	(s390_init_builtins): Generate new builtin functions.
	* config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
	(s390_sfpc, s390_efpc): New pattern definitions.

2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
	Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
	(s390_builtin_decls): New array.
	(s390_init_builtins): Put builtin decls into s390_builtin_decls.
	(s390_builtin_decl): New function.
	(TARGET_BUILTIN_DECL): Define macro.

2015-02-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/63175
	* builtins.c (get_object_alignment_2): Make sure to re-apply
	the ANDed mask after recursing to its operand gets us a new
	misalignment bit position.

2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	PR bootstrap/65150
	* ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
	Use address_matters_p.
	(redirect_all_callers, set_addressable): New functions.
	(sem_function::merge): Reorganize and fix merging issues.
	(sem_variable::merge): Likewise.
	(sem_variable::compare_sections): Remove.
	* common.opt (fmerge-all-constants, fmerge-constants): Remove
	Optimization flag.
	* symtab.c (symtab_node::resolve_alias): When alias has aliases,
	redirect them.
	(symtab_node::make_decl_local): Set ADDRESSABLE bit when
	decl is used.
	(address_matters_1): New function.
	(symtab_node::address_matters_p): New function.
	* cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
	check for merged flag.
	* cgraph.h (address_matters_p): Declare.
	(symtab_node::address_taken_from_non_vtable_p): Remove.
	(symtab_node::address_can_be_compared_p): New method.
	(ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
	* ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
	Remove.
	(comdat_can_be_unshared_p_1) Use address_matters_p.
	(update_vtable_references): Fix formating.
	* ipa-ref.c (ipa_ref::address_matters_p): Move inline.
	* cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
	* cgraphclones.c: Preserve merged and icf_merged flags.

2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Function Attributes): Fix spelling and typos.
	(Label Attributes): Likewise.
	(Cilk Plus Builtins): Likewise.
	(ARC SIMD Built-in Functions): Likewise.
	(ARM C Language Extensions (ACLE)): Likewise.
	(PowerPC Built-in Functions): Likewise.
	(PowerPC Hardware Transactional Memory Built-in Functions):
	Likewise.

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

	PR tree-optimization/65216
	* tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
	new stmt and new SSA_NAME for lhs whenever the arguments have
	changed and weren't just swapped.  Fix comment typo.

	PR tree-optimization/65215
	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
	for PDP endian targets.
	(perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
	Fix up formatting issues.
	(bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
	size is smaller than the original, adjust MEM_REF offset by the
	difference of sizes.  Use is_gimple_mem_ref_addr instead of
	is_gimple_min_invariant test to avoid adding address temporaries.

2015-02-26  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64693
	* ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
	(sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
	(sem_item_optimizer::process_cong_reduction): Include division by
	sensitive references.
	* ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
	* ipa-ref.c (ipa_ref::address_matters_p): New function.
	* ipa-ref.h (ipa_ref::address_matters_p): Likewise.

2015-02-26  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65192
	* config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
	Remove.
	* config/avr/avr.c: Same.
	(avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
	Refuse any constant address not in 0..0xbf.
	* config/avr/avr.md (*mov<mode>, *movsf): Remove
	tiny_valid_direct_memory_access_range from insn conditions.
	(mov<mode>): Don't special-case expansion of avrtiny addresses.

2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/61142
	* config/sh/sh.c (sh_check_add_incdec_notes): New function.
	* config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
	* config/sh/predicates.md (const_logical_operand): New predicate.
	* config/sh/sh.md: Add new peephole2 patterns.

2015-02-26  Marek Polacek  <polacek@redhat.com>

	PR ipa/65008
	* ipa-inline.c (early_inliner): Recompute inline parameters.

2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65171
	* config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
	instructions with TImode operands are included in the analysis.

2015-02-26  Sebastian Pop  <s.pop@samsung.com>

	* tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
	of an EDGE_FSM_THREAD.

2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>

	* config/rs6000/htm.md (tcheck): Fix assembly encoding.

2015-02-25  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/46102
	* dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.

2015-02-26  Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/65048
	* tree-ssa-threadupdate.c (valid_jump_thread_path): New.
	(thread_through_all_blocks): Call valid_jump_thread_path.
	Remove invalid FSM jump-thread paths.

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

	* passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
	(ipa_write_optimization_summaries): Likewise.
	* tree-streamer.h: Include data-streamer.h.
	(streamer_mode_table): Declare extern variable.
	(bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
	* lto-streamer-out.c (lto_output_init_mode_table,
	lto_write_mode_table): New functions.
	(produce_asm_for_decls): Call lto_write_mode_table when streaming
	offloading LTO.
	* lto-section-in.c (lto_section_name): Add "mode_table" entry.
	(lto_create_simple_input_block): Add mode_table argument to the
	lto_input_block constructors.
	* ipa-prop.c (ipa_prop_read_section, read_replacements_section):
	Likewise.
	* data-streamer-in.c (string_for_index): Likewise.
	* ipa-inline-analysis.c (inline_read_section): Likewise.
	* ipa-icf.c (sem_item_optimizer::read_section): Likewise.
	* lto-cgraph.c (input_cgraph_opt_section): Likewise.
	* lto-streamer-in.c (lto_read_body_or_constructor,
	lto_input_toplevel_asms): Likewise.
	(lto_input_mode_table): New function.
	* tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
	pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
	Use bp_pack_machine_mode.
	* real.h (struct real_format): Add name field.
	* lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
	(class lto_input_block): Add mode_table member.
	(lto_input_block::lto_input_block): Add mode_table_ argument,
	initialize mode_table.
	(struct lto_file_decl_data): Add mode_table field.
	(lto_input_mode_table, lto_output_init_mode_table): New prototypes.
	* tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
	unpack_ts_decl_common_value_fields,
	unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
	* tree-streamer.c (streamer_mode_table): New variable.
	* real.c (ieee_single_format, mips_single_format,
	motorola_single_format, spu_single_format, ieee_double_format,
	mips_double_format, motorola_double_format,
	ieee_extended_motorola_format, ieee_extended_intel_96_format,
	ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
	ibm_extended_format, mips_extended_format, ieee_quad_format,
	mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
	decimal_single_format, decimal_double_format, decimal_quad_format,
	ieee_half_format, arm_half_format, real_internal_format): Add name
	field.
	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.

2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR target/65161
	* config/i386/i386.c (ix86_sched_reorder): Skip instruction
	reordering for selective scheduling.

2015-02-26  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
	* config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
	(arm_arch_no_volatile_ce): Declare new global variable.
	* config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
	(arm_option_override): Assign value to arm_arch_no_volatile_ce.
	* config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
	(TARGET_NO_VOLATILE_CE): New macro.
	* config/arm/arm.md (arm_comparison_operator): Disabled if not allow
	volatile memory access in IT block

2015-02-25  Kai Tietz  <ktietz@redhat.com>

	PR tree-optimization/61917
	* tree-vect-loop.c (vectorizable_reduction): Handle obvious case
	that reduc_def_stmt is null.

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

	* ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
	hard register variables.

2015-02-25  Kai Tietz  <ktietz@redhat.com>

	PR target/64212
	* symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
	(symtab::noninterposable_alias): Likewise.

2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65167
	* config/i386/i386.c (ix86_function_arg_regno_p): Support
	bounds registers.
	(avoid_func_arg_motion): Add dependencies for BNDSTX insns.

2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/64997
	* config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
	as split condition; force split via '#' in output pattern.

2015-02-25  Richard Biener  <rguenther@suse.de>
	    Kai Tietz  <ktietz@redhat.com>

	PR tree-optimization/61917
	* tree-vect-loop.c (vectorizable_reduction): Allow
	vect_internal_def without reduction to exit graceful.

2015-02-25  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65196
	* config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
	only with NONDEBUG_INSN_P.

2015-02-25  Georg-Johann Lay  <avr@gjlay.de>

	Use variadic macros with avr-log.c.

	* config/avr/avr-protos.h (avr_vdump): New prototype.
	(avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
	(avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
	* config/avr/avr-log.c: Adjust comments.
	(avr_vdump): New function.
	(avr_vadump): Pass caller as 2nd argument instead of format string.
	(avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
	(avr_log_set_caller_e, avr_log_set_caller_f): Remove.

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

	PR lto/64374
	* target.def (target_option_stream_in): New target hook.
	* tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
	targetm.target_option.post_stream_in if non-NULL.
	* doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
	* doc/tm.texi: Updated.
	* config/i386/i386.c (ix86_function_specific_post_stream_in): New
	function.
	(TARGET_OPTION_POST_STREAM_IN): Redefine.

2015-02-24  Jeff Law  <law@redhat.com>

	PR target/65117
	* config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
	of operand 0 and operand 2.
	(zero_cost_loop_end, loop_end): Similarly.

2015-02-24  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
	CXX_MEM_STAT_INFO.

2015-02-24  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
	* config/rl78/rl78-expand.md (movsf): New, same as movsi.
	* config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
	instead of hardcoding SImode.

2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>

	* omp-low.c (create_omp_child_function): Tag entrypoint
	functions with a special attribute.

2015-02-24  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	PR target/65058
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.

2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65123
	* lra-remat.c (operand_to_remat): Check hard regs in insn
	definition too.

2015-02-24  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
	to the assembler.

2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/64625
	* omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
	BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
	(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
	BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
	(BUILT_IN_GOACC_PARALLEL): Specify as
	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
	* builtin-types.def
	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
	(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
	Remove function types.
	(BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
	(BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
	New function types.

2015-02-24  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.

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

	PR tree-optimization/65170
	* wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
	if val[1] < 0, clear also val[2] and return 3.

2015-02-24  Alan Modra  <amodra@gmail.com>

	PR target/65172
	* config/rs6000/rs6000.c (get_memref_parts): Only return true
	when *base is a reg.  Handle nested plus addresses.  Simplify
	pre_modify test.

2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
	use natural alignment when optimizing for size.

2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65153
	* config/sh/sh.md (movsicc_true+3): Remove peephole.
	* config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
	* config/sh/sh.c (replace_n_hard_rtx): Remove.

2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>

	PR fortran/63427
	* wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
	too big for a wide_int.  Implement missing wrapping operation.

2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65163
	* config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
	instead of const_int 4294901760.

2015-02-23  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr: Fix typo in comment.

2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/rtl.texi (fma): Clarify documentation.

2015-02-20  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/58123
	* gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
	over input_location.

2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>

	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
	unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
	restrict alignments to absolute_biggest_alignment.
	* config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
	Define.
	* doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
	* doc/tm.texi: Regenerate.
	* target.def (absolute_biggest_alignment): New DEFHOOKPOD.

2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64172
	* ira-color.c (color_pass): Prevent splitting multi-register pseudos.

2015-02-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65136
	* tree-ssa-propagate.c: Include cfgloop.h.
	(replace_phi_args_in): Avoid replacing loop latch edge PHI
	arguments with constants.

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

	PR target/63892
	* ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
	don't try to create_thunk if stdarg_p.  If
	!sem_item::target_supports_symbol_aliases_p (), similarly, and try to
	redirect_callers if possible.
	(sem_item_optimizer::execute): Call unregister_hooks here...
	(ipa_icf_driver): ... instead of here.

2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
	Mark operand 0 as earlyclobber in 2nd alternative.
	(1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
	Write negated shift amount into QI lowpart operand 0 and use it
	in the shift step.
	(2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.

2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>

	* cgraph.h (clone_function_name_1): Declare.
	* cgraphclones.c (clone_function_name_1): New function.
	(clone_function_name): Use it.
	* lto-partition.c: Include "stringpool.h".
	(must_not_rename, maybe_rewrite_identifier)
	(validize_symbol_for_target): New static functions.
	(privatize_symbol_name): Use must_not_rename.
	(promote_symbol): Call validize_symbol_for_target.
	(lto_promote_cross_file_statics): Likewise.
	(lto_promote_statics_nonwpa): Likewise.

2015-02-20  Georg-Johann Lay  <avr@gjlay.de>

	PR target/64452
	* config/avr/avr.md (pushhi_insn): New insn.
	(push<mode>1): Push virtual regs in one chunk using pushhi1_insn.

2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* tree-streamer.c (preload_common_nodes): Don't preload
	TI_VA_LIST* for offloading.
	* tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
	in_lto_p.

2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>

	* config/pa/pa.c (pa_emit_move_sequence): Always force
	(const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
	note on insn.

	* config/pa/pa.c (pa_reloc_rw_mask): New function.
	(TARGET_ASM_RELOC_RW_MASK): Define.
	(pa_cannot_force_const_mem): Revert previous change.

2015-02-19  Martin Jambor  <mjmabor@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65028
	* ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
	across jump functions.

2015-02-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.

2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.

2015-02-19  Richard Henderson  <rth@redhat.com>

	PR middle-end/65074
	* varasm.c (default_binds_local_p_2): Don't test node->definition;
	test DECL_EXTERNAL independent of symtab_node.

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

	PR lto/65012
	* varpool.c (varpool_node::get_constructor): Return early
	if this->lto_file_data is NULL.

2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
	(rank_for_schedule_debug): Update.
	(ready_sort): Make static.  Move sorting logic to ...
	(ready_sort_debug, ready_sort_real): New static functions.
	(schedule_block): Sort both debug insns and real insns in preparation
	for ready list trimming.  Improve debug output.
	* sched-int.h (ready_sort): Remove global declaration.

2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>

	* ipa-icf.c (sem_function::equals_private): Adjust.
	(sem_function::bb_dict_test): Take a vec<int> * instead of
	auto_vec<int>.
	* ipa-icf.h (bb_dict_test): Likewise.

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

	PR gcov-profile/64634
	* tree-eh.c (frob_into_branch_around): Fix up typos
	in function comment.
	(lower_catch): Put eh_seq resulting from EH lowering of
	the cleanup sequence after the cleanup rather than before it.

2015-02-18  Tom de Vries  <tom@codesourcery.com>

	* common.opt (fstdarg-opt): New option.
	* tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
	* doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
	(@item -fstdarg-opt): New item.

2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65064
	* config/ia64/predicates.md (sdata_symbolic_operand): Return false
	for common symbols.

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

	* config/i386/t-intelmic (mkoffload.o): Remove dependency on
	insn-modes.h.
	(ALL_HOST_OBJS): Add mkoffload.o.
	* config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.

2015-02-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
	(compare_virtual_tables): Be smarter about skipping typeinfos;
	do sane output on virtual table table mismatch.
	(warn_odr): Be ready for forward declarations of enums;
	output sane info on base mismatch and virtual table mismatch.
	(add_type_duplicate): Fix code choosing prevailing type; do not ICE
	when only one type is polymorphic.
	(get_odr_type): Fix hashtable corruption.
	(dump_odr_type): Dump mangled names.

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

	PR tree-optimization/65063
	* tree-predcom.c (determine_unroll_factor): Return 1 if we
	have replaced looparound PHIs.

2015-02-18  Martin Liska  <mliska@suse.cz>

	* lto-streamer.c (lto_streamer_init): Encapsulate
	streamer_check_handled_ts_structures with checking macro.

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

	PR ipa/65087
	* cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
	section if !implicit_section.
	(cgraph_node::create_version_clone_with_body): Likewise.
	* trans-mem.c (ipa_tm_create_version): Likewise.

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

	PR tree-optimization/62217
	* tree-ssa-dom.c (cprop_operand): Avoid propagating copies
	into BIVs.

2015-02-18  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/65081
	* ubsan.c (OBJSZ_MAX_OFFSET): Define.
	(ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
	is in range [-16K, -1].  Don't issue run-time error if
	(ptr > ptr + offset).

2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/install.texi (nvptx-*-none): New section.
	* doc/invoke.texi (Nvidia PTX Options): Likewise.
	* config/nvptx/nvptx.opt: Update.

	* config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
	(access_check): New functions, copied from
	config/i386/intelmic-mkoffload.c.
	(main): For non-installed testing, look in all COMPILER_PATHs for
	GCC_INSTALL_NAME.

	* config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.

2015-02-18  Andrew Pinski  <apinski@cavium.com>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
	Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.

2015-02-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Only
	check locality if node is not already local.
	* ipa-inline.c (want_inline_function_to_all_callers_p): Use
	call_for_symbol_and_aliases instead of
	call_for_symbol_thunks_and_aliases.
	(ipa_inline): Likewise.
	* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
	first walk aliases.
	* ipa.c (symbol_table::remove_unreachable_nodes): Use
	call_for_symbol_and_aliases.
	* ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
	(ipa_propagate_frequency_1): Use it; use opt_for_fn
	(ipa_propagate_frequency): Update.
	(ipa_profile): Add opt_for_fn gueards.

2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.opt (mcbranch-force-delay-slot): New option.
	* doc/invoke.texi (SH options): Document it.
	* config/sh/sh.c (sh_insn_length_adjustment): Check
	TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.

2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>

	* common.opt (fipa-cp-alignment): New.
	* ipa-cp.c (ipcp_store_alignment_results): Check
	flag_ipa_cp_alignment.
	* opts.c (default_options_table): Enable -fipa-cp-alignment for
	-O2.
	(enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
	* doc/invoke.texi: Document -fipa-cp-alignment.

2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64793
	* config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
	to nil.  Adjust comments.

2015-02-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Only
	check locality if node is not already local.
	* ipa-inline.c (want_inline_function_to_all_callers_p): Use
	call_for_symbol_and_aliases instead of
	call_for_symbol_thunks_and_aliases.
	(ipa_inline): Likewise.
	* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
	first walk aliases.
	* ipa.c (symbol_table::remove_unreachable_nodes): Use
	call_for_symbol_and_aliases.
	* ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
	(ipa_propagate_frequency_1): Use it; use opt_for_fn
	(ipa_propagate_frequency): Update.
	(ipa_profile): Add opt_for_fn guards.

2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/mkoffload.c (parse_file): Fix logic error in
	skipping of "strange" tokens.

2015-02-17  Jeff Law  <law@redhat.com>

	* tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
	obsolete comment.

2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>

	* haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
	as forcing a HARD_DEP between instructions, thereby
	disallowing rewriting to break dependencies.

2015-02-16  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
	* lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
	variables in boundary that have no inlitalizer encoded and are
	not aliases.
	* varasm.c (default_binds_local_p_2): External definitions do not
	count as definitions here.

2015-02-16  Jeff Law  <law@redhat.com>

	PR tree-optimization/64823
	* tree-vrp.c (identify_jump_threads): Handle blocks with no real
	statements.
	* tree-ssa-threadedge.c (potentially_threadable_block): Allow
	threading through blocks with PHIs, but no statements.
	(thread_through_normal_block): Distinguish between blocks where
	we did not process all the statements and blocks with no statements.

2015-02-16  Jakub Jelinek  <jakub@redhat.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>

	PR ipa/64963
	* cgraphclones.c (cgraph_node::create_virtual_clone): Copy
	section if not linkonce.  Fix up formatting.
	(cgraph_node::create_version_clone_with_body): Copy section.
	* trans-mem.c (ipa_tm_create_version): Likewise.

2015-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65077
	* tree-ssa-structalias.c (get_constraint_for_1): Handle
	IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
	(find_func_aliases): Allow float values to carry pointers again.

2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/install.texi (Specific): Reorder targets list to put
	aarch64 in alphabetical order.  Add a link to aarch64*-*-*
	from the top menu.

2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
	    David Edelsohn  <dje.gcc@gmail.com>

	PR target/65058
	* config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
	mapping class to external variable or function reference.
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
	mapping class.

2015-02-16  David Eelsohn  <dje.gcc@gmail.com>

	PR target/53348
	* config/rs6000/rs6000.c (rs6000_declare_alias): Only use
	ASM_WEAKEN_DECL if defined.

2015-02-16  Richard Biener  <rguenther@suse.de>

	PR lto/65015
	* varasm.c (default_file_start): For LTO produced units
	emit <artificial> as file directive.

2015-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63593
	* tree-predcom.c (execute_pred_commoning_chain): Delay removing
	stmts and releasing SSA names until...
	(execute_pred_commoning): ... after processing all chains.

2015-02-16  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65059
	* ipa-comdats.c (ipa_comdats): Do not categorize thunks to
	external functions.

2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/bugreport.texi: Adjust section titles throughout the file
	to use "Title Case".
	* doc/extend.texi: Likewise.
	* doc/gcov.texi: Likewise.
	* doc/implement-c.texi: Likewise.
	* doc/implement-cxx.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/objc.texi: Likewise.
	* doc/standards.texi: Likewise.
	* doc/trouble.texi: Likewise.

2015-02-15  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (symtab_node::has_aliases_p): Simplify.
	(symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
	* tree.c (lookup_binfo_at_offset): Make static.
	(get_binfo_at_offset): Do not shadow offset; add explanatory
	comment.

2015-02-15  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_secondary_reload): Request a secondary reload
	for all floading point loads and stores except those using a register
	index address.
	* config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
	to a register.

2015-02-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (growth_data): Add uninlinable field.
	(do_estimate_growth_1): Record if any uninlinable edge was seen.
	(estimate_growth): Handle uninlinable edges correctly.
	(check_callers): New.
	(growth_likely_positive): Handle aliases correctly.

2015-02-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-chkp.c: Use iterate_direct_aliases.
	* symtab.c (resolution_used_from_other_file_p): Move inline.
	(symtab_node::create_reference): Fix formating.
	(symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
	(symtab_node::iterate_reference): Move inline.
	(symtab_node::iterate_referring): Move inline.
	(symtab_node::iterate_direct_aliases): Move inline.
	(symtab_node::used_from_object_file_p_worker): Inline into ...
	(symtab_node::used_from_object_file_p): ... this one; move inline.
	(symtab_node::call_for_symbol_and_aliases): Move inline;
	use iterate_direct_aliases.
	(symtab_node::call_for_symbol_and_aliases_1): New method.
	(cgraph_node::call_for_symbol_and_aliases): Move inline;
	use iterate_direct_aliases.
	(cgraph_node::call_for_symbol_and_aliases_1): New method.
	(varpool_node::call_for_node_and_aliases): Rename to ...
	(varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
	use iterate_direct_aliases.
	(varpool_node::call_for_symbol_and_aliases_1): New method.
	* ipa.c (ipa_single_use): Use iterate_direct_aliases.
	(ipa_discover_readonly_nonaddressable_var): Update.
	* ipa-devirt.c: Fix formating.
	* cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
	Move inline.
	(cgraph_node::call_for_symbol_and_aliases): Move inline.
	(cgraph_node::call_for_symbol_and_aliases_1): New function..
	* cgraph.h (used_from_object_file_p_worker): Remove.
	(resolution_used_from_other_file_p): Move inline.
	(symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
	(symtab_node::iterate_reference): Move inline.
	(symtab_node::iterate_referring): Move inline.
	(symtab_node::iterate_direct_aliases): Move inline.
	(symtab_node::used_from_object_file_p_worker): Inline into ...
	(symtab_node::used_from_object_file_p): Move inline.
	* tree-emutls.c (ipa_lower_emutls): Update.
	* varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
	(varpool_node::call_for_node_and_aliases): Remove.

2015-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/62209
	* tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
	op == range->exp, insert seq and gimplified code after labels
	instead of after the phi.

2015-02-13  Jeff Law  <law@redhat.com>

	PR bootstrap/65060
	Revert my change for tree-optimization/64823.

2015-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65053
	* tree-ssa-phiopt.c (value_replacement): When moving assign before
	cond, either reset VR on lhs or set it to phi result VR.

2015-02-13  Jeff Law  <law@redhat.com>

	PR tree-optimization/64823
	* tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
	* tree-ssa-threadedge.c (potentially_threadable_block): Allow
	threading through blocks with PHIs, but no statements.
	(thread_through_normal_block): Distinguish between blocks where
	we did not process all the statements and blocks with no statements.

	PR rtl-optimization/47477
	* match.pd (convert (plus/minus (convert @0) (convert @1): New
	simplifier to narrow arithmetic.

2015-02-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65028
	* ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
	polymorphic call info when type is not known to be preserved.

2015-02-13  Maritn Jambor  <mjambor@suse.cz>

	PR ipa/65028
	* ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
	(inline_call): Use it.

2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
	GOMP_DEVICE_NVIDIA_PTX.

2015-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/65034
	* stmt.c (emit_case_nodes): Use void_type_node instead of
	NULL_TREE as LABEL_DECL type.

2015-02-13  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/constraints.md: Change "Q" and "T" constraints to memory
	constraints.
	* config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
	symbolic references to data to be forced to constant memory on the
	SOM target.

2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR tree-optimization/65002
	* tree-cfg.c (pass_data_fixup_cfg): Don't update
	SSA on start.
	* tree-sra.c (some_callers_have_no_vuse_p): New.
	(ipa_early_sra): Reject functions whose callers
	assume function is read only.

2015-02-13  Richard Biener  <rguenther@suse.de>

	PR lto/65015
	* dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
	for LTO produced CUs.

2015-02-13  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/64705
	* tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
	* tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
	* tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
	(find_bivs, find_givs_in_stmt_scev): Pass new argument to
	expand_simple_operations.

2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
	    Richard Henderson  <rth@redhat.com>

	PR rtl/32219
	* cgraphunit.c (cgraph_node::finalize_function): Set definition
	before notice_global_symbol.
	(varpool_node::finalize_decl): Likewise.
	* varasm.c (default_binds_local_p_2): Rename from
	default_binds_local_p_1, add weak_dominate argument.  Use direct
	returns instead of assigning to local variable.  Unify varpool and
	cgraph paths via symtab_node.  Reject undef weak variables before
	testing visibility.  Reorder tests for simplicity.
	(default_binds_local_p): Use default_binds_local_p_2.
	(default_binds_local_p_1): Likewise.
	(decl_binds_to_current_def_p): Unify varpool and cgraph paths
	via symtab_node.
	(default_elf_asm_output_external): Emit visibility when specified.

2015-02-13  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
	code setting up r11 for out-of-line fp restore.

2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
	(muser-mode): Likewise.

2015-02-13  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
	or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.

2015-02-12  David Howells  <dhowells@redhat.com>

	* tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
	warning.
	* tree-ssa-uninit.c (dump_predicates): Likewise.
	* opts.c (print_filtered_help): Likewise.

2015-02-12  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (output_die): Use "%s", name instead of name to
	avoid -Wformat-security warning.

	* dwarf2asm.c (dw2_asm_output_vms_delta): Only define
	if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
	* dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
	only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.

2015-02-12  Jason Merrill  <jason@redhat.com>

	* common.opt (-flifetime-dse): New.

2015-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65019
	* ubsan.c (ubsan_expand_objsize_ifn): Always return true.

	PR tree-optimization/65014
	* fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
	use original second operand of arg0 or arg1 instead of
	that adjusted by STRIP_NOPS.

2015-02-11  Jeff Law  <law@redhat.com>

	PR target/63347
	* haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
	that needs to be queued, just queue it for a single cycle.

2015-02-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
	bodies of thunks; comment on why.
	* symtab.c (symtab_node::get_partitioning_class): Aliases of extern
	symbols are extern.

2015-02-11  Richard Henderson  <rth@redhat.com>

	PR sanitize/65000
	* tree-eh.c (mark_reachable_handlers): Mark source and destination
	regions of __builtin_eh_copy_values.

2015-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/65003
	* varasm.c (place_block_symbol): Assert that DECL_RTL of the
	ultimate alias is MEM with SYMBOL_REF satisfying
	SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
	to place_block_symbol, but instead pass the SYMBOL_REF operand of it.

2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
	"diagnostic-core.h".
	(main): Initialize progname, and call diagnostic_initialize.

	* config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
	instead of __OPENMP_TARGET__.

	* config/nvptx/mkoffload.c: Include "gomp-constants.h".
	(process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
	hard-coding PTX_ID.

2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/sourcebuild.texi (pie_enabled): Document.

2015-02-11  Martin Liska  <mliska@suse.cz>

	PR ipa/64813
	* cgraphunit.c (cgraph_node::expand_thunk): Do not create
	a return value for call to a function that is noreturn.

2015-02-11  Richard Biener  <rguenther@suse.de>

	PR lto/65015
	* dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
	and -fresolution.

2015-02-11  Andrew Pinski  <apinski@cavium.com>

	PR target/64893
	* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
	Change the first argument type to size_type_node and add another
	size_type_node.
	(aarch64_simd_expand_builtin): Handle the new argument to
	AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
	print an out when the first two arguments are not
	nonzero integer constants.
	* config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
	Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.

2015-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/61925
	* config/i386/i386.c (ix86_reset_to_default_globals): Removed.
	(ix86_reset_previous_fndecl): Restore it here, unconditionally.
	(ix86_set_current_function): Rewritten.
	(ix86_add_new_builtins): Temporarily clear current_target_pragma
	when creating builtin fndecls.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65005
	* ipa-visibility.c (cgraph_node::non_local_p): Turn into static
	function.
	* symtab.c (symtab_node::verify_base): Remove check that non-definitions
	have no comdat group.
	* lto-cgraph.c (lto_output_node): Always output thunk and alias info.
	(lto_output_varpool_node): Always output alias info.
	(output_refs): Output refs of boundary aliases, too.
	(compute_ltrans_boundary): Add alias and thunk target into boundaries.
	(output_symtab): Output call eges in thunks in boundary.
	(get_alias_symbol): Remove.
	(input_node, input_varpool_node): Do not special case weakrefs.
	* ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
	alias and thunks targets in the boundary; do not take removed symbols
	from their comdat groups.
	* cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
	(cgraph_node::global_info): Remove.
	(cgraph_node::rtl_info): Look through aliases and thunks.
	* cgrpah.h (global_info): Remove.
	(non_local_p): Remove.

2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
	to inline asm.  List dialects in proper order.

2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.

2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
	modified) reference to Solaris.

2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Extended Asm): Fix typos.

2015-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65004
	* ubsan.c (ubsan_expand_vptr_ifn): Always return true.

2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64661
	* config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
	TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
	TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
	* config/sh/constraints.md (Ara, Add): New constraints.
	* config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
	predicates.
	(atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
	atomic_mem_operand_0.  Don't use force_reg on the memory address.
	(atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
	Sra constraint.  Convert to insn_and_split.  Add workaround for
	PR 64974.
	(atomic_compare_and_swap<mode>_hard): Copy to
	atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_0 predicate.
	(atomic_compare_and_swap<mode>_soft_gusa,
	atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
	AraAdd constraints.
	(atomic_compare_and_swap<mode>_soft_tcb,
	atomic_compare_and_swap<mode>_soft_imask,
	atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
	atomic_mem_operand_0 predicate and SraSdd constraints.
	(atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
	constraint.
	(atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
	Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
	(atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
	atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
	force_reg on the memory address.
	(atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
	atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
	atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
	atomic_mem_operand_1 predicate and Sra constraint.
	(atomic_fetch_<fetchop_name><mode>_hard): Copy to
	atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_1 predicate.
	(atomic_<fetchop_name><mode>_hard): Copy to
	atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_1 predicate.
	(atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
	Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
	(atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
	insn_and_split.  Use atomic_mem_operand_1 predicate.
	(atomic_<fetchop_name>_fetch<mode>_hard): Copy to
	atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_1 predicate.
	(atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
	Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
	(atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
	in generated insn with original mem operand before emitting the insn.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa,
	atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
	atomic_<fetchop_name>_fetch<mode>_soft_gusa,
	atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
	Use atomic_mem_operand_1 predicate and AraAdd constraints.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb,
	atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
	atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
	atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
	atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
	atomic_<fetchop_name>_fetch<mode>_soft_tcb,
	atomic_not_fetch<mode>_soft_tcb,
	atomic_<fetchop_name>_fetch<mode>_soft_imask,
	atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
	atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
	Use atomic_mem_operand_1 predicate and SraSdd constraints.

2015-02-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
	and 3 earlyclobber operands.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	* common.opt (fstack-reuse): Mark as optimization.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64982
	* cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.

2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>

	PR tree-optimization/64326
	* cfghooks.c (make_forwarder_block): Cap frequency of created block.

2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>

	PR gcov-profile/61889
	* gcov-tool.c: Remove wrong #if !defined(_WIN32)

2015-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64995
	* tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
	value we use is final.
	(visit_reference_op_store): Always valueize op.
	(visit_use): Properly valueize vuses.

2015-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64909
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
	pass a scalar-stmt count estimate to the cost model.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.

2015-02-10  Alexander Monakov  <amonakov@ispras.ru>

	* doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
	enabled by default together with var-tracking.

2015-02-10  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c: Remove DIV attribute code accidentally
	included in previous rl78 commit.

2015-02-10  Richard Biener  <rguenther@suse.de>

	* tree-streamer.h (streamer_read_tree_bitfields): Adjust.
	* tree-streamer-in.c (streamer_read_tree_bitfields): Do not
	return the bitpack.

2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>

	PR gcov-profile/61889
	* config.in: regenerate.
	* configure.in: Likewise.
	* configure.ac: Check for ftw.h.
	* gcov-tool.c: Check for ftw.h before using nftw.

2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>

	PR lto/64076
	* ipa-visibility.c (update_visibility_by_resolution_info): Only
	assert when not in lto mode.

2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>

	* ira-color.c (setup_left_conflict_sizes_p): Simplify
	initialization/assignment of conflict_size.

2015-02-09  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64978
	* ipa-cp.c (gather_caller_stats): Skip thunks.
	(propagate_constants_topo): Skip aliases.

2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64761
	* config/sh/sh.c (sh_option_override): Don't change
	-freorder-blocks-and-partition to -freorder-blocks even when
	unwinding is enabled.
	(sh_can_follow_jump): Return false if the followee jump is
	a crossing jump when -freorder-blocks-and-partition is specified.
	* config/sh/sh.md (*jump_compact_crossing): New insn.

2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64761
	* config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
	* config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
	(sh_can_redirect_branch): Rename to ...
	(sh_can_follow_jump): ... this.  Constify argument types.
	* config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
	* doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
	* reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
	* doc/tm.texi: Regenerate.

2015-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64981
	* builtins.c (expand_builtin): Call targetm.expand_builtin
	for BUILT_IN_MD builtins regardless of asan_intercepted_p.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61548
	* tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* ipa-icf.c (set_local): New function.
	(sem_function::merge): Use it.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_types_equivalent_p): Fix formating.
	(add_type_duplicate): Fix comparison of BINFOs.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
	on getting VOID pointer.

2015-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/64979
	* tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
	va_list escapes.

2015-02-09  Richard Biener  <rguenther@suse.de>

	* genmatch.c (replace_id): Copy expr_type.

2015-02-09  Richard Biener  <rguenther@suse.de>

	* tree-streamer.h (streamer_pack_tree_bitfields): Remove.
	(streamer_write_tree_bitfields): Declare.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
	properly unpack padding.
	(unpack_value_fields): Inline ...
	(streamer_read_tree_bitfields): ... here.
	* tree-streamer-out.c (pack_ts_base_value_fields): Inline
	and properly add padding bits.
	(streamer_pack_tree_bitfields): Fold into ...
	(streamer_write_tree_bitfields): ... this new function,
	exposing the bitpack object.
	* lto-streamer-out.c (lto_write_tree_1): Call
	streamer_write_tree_bitfields.

2015-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54000
	* tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
	(struct ivopts_data): Add loop_loc member.
	(tree_ssa_iv_optimize_loop): Dump loop location.
	(create_new_ivs): Likewise, also dump number of IVs generated.

2015-02-09  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
	just if not yet registered.
	(ipa_icf_generate_summary): Register callgraph hooks.

2015-02-08  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (gty_dummy): Delete.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
	(cgraph_node::local_p): Remove thunk related FIXME.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* i386.c (ix86_function_regparm): Look through aliases to see if callee
	is local and optimized.
	(ix86_function_sseregparm): Likewise; also use target's SSE math
	settings; error out instead of silently generating wrong code
	on mismatches.
	(init_cumulative_args): Look through aliases.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* ipa-split.c (execute_split_functions): Split if function has aliases.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
	aliases before trying to expand it.
	(cgraph_node::expand_thunk): Fix formating.

2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Function Attributes [naked]): Copy-edit.
	(Using Assembly Language with C): Expand introduction.
	(Basic Asm): Copy-edit.  Add more information about uses of
	basic asm.
	(Extended Asm): Copy-edit.  Document new escape syntax and
	%l[label] syntax.
	(Global Reg Vars): Copy-edit.
	(Local Reg Vars): Likewise.

2015-02-06  David Edelsohn  <dje.gcc@gmail.com>

	PR debug/2714
	PR bootstrap/64256
	* xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
	(DBX_CONTIN_CHAR): Define.

2015-02-06  Sebastian Pop  <s.pop@samsung.com>
	    Brian Rzycki  <b.rzycki@samsung.com>

	PR tree-optimization/64878
	* tree-ssa-threadedge.c: Include tree-ssa-loop.h.
	(fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
	Stop recursion at loop phi nodes after having visited a loop phi node.

2015-02-06  Jakub Jelinek  <jakub@redhat.com>

	* toplev.c (process_options): Change flag_ipa_ra before creating
	optimization_{default,current}_node.

	PR ipa/64896
	* cgraphunit.c (cgraph_node::expand_thunk): If
	restype is not is_gimple_reg_type nor the thunk_fndecl
	returns aggregate_value_p, set restmp to a temporary variable
	instead of resdecl.

2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra_emit_add): Fix a typo in using disp instead of base.

2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64205
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
	add a general secondary reload handler for SDmode, unless we have
	both read/write support for SDmode.

2015-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64937
	* dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
	Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
	or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
	1 before, push it to abstract_vec.
	(dwarf2out_abstract_function): Adjust caller.  Don't call
	set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
	DECL_ABSTRACT_P flags for all abstract_vec elts.

2015-02-06  Renlin Li  <renlin.li@arm.com>

	* tree-ssa-forwprop.c (execute): Keep location info while rewrite
	complex gimple.
	* tree-ssa.c (execute_update_addresses_taken): Likewise.

2015-02-06  Jeff Law  <law@redhat.com>

	PR target/64889
	* config/h8300/h8300.c (push): New argument "in_prologue".
	Pass "in_prologue" along to "F".
	(h8300_push_pop): Corresponding changes.
	(h8300_expand_prologue): Likewise.
	(h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.

2015-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64957
	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
	IOR rather than for AND.

2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/62631
	* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
	of shift-add and (add + shift) operations.  Rename local variable.

2015-02-05  Jeff Law  <law@redhat.com>

	PR target/17306
	* config/h8300/constraints.md (U): Correctly dectect
	"eightbit_data" memory addresses.
	* config/h8300/h8300.c (eightbit_constant_address_p): Also
	handle (const (plus (symbol_ref (x)))) where x is declared
	as an 8-bit data memory address.
	* config/h8300/h8300.md (call, call_value): Correctly detect
	"funcvec" functions.

	PR target/43264
	* config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
	24 to 28 bits for the H8/300.

2015-02-06  Alan Modra  <amodra@gmail.com>

	PR target/64876
	* config/rs6000/rs6000.c (chain_already_loaded): New function.
	(rs6000_call_aix): Use it.

2015-02-05  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
	check.

2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/h8300/constraints.md ("U" constraint): Use strict
	variant of REG_OK_FOR_BASE_P after reload has started.

2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>

	* config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
	define to zero if !TARGET_NEON.
	(TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
	    Trevor Saunders  <tsaunders@mozilla.com>

	PR ipa/61548
	* tree-emultls.c (new_emutls_decl): Resolve alias after creating it.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61548
	* ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
	when removing varpool nodes.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61548
	* varpool.c (varpool_node::remove): Fix order of variables.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64686
	* ipa-inline.c (inline_small_functions): Fix ordering issue between
	speculation resolution and key updates.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (update_indirect_edges_after_inlining): By more careful
	about not letting any speculative edges unupdated.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR gcov/64123
	* gcov-io.c (gcov_var): Export.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/64922
	* ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
	edges that become speculative.

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
	or DW_LANG_Fortran08.
	(lower_bound_default): Return 1 for DW_LANG_Fortran03 or
	DW_LANG_Fortran08.
	(gen_compile_unit_die): Handle "GNU Fortran2003" and
	"GNU Fortran2008" language strings.
	* dbxout.c (get_lang_number): Use lang_GNU_Fortran.
	* langhooks.h (lang_GNU_Fortran): New prototype.
	* langhooks.c (lang_GNU_Fortran): New function.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
	lang_GNU_Fortran.

2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
	(RTX_OK_FOR_OLO10_P): Likewise.

2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/64922
	* gimple.c: Include gimple-ssa.h.
	(maybe_remove_unused_call_args): New function.
	* gimple.h (maybe_remove_unused_call_args): Declare.
	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
	* gimple-fold.c (gimple_fold_call): Likewise.

2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/64905
	* lra-eliminations.c (setup_can_eliminate): Clear hard frame
	pointer alignment if it isn't needed.

2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-cores.def: Add cortex-a72 and
	cortex-a72.cortex-a53.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".

2015-02-04  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
	inside a MEM.

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	* builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
	(DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
	(DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
	of DEF_BUILTIN.
	(BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
	BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
	DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
	(BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
	BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
	BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
	DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
	* tree-core.h (enum built_in_function): In between
	BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
	for builtins that use DEF_BUILTIN_CHKP macro.

2015-02-04  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/64817
	* cfgexpand.c (expand_debug_expr): Compute unsignedp from
	operands for tcc_comparison exprs.  Fix typos.

	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Simplify one
	of two XORs that have an intervening AND or IOR.

	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Rewrite
	simplification of XOR of AND to not allocate new rtx before
	committing to a simplification.

2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
	manual swaps in all peepholes.

2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
	of manual swapping implementation.
	(aarch64_expand_vec_perm_const_1): Likewise.

2015-02-04  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
	(generic_addrcost_table): Remove NAMED_PARAM.
	(cortexa57_addrcost_table): Likewise.
	(xgene1_addrcost_table): Likewise.
	(generic_regmove_table): Likewise.
	(cortexa53_regmove_table): Likewise.
	(xgene1_regmove_table): Likewise.
	(generic_vector_table): Likewise.
	(cortexa57_vector_table): Likewise.
	(xgene1_vector_table): Likewise.
	(generic_tunings): Likewise.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(xgene1_tunings): Likewise.

2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-cores.def: Add cortex-a72 and
	cortex-a72.cortex-a53.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
	* config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Add entries for "cortex-a72" and
	"cortex-a72.cortex-a53".
	* doc/invoke.texi (ARM Options/-mtune): Likewise.

2015-02-04  Nick Clifton  <nickc@redhat.com>

	PR target/64408
	* config/fr30/predicates.md (di_operand): Add SUBREG to the list
	of accepted codes.
	(nonimmediate_di_operand): Likewise.

	* config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
	prefixes of known F5 using MSP430 MCUs.

2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
	* config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
	instead of __builtin_sqrt.

2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>

	* varasm.c (do_assemble_alias): Follow transparent alias
	chain for target.
	(default_assemble_visibility): Follow transparent alias
	chain for decl name.

2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR middle-end/62103
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
	to compute size of referenced value in the constant case.

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

	PR rtl-optimization/64756
	* cse.c (invalidate_dest): New function.
	(cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
	HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
	invalidate and do not record it.

2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64660
	* config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
	atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
	atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
	atomic_nand<mode>_soft_tcb): New insns.
	(atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
	(define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
	Split into atomic_not_fetchsi_hard if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
	(atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
	atomic_not<mode>_hard if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
	insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
	if operands[0] is unused.
	(atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
	into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
	unused.
	(atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_not<mode>_soft_tcb if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
	insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
	if operands[0] is unused.
	(atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
	into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
	(atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
	atomic_nand_fetchsi_hard if operands[0] is unused.
	(atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
	atomic_nand<mode>_hard if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
	into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_nand<mode>_soft_tcb if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
	into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
	(atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
	(atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
	atomic_not<mode>_hard if operands[0] is unused.
	(atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
	unused.
	(atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_not<mode>_soft_tcb if operands[0] is unused.
	(atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
	atomic_nand<mode>_hard if operands[0] is unused.
	(atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_nand<mode>_soft_tcb if operands[0] is unused.

2015-02-03  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64810
	* Makefile.in (GCC_OBJS): Add gcc-main.o.
	* gcc-main.c: New file, containing "main" taken from gcc.c.
	* gcc.c (do_self_spec): Free decoded_options.
	(class driver): Move declaration to gcc.h.
	(main): Move declaration and implementation to new file
	gcc-main.c.
	(driver_get_configure_time_options): New function.
	* gcc.h (class driver): Move this declaration here, from
	gcc.c.
	(driver_get_configure_time_options): New declaration.

2015-02-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (simple_edge_hints): Fix check for
	cross-module inlining.
	* cgraph.h (cgraph_node): Add flag merged.
	* ipa-icf.c (sem_function::merge): Maintain it.

2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
	instead of OBJECT_P.

2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/62631
	* config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
	(TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
	* config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
	int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.

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

	PR other/63504
	* combine.c (reg_n_sets_max): New variable.
	(can_change_dest_mode, reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value_validate,
	get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
	(try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
	(rest_of_handle_combine): Initialize reg_n_sets_max.

2015-02-02  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
	if some always_inline was inlined, apply changes before inlining
	heuristically.

2015-02-02  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64810
	* config/arm/arm.c (arm_option_override): Set
	arm_selected_arch/cpu/tune to NULL on entry.

2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
	    Andrew Pinski  <pinskia@gcc.gnu.org>
	    Jakub Jelinek  <jakub@gcc.gnu.org>

	PR target/64231
	* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
	integer typing for small model. Use IN_RANGE.

2015-02-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
	* tree-vrp.c (vrp_valueize_1): Likewise.

2015-02-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
	than mem for toc_restore.
	* config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
	(call_indirect_aix, call_value_indirect_aix): Adjust to suit.
	(call_indirect_elfv2, call_value_indirect_elfv2): Likewise.

2015-02-01  David Edelsohn  <dje.gcc@gmail.com>

	PR target/64047
	* config/rs6000/rs6000.c (rs6000_set_current_function): Handle
	explicit default options.

2015-02-01  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64872
	* ipa-utils.c (ipa_merge_profiles): Add release argument.
	* ipa-icf.c (sem_function::merge): Do not release body when merging.
	* ipa-utils.h (ipa_merge_profiles): Update prototype.

2015-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64817
	* cfgexpand.c (deep_ter_debug_map): New variable.
	(avoid_deep_ter_for_debug): New function.
	(expand_debug_expr): If TERed SSA_NAME is in
	deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
	instead of trying to expand SSA_NAME's def stmt.
	(expand_debug_locations): When expanding debug bind
	of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
	temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
	value.
	(pass_expand::execute): Call avoid_deep_ter_for_debug on
	all debug bind stmts.  Delete deep_ter_debug_map after
	expand_debug_location if non-NULL and clear it.

2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64851
	* config/sh/sync.md (atomic_fetch_notsi_hard,
	atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
	atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
	atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
	atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
	atomic_not_fetch<mode>_soft_imask): New insns.

2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
	(rank_for_schedule_debug): Split from ...
	(rank_for_schedule): ... this.
	(ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
	* sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.

2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/md.texi (Machine Constraints): Alphabetize table by target.
	* doc/extend.texi (x86 Variable Attributes): Move section to
	correct alphabetization	after renaming.
	(x86 Type Attributes): Likewise.
	(Target Builtins): Re-alphabetize menu.
	(x86 Built-in Functions): Move section to correct alphabetization
	after renaming.
	(x86 transactional memory intrinsics): Likewise.
	* doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
	and x86 Windows Options in table and menu.
	(x86 Options): Move section to correct alphabetization after
	renaming.
	(x86 Windows Options): Likewise.

2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
	preferred names of the architecture and its 32- and 64-bit
	variants.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64882
	* config/i386/predicates.md (address_no_seg_operand): Reject
	non-CONST_INT_P operands in invalid mode.

2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
	address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
	* config/i386/predicates.md (address_no_seg_operand): Call
	address_operand with VOIDmode.
	(vsib_address_operand): Ditto.
	(address_mpx_no_base_operand): Ditto.
	(address_mpx_no_index_operand): Ditto.

2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64688
	* lra-constraints.c (original_subreg_reg_mode): New.
	(simplify_operand_subreg): Try to simplify subreg of const.  Use
	original_subreg_reg_mode for it.
	(swap_operands): Update original_subreg_reg_mode.
	(curr_insn_transform): Set up original_subreg_reg_mode.

2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64617
	* lra-constraints.c (prohibited_class_reg_set_mode_p): New
	function.
	(process_alt_operands): Use it.
	(curr_insn_transform): Check the optional reload pseudo class is
	ok for the mode.

2015-01-30  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c (fatal_error (const char *, ...)): Remove function.
	* diagnostic-core.h (fatal_error (const char *, ...)): Remove
	prototype.
	* toplev.h (init_asm_output): Update comment on use of
	UNKNOWN_LOCATION with fatal_error.
	* cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
	config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
	config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
	config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
	config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
	config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
	config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
	ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
	lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
	lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
	tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
	fatal_error changed to pass input_location as first argument.

2015-01-30  Martin Liska  <mliska@suse.cz>

	* tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
	in #pragma GCC diagnostic guards.

2015-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64829
	* tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
	not add a widening conversion pattern but hand off extra
	widenings to callers.
	(vect_recog_widen_mult_pattern): Handle extra widening produced
	by vect_handle_widen_op_by_const.
	(vect_recog_widen_shift_pattern): Likewise.
	(vect_pattern_recog_1): Remove excess vertical space in dumping.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_init_vector_1): Likewise.
	(vect_get_vec_def_for_operand): Likewise.
	(vect_finish_stmt_generation): Likewise.
	(vectorizable_load): Likewise.
	(vect_analyze_stmt): Likewise.
	(vect_is_simple_use): Likewise.

2015-01-29  Jeff Law  <law@redhat.com>

	* combine.c (try_combine): Fix typo in comment.

2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64580
	* config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
	(rs6000_stack_info): Add assert.
	(rs6000_output_savres_externs): New function, split off from...
	(rs6000_output_function_prologue): ... here.  Do not call it for
	thunks.

2015-01-29  Jeff Law  <law@redhat.com>

	PR target/15184
	* combine.c (try_combine): If I0 is a memory load and I3 a store
	to a related address, increase the "goodness" of doing a 4-insn
	combination with I0-I3.
	(make_field_assignment): Handle SUBREGs in the ior+and case.

2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/64746
	* tree-if-conv.c (mask_exists): New function.
	(predicate_mem_writes): Save created mask with given size for further
	use.
	(stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
	(ifcvt_repair_bool_pattern): Collect all statements that are root
	of bool pattern and use iterative algorithm to remove multiple uses
	of predicates, display number of required iterations.

2015-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64853
	* tree-vrp.c (vrp_valueize_1): Do not return anything if the
	stmt will get simulated again.
	* tree-ssa-ccp.c (valueize_op_1): Likewise.

2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
	return_in_pc.  Remove redundant assignments.
	(thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
	(arm_expand_epilogue): Don't compare boolean with true in if condition.

2015-01-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_mode_after): Make static.

2015-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64844
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
	dump cost model analysis.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Do not register adjusted load/store costs here.

2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
	* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
	using x86_use_pseudo_pic_reg.
	* config/i386/i386.c (ix86_conditional_register_usage): Remove
	support for fixed PIC register.
	(ix86_use_pseudo_pic_reg): Not static any more.

2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR middle-end/64805
	* ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
	to avoid error in cgraph node verification.

2015-01-29  Marek Polacek  <polacek@redhat.com>

	* doc/standards.texi: Reflect that the default for C is gnu11.

2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64761
	* reorg.c (switch_text_sections_between_p): New function.
	(relax_delay_slots): Call it when testing if the jump insn
	is removable.  Use targetm.can_follow_jump when testing if
	the conditional branch can follow an unconditional jump.

2015-01-27  Caroline Tice  <cmtice@google.com>

	Committing VTV Cywin/Ming patch for Patrick Wollgast
	* config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
	if -fvtable-verify=preinit/std is used.
	* config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
	* config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
	* config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
	if -fvtable-verify=preinit/std is used.
	* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
	* config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
	if -fvtable-verify=preinit/std is used.
	* config/i386/mingw-w64.h (LIB_SPEC): Likewise.
	* config/i386/mingw32.h (LIB_SPEC): Likewise.
	* varasm.c (assemble_variable): Add code to properly set the comdat
	section and name for the .vtable_map_vars section in case the
	target is PE or COFF.

2015-01-29  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64801
	* cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
	make sane BB profile.
	(cgraph_node::expand_thunk): Make sane BB profile.
	(cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
	* cgraph.h (init_lowered_empty_function): Update prototype.
	* config/i386/i386.c (make_resolver_func): Update call.
	* predict.c (gate): Disable branch prediction pass if
	profile is already there.

2015-01-29  Jan Hubicka  <hubicka@ucw.cz>

	* optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
	* opth-gen.awk: Likewise.
	* common.opt: Mark flag_fp_contract_mode as Optimization.

2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
	* config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.

2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64659
	* config/sh/predicates.md (atomic_arith_operand,
	atomic_logical_operand): Remove.
	* config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
	(atomic_arith_operand_0): New predicate.
	(atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
	Use atomic_arith_operand_0 for input values.
	(atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
	atomic_compare_and_swap<mode>_soft_gusa,
	atomic_compare_and_swap<mode>_soft_tcb,
	atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
	atomic_arith_operand_0 for newval input.
	(atomic_exchangesi_hard, atomic_exchange<mode>_hard,
	atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
	atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
	fetchop_predicate_1, fetchop_constraint_1_llcs,
	fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
	fetchop_constraint_1_imask): New code iterator attributes.
	(atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
	register_operand.  Use fetchop_predicate_1.
	(atomic_fetch_<fetchop_name>si_hard,
	atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
	register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
	and arith_reg_operand instead of register_operand.  Use
	fetchop_predicate_1, fetchop_constraint_1_gusa.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
	and arith_reg_operand instead of register_operand.  Use
	fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
	to allow R0 usage.
	(atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
	and arith_reg_operand instead of register_operand.  Use
	fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
	to allow R0 usage.
	(atomic_fetch_nand<mode>): Use arith_reg_dest instead of
	register_operand.  Use atomic_logical_operand_1.
	(atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
	atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
	Use arith_reg_dest and arith_reg_operand instead of register_operand.
	Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
	(atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
	register_operand.  Use fetchop_predicate_1.
	(atomic_<fetchop_name>_fetchsi_hard,
	atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_llcs.
	(atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_gusa.
	(atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
	(atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
	(atomic_nand_fetch<mode>): Use arith_reg_dest instead of
	register_operand.  Use atomic_logical_operand_1.
	(atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
	atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use logical_operand
	and K08.  Adjust asm sequence to allow R0 usage.
	(atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use logical_operand
	and K08.

2015-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR other/63504
	* dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
	Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
	(attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
	only get_full_len HOST_WIDE_INTs from get_val () array rather than
	all bits in *val_wide.

2015-01-28  Jan Hubicka  <hubicka@ucw.cz>

	* varpool.c (tls_model_names): Fix names.
	(varpool_node::dump): Dump tls- prefix for tls models.

2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c: New file.
	* config/nvptx/t-nvptx: Add build rules for it.
	* config.gcc <nvptx-*> [$enable_as_accelerator = yes]
	(extra_programs): Add mkoffload.
	* config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
	function.
	(TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.

2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR middle-end/64809
	* cfgexpand.c (reorder_operands): Skip debug gimples.

2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR tree-optimization/64277
	* tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
	range info when possible to refine estimation.

2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/64718
	* tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
	be a 16bit unsigned integer when n->range is 16.
	(bswap_replace): Convert src to that type if necessary for all bswap
	sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
	set in pass_optimize_bswap::execute ().

2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
	* config/aarch64/aarch64-simd-builtins.def (abs): Split by
	integer and floating point variants.
	* config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.

2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
	for all vector modes.

2015-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/64612
	* doc/sourcebuild.texi (comdat_group): Document.

2015-01-28  Terry Guo  <terry.guo@arm.com>

	* config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.

2015-01-27  David Malcolm  <dmalcolm@redhat.com>

	* toplev.c (print_version): Add param "show_global_state", and
	only print GGC and plugin information if it is true.
	(init_asm_output): Pass in "true" for the new param when calling
	print_version.
	(process_options): Likewise.
	(toplev::main): Likewise.
	* toplev.h (print_version): Add new param to decl.

2015-01-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60871
	PR ipa/64139
	* tree.c (lookup_binfo_at_offset): New function.
	(get_binfo_at_offset): Use it.

2015-01-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64282
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
	on vtable being vtable.

2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* doc/extend.texi: s/390: Update documentation of hotpatch attribute.
	* doc/invoke.texi (-mhotpatch): s/390: Update documentation of
	-mhotpatch= option.
	* config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
	-mno-hotpatch options.  Change syntax of -mhotpatch= option.
	* config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
	Renamed.
	(s390_hotpatch_trampoline_halfwords_max): Renamed.
	(s390_hotpatch_hw_max): New name.
	(s390_hotpatch_trampoline_halfwords): Renamed.
	(s390_hotpatch_hw_before_label): New name.
	(get_hotpatch_attribute): Removed.
	(s390_hotpatch_hw_after_label): New name.
	(s390_handle_hotpatch_attribute): Add second parameter to hotpatch
	attribute.
	(s390_attribute_table): Ditto.
	(s390_function_num_hotpatch_trampoline_halfwords): Renamed.
	(s390_function_num_hotpatch_hw): New name.
	Remove special handling of inline functions and hotpatching.
	Return number of nops before and after the function label.
	(s390_can_inline_p): Removed.
	(s390_asm_output_function_label): Emit a configurable number of nops
	after the function label.
	(s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
	(TARGET_CAN_INLINE_P) Removed.
	(TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.

2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
	of scratch reg.
	(cb<optab><mode>1): Likewise.
	* config/aarch64/iterators.md (bcond): New define_code_attr.

2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_memory_move_cost): Increase costs for
	memory accesses.

2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_register_move_cost): Increase costs for
	FPR->GPR moves.

2015-01-27  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (update_value_range): Intersect the range with
	old recorded SSA name range information.

2015-01-27  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
	BC, DE and HL registers directly, not via AX.
	When decrementing the stack pointer by a large amount, transfer SP
	into AX and perform the subtraction there.
	(rl78_expand_epilogue): Perform the inverse of the above
	enhancements.

2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>
	    Yury Gribov  <y.gribov@samsung.com>

	PR ubsan/64741
	* ubsan.c (ubsan_source_location): Refactor code.
	(ubsan_type_descriptor): Update type size. Refactor code.

2015-01-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56273
	PR tree-optimization/59124
	PR tree-optimization/64277
	* tree-vrp.c (vrp_finalize): Emit array-bound warnings only
	from the first VRP pass.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/64776
	* cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
	handle the first argument in the same loop as all the other arguments.

	PR rtl-optimization/61058
	* jump.c (cleanup_barriers): Update basic block boundaries
	if BLOCK_FOR_INSN is non-NULL on PREV.

2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
	bounds narrowing, already instrumented calls and calls to
	not instrumentable functions.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64807
	* wide-int.cc (wi::divmod_internal): Clear
	b_dividend[dividend_blocks_needed].

2015-01-26  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (move_elim_pass): Don't optimize away
	volatile memory references.

2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/49263
	* config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
	remove_insn.
	* config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
	shifts if it already fits into K08.

2015-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/64730
	* ipa-inline.c (inline_small_functions): Print "unknown" even
	if edge->call_stmt is non-NULL, but has builtins or unknown
	location.

	PR middle-end/64421
	* omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
	with asterisk, skip the first character.

2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/64806
	* config/i386/i386 (feature_priority): Revert the last P_POPCNT
	order change.

2015-01-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64795
	* config/i386/i386.md (*movdi_internal): Also check operand 0
	to determine TYPE_LEA operand.
	(*movsi_internal): Ditto.

2015-01-26  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
	OPTION_MASK_QUAD_MEMORY_ATOMIC.

2015-01-26  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
	the comment.
	* config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
	for higher part.

2015-01-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/64764
	* tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
	combining two BIT_AND_EXPR predicates.

2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/64754
	* tree-ssa-structalias.c (new_var_info): Initialize ruid.

2015-01-26  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (arm_file_start): Update the assignment of
	Tag_ABI_HardFP_use.

2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
	pipeline model.
	config/arm/arm.md: Include the new Cortex-A57 model.
	(generic_sched): Don't use generic_sched when tuning for
	Cortex-A57.

2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (get_builtin_code_for_version): Add
	support for BMI and BMI2 multiversion functions.

2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* emit-rtl.h (store_bit_field): Move prototype to expmed.h.
	(extract_bit_field): Likewise.
	(extract_low_bits): Likewise.
	(expand_mult): Likewise.
	(expand_mult_highpart_adjust): Likewise.

2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Check new
	Silvermont, Haswell, Broadwell and Knights Landing model numbers.
	* config/i386/i386.c (processor_model): Add
	M_INTEL_COREI7_BROADWELL.
	(arch_names_table): Add "broadwell".

2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/49263
	PR target/53987
	PR target/64345
	PR target/59533
	PR target/52933
	PR target/54236
	PR target/51244
	* config/sh/sh-protos.h
	(sh_extending_set_of_reg::can_use_as_unextended_reg,
	sh_extending_set_of_reg::use_as_unextended_reg,
	sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
	sh_is_movrt_insn, sh_insn_operands_modified_between_p,
	sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
	sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
	(sh_treg_insns): New class.
	* config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
	(scope_counter): New class.
	(sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
	sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
	sh_extending_set_of_reg::can_use_as_unextended_reg,
	sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
	sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
	sh_split_treg_set_expr): New functions.
	(addsubcosts): Handle treg_set_expr.
	(sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
	(sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
	(sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
	(sh_insn_operands_modified_between_p): Make non-static.
	* config/sh/predicates.md (zero_extend_movu_operand): Allow
	simple_mem_operand in addition to displacement_mem_operand.
	(zero_extend_operand): Don't allow zero_extend_movu_operand.
	(treg_set_expr, treg_set_expr_not_const01,
	arith_reg_or_treg_set_expr): New predicates.
	* config/sh/sh.md (tstsi_t): Use arith_reg_operand and
	arith_or_int_operand instead of logical_operand.  Convert to
	insn_and_split.  Try to optimize constant operand in splitter.
	(tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
	(*tstqi_t_zero): Delete.
	(*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
	(tstsi_t_and_not): Delete.
	(tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
	Convert to insn_and_split.
	(unnamed split, tstsi_t_zero_extract_xor,
	tstsi_t_zero_extract_subreg_xor_little,
	tstsi_t_zero_extract_subreg_xor_big): Delete.
	(*tstsi_t_shift_mask): New insn_and_split.
	(cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
	to recombine with surrounding insns when splitting.
	(*negtstsi): Add !sh_in_recog_treg_set_expr condition.
	(cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
	(cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
	*cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
	(*cbranch_div0s: Delete.
	(*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
	Try to recombine with surrounding insns when splitting.  Add operand
	order variants.
	(*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
	(*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
	*addc_r_r_msb, *addc_2r_msb): Delete.
	(*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
	order variant.
	(*addc_negreg_t): New insn_and_split.
	(*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
	Try to recombine with surrounding insns when splitting.
	Add operand order variants.
	(*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
	insn_and_split patterns.
	(*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
	surrounding insns when splitting.
	(unnamed rotcr split): Use arith_reg_or_treg_set_expr.
	(*rotcl): Likewise.  Add zero_extract variant.
	(*ashrsi2_31): New insn_and_split.
	(*negc): Convert to insn_and_split.  Use treg_set_expr.
	(*zero_extend<mode>si2_disp_mem): Update comment.
	(movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
	condition.
	(*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
	with surrounding insns when splitting.
	(any_treg_expr_to_reg): New insn_and_split.
	(*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
	*neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
	*neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
	*zero_extract_2): New single bit zero extract patterns.
	(bld_reg, *bld_regqi): Fold into bld<mode>_reg.
	(*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
	*mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
	*movdi_gbr_load): Use arith_reg_dest instead of register_operand for
	set destination.
	(set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
	register_operand for set source.

2015-01-23  Jan Hubicka  <hubicka@ucw.cz>

	* i386.opt (prefetch_sse): New targetsave.
	* i386.c (ix86_function_specific_save): Save prefetch_sse.
	(ix86_function_specific_restore): Restore prefetch_sse and initialize
	ix86_cost/ix86_tune_cost.

2015-01-23  David Malcolm  <dmalcolm@redhat.com>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Support the JIT by using 0 as the language type.

2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64317
	* lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
	REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
	(mark_regno_live, process_bb_lives): Pass new parameter value to
	make_hard_regno_born.

2015-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/63637
	PR rtl-optimization/60663
	* cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
	if elt->cost is MAX_COST for ASM_OPERANDS.
	(find_sets_in_insn): Fix up comment typo.
	(cse_insn): Don't set src_volatile for all non-volatile
	ASM_OPERANDS in PARALLELs, but just those with multiple outputs
	or with "memory" clobber.  Set elt->cost to MAX_COST
	for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
	if new_src is ASM_OPERANDS and elt->cost is MAX_COST.

2015-01-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
	alternative 1.

2015-01-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
	libgcc/config/i386/elf-lib.h.

2015-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR driver/64737
	* gcc.c (print_configuration): Don't print a blank line at the end
	here...
	(run_attempt): ... but here unstead.

	PR middle-end/64734
	* omp-low.c (scan_sharing_clauses): Don't ignore
	OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
	on target data/update constructs.

2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR target/50928
	* config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
	(DEBUG_RELOAD): Removed define.
	(m32c_limit_reload_class): Enable traces with if DEBUG0.
	(m32c_function_arg): Added a type cast.
	(m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
	* config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
	* config/m32c/bitops.md (andqi3_16): Likewise.
	* config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
	(push_a01_l): Likewise.

2015-01-23  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64721
	* main.c (main): Construct toplev instances with init_signals=true.
	* toplev.c (general_init): Add param "init_signals", and use it to
	conditionalize the calls to signal and host_hooks.extra_signals.
	(toplev::toplev): Add param "init_signals".
	(toplev::main): When invoking general_init, pass m_init_signals
	to control whether signal-handlers are installed.
	* toplev.h (toplev::toplev): Add param "init_signals".
	(toplev::m_init_signals): New field.

2015-01-23  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64722
	* emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
	NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
	latter may be affected by the former (e.g. on i686).

2015-01-23  Martin Liska  <mliska@suse.cz>

	* tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
	false positive during profiledbootstrap.

2015-01-23  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/64672
	* lto-opts.c (lto_write_options): Output non-explicit conservative
	-fno-openacc.
	* lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
	(append_compiler_options): Pass -fopenacc through.

2015-01-23  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/64707
	* lto-opts.c (lto_write_options): Output non-explicit conservative
	-fno-openmp.
	* lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
	(append_compiler_options): Pass -fopenmp through.

2015-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64511
	* dwarf2out.c (struct dw_loc_descr_node): Add chain_next
	GTY markup.

	* diagnostic-core.h (internal_error_no_backtrace): New prototype.
	* diagnostic.def (DK_ICE_NOBT): New kind.
	* diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
	like DK_ICE, but never print backtrace.
	(diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
	(internal_error_no_backtrace): New function.
	* gcc.c (execute): Use internal_error_no_backtrace instead of
	internal_error.

2015-01-22  Jeff Law  <law@redhat.com>

	PR target/52076
	* config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
	improve code density for small immediate to memory case.
	(insv): Better handle bitfield assignments when the field is
	being set to all ones.
	* config/m68k/predicates.md (reg_or_pow2_m1_operand): New
	operand predicate.

2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64729
	* gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
	for !TARGET_LIBC_PROVIDES_SSP version and
	-fstack-protector-{all,strong,explicit} otherwise.
	* config/freebsd.h (LINK_SSP_SPEC): Handle
	-fstack-protector-{strong,explicit}.

2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR ipa/64694
	* ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
	heap.

2015-01-22  Wei Mi  <wmi@google.com>

	PR rtl-optimization/64557
	* dse.c (record_store): Call get_addr for mem_addr.
	(check_mem_read_rtx): Likewise.

2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (const_binop): Add early return for non-tcc_binary.

2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>

	* toplev.c (init_local_tick): Process the failure when read
	fails for random_seed.

	* ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
	'pretty_name' to avoid memory overflow.

2015-01-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/64728
	* tree-ssa-coalesce.c (coalesce_partitions): Do not perform
	abnormal coalescing on undefined SSA names.

2015-22-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64688
	PR target/64477
	* config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
	for alternative 3.
	(*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.

2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>

	PR middle-end/63325
	* fold-const.c (fold_checksum_tree): Don't include value of
	expr->decl_with_vis.symtab_node in the checksum.

2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".

2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR driver/64690
	* gcc.c (insert_comments): New function.
	(try_generate_repro): Call it.
	(append_text): Removed.

2015-01-22  Richard Biener  <rguenther@suse.de>

	* ipa-inline.c (can_inline_edge_p): Disable inlining of edges
	with IL incompatible options.  Properly honor user optimize
	attributes.

2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/64682
	* combine.c (distribute_notes): When moving a death note for
	a register that is set in the new I2, make sure to put it
	before that new I2.

2015-01-21  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
	not TARGET_DEFAULT.

2015-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64511
	* simplify-rtx.c (simplify_relational_operation_1): Don't try to
	optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
	into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).

	PR sanitizer/64706
	* doc/invoke.texi (-fsanitize=vptr): Document.

	PR rtl-optimization/62078
	* dse.c: Include cfgcleanup.h.
	(rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
	anything call purge_all_dead_edges and cleanup_cfg at the end
	of the pass.

2015-01-21  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
	edges.

2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
	decl attribute.

2015-01-21  David Sherwood  <david.sherwood@arm.com>
	    Tejas Belagod  <Tejas.Belagod@arm.com>

	* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
	* config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
	* config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
	Removed.

2015-01-21  David Sherwood  <david.sherwood@arm.com>
	    Tejas Belagod  <Tejas.Belagod@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
	(aarch64_reverse_mask): New decls.
	* config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
	(insn_count): New mode_attr.
	* config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
	(vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
	(vec_load_lanesxi): Made ABI compliant for Big Endian targets.
	(aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
	(aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
	(aarch64_simd_st4): New patterns.
	* config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
	(aarch64_reverse_mask): New functions.

2015-01-21  Alan Hayward  <alan.hayward@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
	Declare.
	* config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
	addressing modes for BE.
	(aarch64_print_operand): Add 'R' specifier.
	(aarch64_simd_disambiguate_copy): Delete.
	(aarch64_simd_emit_reg_reg_move): New function.
	* config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
	in define_splits for structural moves.
	(mov<mode>): Use less restrictive predicates.
	(*aarch64_mov<mode>): Simplify and only allow for LE.
	(*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.

2015-01-21  Alan Hayward  <alan.hayward@arm.com>

	* rtlanal.c (subreg_get_info): Exit early for simple and common cases.

2015-01-21  Richard Henderson  <rth@redhat.com>

	PR target/64669
	* ccmp.c (used_in_cond_stmt_p): Remove.
	(expand_ccmp_expr): Don't use it.

2015-01-21  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
	PARALLELs.

2015-01-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/64313
	* tree-core.h (builtin_info, builtin_info_type): Turn from
	an object with two arrays into an array of an object with
	decl and two flags, implicit_p and declared_p.
	* tree.h (builtin_decl_explicit, builtin_decl_implicit,
	set_builtin_decl, set_builtin_decl_implicit_p,
	builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
	(set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
	* builtins.c (builtin_info): Adjust.
	* gimplify.c (gimplify_addr_expr): References to builtins
	that have been declared by the user makes them eligible for
	use by the compiler.  Call set_builtin_decl_implicit_p on them.

2015-01-20  Jeff Law  <law@redhat.com>

	PR target/59946
	* config/m68k/m68k.md (Comparison expanders and patterns): Do not
	allow pc-relative addresses in operand predicates or constraints.

2015-01-21  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
	neon on aarch32 processors for stringops.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63576
	* ipa-utils.c (ipa_merge_profiles): Merge speculative edges.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/45375
	* ipa-inline.c: Include lto-streamer.h
	(report_inline_failed_reason): Output source file differences and
	flags on optimization/target node mismatch.
	(can_inline_edge_p): Consider caller to be the outer inline function;
	be less restrictive about matching opimize and optimize_size attributes.
	(inline_account_function_p): Break out from ...
	(inline_small_functions): ... here.
	* ipa-inline-transform.c (clone_inlined_nodes): Use
	inline_account_function_p.
	(inline_call): Use optimize attribution; use inline_account_function_p.
	(inline_transform): Use opt_for_fn.
	* ipa-inline.h (inline_account_function_p): Declare.

2015-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64663
	* dwarf2out.c (decl_piece_node): Don't put bitsize into
	mode if bitsize <= 0.
	(decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
	dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
	sizes and positions.

2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (nios2_asm_file_end): Implement
	TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
	needed.
	(TARGET_ASM_FILE_END): Define.

2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
	(struct tune_params): Use the enum.
	* arm.c (arm_*_tune): Update.
	(arm_option_override): Update.

2015-01-20  Richard Biener  <rguenther@suse.de>

	PR ipa/64684
	* ipa-reference.c (add_static_var): Inline ...
	(analyze_function): ... here after splitting out from ...
	(is_proper_for_analysis): ... this.

2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/64149
	* config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
	* config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
	replace the conditional with it's true branch.
	* config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
	(arm_lra_p): Remove.

2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium.h (LIB_SPEC): Adjust in default case.

2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* config/tilegx/mul-tables.c: Move symtab.h include after
	coretypes.h include.
	* config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
	vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
	flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
	wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
	explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.

2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR bootstrap/64676
	Revert:
	2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR rtl-optimization/64081
	* loop-iv.c (def_pred_latch_p): New function.
	(latch_dominating_def): Allow specific cases with non-single
	definitions.
	(iv_get_reaching_def): Likewise.
	(check_complex_exit_p): New function.
	(check_simple_exit): Use check_complex_exit_p to allow certain cases
	with exits not executing on any iteration.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/45375
	* i386.c (ix86_option_override_internal): Use ix86_tune_cost
	to set branch cost.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/45375
	* i386.c (gate): Check flag_expensive_optimizations and
	optimize_size.
	(ix86_option_override_internal): Drop optimize_size condition
	on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
	MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
	MASK_PREFER_AVX128.
	(ix86_avx256_split_vector_move_misalign,
	ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
	* sse.md (all uses of TARGET_PREFER_AVX128): Add
	optimize_insn_for_speed_p check.

2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.h (FP_ASM_SPEC): New define.
	(ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
	instead.

2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53988
	* config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
	nullptr for insn when reaching the first insn.
	* config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
	(sh_insn_operands_modified_between_p): Add nullptr check.
	(sh_find_extending_set_of_reg): Fix log message.  Don't accept
	sign extending mem load if the insn contains any UNSPEC or
	UNSPEC_VOLATILE.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* params.def (inline-unit-growth): Drop to 15%.
	* invoke.texi (inline-unit-growth): Document change.

2015-01-19  Martin Liska  <mliska@suse.cz>

	PR ipa/64668
	* ipa-icf-gimple.c (func_checker::compare_operand): Call proper
	function for second argument of OBJ_TYPE_REF.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64218
	* ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
	whether function is an alias.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
	cases.

2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64671
	* lra-remat.c (operand_to_remat): Don't consider jump and call
	insns.

2015-01-19  David Edelsohn  <dje.gcc@gmail.com>

	PR target/59828
	* config/rs6000/default64.h: Include rs6000-cpus.def.
	(TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
	(TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
	* config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
	and POWER8.
	* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
	POWER8.
	* config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
	pseudo-op to specify assembler dialect.

2015-01-19  Martin Liska  <mliska@suse.cz>

	PR ipa/64664
	* ipa-icf.c (sem_item_optimizer::filter_removed_items):
	Handle safe potentially removed nodes during filtering.

2015-01-19  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi (no_icf): Add new attribute description.
	* ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
	where the pass attempts to merge a function with no_icf attribute.

2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/64532
	* doc/md.texi (ARM Options): Document register constraints.

2015-01-19  Jiong Wang  <jiong.wang@arm.com>
	    Andrew Pinski  <apinski@cavium.com>

	PR target/64304
	* config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
	(ashl<mode>3): Don't expand if operands[2] is not constant.

2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64448
	* config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
	Match xor-and-xor RTL pattern.

2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR rtl-optimization/64081
	* loop-iv.c (def_pred_latch_p): New function.
	(latch_dominating_def): Allow specific cases with non-single
	definitions.
	(iv_get_reaching_def): Likewise.
	(check_complex_exit_p): New function.
	(check_simple_exit): Use check_complex_exit_p to allow certain cases
	with exits not executing on any iteration.

2015-01-19  Jakub Jelinek  <jakub@redhat.com>

	* common.opt (fgraphite): Fix a typo.

2015-01-19  Felix Yang  <felix.yang@huawei.com>

	* config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
	pattern.
	* config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
	uminp, smax_nanp, smin_nanp): New builtins.
	* config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
	vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
	vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
	vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
	vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
	vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
	vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
	vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
	vpminnms_f32): Rewrite using builtin functions.

2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/64625
	* omp-low.c (offload_symbol_decl): Remove variable.
	(get_offload_symbol_decl): Remove function.
	(expand_omp_target): For BUILT_IN_GOMP_TARGET,
	BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
	instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
	BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
	BUILT_IN_GOACC_UPDATE don't pass it at all.

2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
	callers.

2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_produce_thunks): Add early param
	to split thunks production into two passes.  Keep
	'always_inline' function bodies after the first pass.
	(pass_data_ipa_chkp_early_produce_thunks): New.
	(pass_ipa_chkp_early_produce_thunks): New.
	(pass_ipa_chkp_produce_thunks::execute): Adjust to new
	chkp_produce_thunks signature.
	(make_pass_ipa_chkp_early_produce_thunks): New.
	* passes.def (pass_ipa_chkp_early_produce_thunks): New.
	(pass_ipa_chkp_produce_thunks): Move after local optimizations.
	* tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.

2015-01-18  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::dump): Dump profile flags.

2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64652
	* config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
	reg appear first in the parallel.

2015-01-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-reference.c (set_reference_optimization_summary,
	ipa_reference_get_not_written_global): Do nothing if ipa-reference is
	disabled.
	(ignore_module_statics): New static var.
	(propagate_bits): If ipa-reference is disabled, do not look into local
	properties.
	(analyze_function): Disable analysis when ipa_reference is disabled.
	(generate_summary): Do not dump when reference is disabled;
	collect vars accessed from functions with ipa-reference disabled.
	(get_read_write_all_from_node): When ipa-reference is disabled, use the
	node flags.
	(gate): Enable for LTO.
	(ignore_edge_p): New function.
	(propagate): Skip functions w/o ipa-reference analysis.
	* optc-save-gen.awk: Handle optimize_debug correctly.
	* opth-gen.awk: Likewise.
	* common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
	fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
	fira-share-save-slots, fira-share-spill-slots,
	fmodulo-sched-allow-regmoves, fpartial-inlining,
	sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
	ftracer, ftree-parallelize-loops, fassociative-math,
	freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
	Optimization
	(fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
	ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
	Optimization.
	* ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
	Fix for IPA.

2015-01-18  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64378
	* ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
	flag correctly.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.

2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
	Remove duplicate option listings.

2015-01-18  Felix Yang  <felix.yang@huawei.com>

	* auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
	(autofdo_source_profile::get_callsite_total_count,
	function_instance::get_function_instance_by_decl,
	string_table::get_index, string_table::get_index_by_decl,
	afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
	Fix comment typos. Reformatting and minor code rearrangement.

2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (probe_stack): Delete.
	(probe_stack_address): New.

2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
	to test for 32-bit ABIs, not !TARGET_POWERPC64.

2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_parallel_return): New function.
	(rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
	for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
	snafu.
	(rs6000_libcall_value): Use the new function.

2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-ftracer]): Remove duplicate option listing.

2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>

	* reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
	implement a more precise life analysis for it during backward scan.

2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.

2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/52773
	* calls.c (emit_library_call_value): When pushing arguments use
	stack_pointer_rtx rather than virtual_outgoing_args_rtx in
	CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
	stack pointer reference into CALL_INSN_FUNCTION_USAGE.

2015-01-17  Jeff Law  <law@redhat.com>

	PR rtl-optimization/32790
	* reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
	not ZERO_EXTEND in SET_DESTs.

2015-01-17  Alan Modra  <amodra@gmail.com>

	* cprop.c (do_local_cprop): Revert last change.

2015-01-16  DJ Delorie  <dj@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
	(addhi3_real): Likewise.  Fix [HL+0] syntax.
	(subqi3_real): Likewise.
	(subhi3_real): Likewise.
	(cbranchqi4_real): Likewise.  Allow saddr,#imm.
	(cbranchhi4_real): Likewise.
	(cbranchhi4_real_inverted): Likewise.
	(cbranchsi4_real_lt): Likewise.
	(cbranchsi4_real_ge): Likewise.
	(cbranchsi4_real_ge): Likewise.
	* config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
	(sub<mode>3_virt): Likewise.
	(cbranchqi4_virt): Likewise.
	(cbranchhi4_virt): Likewise.
	* config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
	always use '[reg+imm]' even when imm is zero.
	* config/rl78/predicates.md (rl78_volatile_memory_operand): New.
	(rl78_general_operand): New.
	(rl78_nonimmediate_operand): New.
	(rl78_nonfar_operand): Use them.
	(rl78_nonfar_nonimm_operand): Likewise.
	(rl78_stack_based_mem): Fix.
	* config/rl78/constraints.md (Ibqi): New.
	(IBqi): New.
	(Wsa): New.
	(Wsf): New.
	(Cs1): Fix.
	* config/rl78/rl78-expand.md (andqi3): Accept volatiles.
	(iorqi3): Likewise.
	(xorqi3): Likewise.
	* config/rl78/rl78-protos.h (rl78_sfr_p): New.

	* config/rl78/constrains (Qs8): New constraint.
	* config/rl78/rl78.c (rl78_flags_already_set): New function.
	* config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
	* config/rl78/rl78-real.md (update_Z): New attribute.
	Update patterns to set it.
	(cbranchqi4_real): Call rl78_flags_already_set() to determine if a
	shorter compare and branch sequence can be used.
	(cbranchhi4_real): Likewise.
	(cbranchhi4_real_inverted): Likewise.

	* config/rl78/predicates.md (uword_operand): Allow symbol_refs.
	* config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
	address space.
	* config/rl78/rl78.c (rl78_get_name_encoding): New.
	(rl78_option_override): Allow -mes0 only if C.
	(characterize_address): Support subregs of symbol_refs.
	(rl78_addr_space_address_mode): Move.  Add __near.
	(rl78_far_p): Likewise.
	(rl78_addr_space_pointer_mode): Likewise.
	(rl78_as_legitimate_address): Likewise.
	(rl78_addr_space_subset_p): Likewise.
	(rl78_addr_space_convert): Likewise.
	(rl78_print_operand_1): Support 16-bit addressing of 32-bit
	symbols with -mes0.
	(transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
	addressing.
	(rl78_alloc_physical_registers_op1): Change logic to prefer
	symbol[BC] addressing.
	(frodata_section): New.
	(rl78_asm_init_sections): Initialize it.
	(rl78_select_section): Put __far readonly symbols in .frodata.
	(rl78_make_type_far): New.
	(rl78_insert_attributes): Force all readonly symbols to be
	__far when -mes0.
	(rl78_asm_out_integer): New.
	* config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
	* config/rl78/rl78.opt (-mes0): New.

	* config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
	* config/rl78/rl78-protos.h (rl78_output_labelref): New.
	(rl78_saddr_p): New.
	(rl78_output_aligned_common): New.
	* config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
	(rl78_handle_saddr_attribute): New.
	(rl78_handle_naked_attribute): New.
	(rl78_attribute_table): Add saddr.
	(rl78_print_operand_1): Don't print '!' on saddr operands.
	(rl78_print_operand_1): Strip encodings.
	(rl78_sfr_p): New.
	(rl78_strip_name_encoding): New.
	(rl78_attrlist_to_encoding): New.
	(rl78_encode_section_info): New.
	(rl78_asm_init_sections): New.
	(rl78_select_section): New.
	(rl78_output_labelref): New.
	(rl78_output_aligned_common): New.
	(rl78_asm_out_integer): New.
	(rl78_asm_ctor_dtor): New.
	(rl78_asm_constructor): New.
	(rl78_asm_destructor): New.

	* config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
	* config/rl78/rl78.c (rl78_expand_epilogue): Update.
	(transcode_memory_rtx): Update.
	(rl78_expand_epilogue): Use A_REG instead of 0.

2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* config/arm/arm-protos.h (struct tune_params): New field
	sched_autopref_queue_depth.
	* config/arm/arm.c (sched-int.h): Include header.
	(arm_first_cycle_multipass_dfa_lookahead_guard,)
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
	(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
	(arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
	(arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
	(arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
	(arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
	Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
	* config/arm/t-arm (arm.o): Update.
	* haifa-sched.c (update_insn_after_change): Update.
	(rank_for_schedule): Use auto-prefetcher model, if requested.
	(autopref_multipass_init): New static function.
	(autopref_rank_for_schedule): New rank_for_schedule heuristic.
	(autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
	variable for debug dumps.
	(autopref_multipass_dfa_lookahead_guard_1): New static helper function.
	(autopref_multipass_dfa_lookahead_guard): New global function that
	implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
	(init_h_i_d): Update.
	* params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
	* sched-int.h (enum autopref_multipass_data_status): New const enum.
	(autopref_multipass_data_): Structure for auto-prefetcher data.
	(autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
	(struct _haifa_insn_data:autopref_multipass_data): New field.
	(INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
	(autopref_multipass_dfa_lookahead_guard): Declare.

2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* rtlanal.c (get_base_term): Handle SCRATCH.

2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* config/aarch64/aarch64.c
	(aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
	* config/arm/arm.c
	(arm_first_cycle_multipass_dfa_lookahead): Implement hook.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.

2015-01-17  Alan Modra  <amodra@gmail.com>

	* cprop.c (do_local_cprop): Disallow replacement of fixed
	hard registers.

2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/62066
	* config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
	early return 0.

2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
	* tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.

2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
	* config/arm/thumb1.md: ... Here.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
	TImode for TARGET_32BIT.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
	TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
	as ...
	(rs6000_abi_word_mode): New function.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
	instead of UNITS_PER_WORD to describe the size of stack slots.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
	as rs6000_promote_function_mode.  Move comment to there.
	(rs6000_promote_function_mode): New function.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
	-mpowerpc64 is active.

2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR middle-end/64353
	* tree-cfg.c (pass_data_fixup_cfg): Update SSA for
	virtuals on start.

2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/cortex-a57.md: Remove duplicate of file accidentally
	introduced in revision 219724.

2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/64263
	* config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
	destination is not a GP reg.
	(*movdi_aarch64): Likewise.

2015-01-16  David Edelsohn  <dje.gcc@gmail.com>

	PR target/64623
	* config/rs6000/default64.h: Revert ISA change.

2015-01-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/64614
	* tree-ssa-uninit.c: Include tree-cfg.h.
	(MAX_SWITCH_CASES): New define.
	(convert_control_dep_chain_into_preds): Handle switch statements.
	(is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
	(normalize_one_pred_1): Do not split bit-manipulations.
	Record (x & CST).

2015-01-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64568
	* tree-ssa-forwprop.c (pass_forwprop::execute): Guard
	complex load rewriting for TARGET_MEM_REFs.

2015-01-16  Uros Bizjak  <ubizjak@gmail.com>

	* builtins.c (expand_builtin_acc_on_device): Check target for NULL.

2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/64149
	* config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
	variable.
	* config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
	(aarch64_lra_p): Remove.

2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/64363
	* ipa-chkp.h (chkp_instrumentable_p): New.
	* ipa-chkp.c: Include tree-inline.h.
	(chkp_instrumentable_p): New.
	(chkp_maybe_create_clone): Use chkp_instrumentable_p.
	Fix processing of not instrumentable functions.
	(chkp_versioning): Use chkp_instrumentable_p. Warn about
	not instrumentable functions.
	* tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
	chkp_instrumentable_p.
	* tree-inline.h (copy_forbidden): New.
	* tree-inline.c (copy_forbidden): Not static anymore.

2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
	ptr1, ptr2 unused.

2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>

	* lra-constraints.c (curr_insn_transform): Change a reload pseudo of
	type OP_OUT to OP_INOUT.

2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>

	* simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
	(high x) y) to y if x and y have the same base.

2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/cortex-a57.md: New.
	* config/aarch64/aarch64.md: Include it.
	* config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
	* config/aarch64/aarch64-tune.md: Regenerate.

2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	PR target/64015
	* ccmp.c (expand_ccmp_next): New function.
	(expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
	and compare insn sequence.
	* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
	aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
	(TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
	* config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
	(*ccmp_ior): Changed to ccmp_ior<mode>.
	(cmp<mode>): New pattern.
	* doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
	parameters.
	* target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.

2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx2intrin.h (_mm256_bslli_epi128,
	_mm256_bsrli_epi128): New.
	* config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.

2015-01-15  Jiong Wang  <jiong.wang@arm.com>

	* expmed.c (store_bit_field_using_insv): Improve warning message.
	Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.

2015-01-15  Jiong Wang  <jiong.wang@arm.com>

	PR rtl-optimization/64011
	* expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
	there is partial overflow.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
	prototype.
	(nds32_expand_epilogue_v3pop): Likewise.
	* config/nds32/nds32.md (sibcall): Define this for sibling call
	optimization.
	(sibcall_register): Likewise.
	(sibcall_immediate): Likewise.
	(sibcall_value): Likewise.
	(sibcall_value_register): Likewise.
	(sibcall_value_immediate): Likewise.
	(sibcall_epilogue): Likewise.
	(epilogue): Pass false to indicate this is not a sibcall epilogue.
	* config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
	(nds32_expand_epilogue_v3pop): Likewise.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
	* config/nds32/nds32.md (unspec_volatile_func_return): Remove.
	(return_internal): New.
	(return): Define this named pattern.
	(simple_return): Define this named pattern.
	* config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
	pattern instead of unspec_volatile_func_return.
	(nds32_expand_epilogue_v3pop): Likewise.
	(nds32_can_use_return_insn): New function.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
	* config/nds32/nds32.md (pop25return): New.
	* config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
	pop25return pattern.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
	-mforbid-fp-as-gp, and -mex9 options.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
	remove -mgp-direct option.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi (--param early-inlining-insns): Update default value.
	* params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (inline_small_functions): Work around hints
	cache issue.

2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/59710
	* doc/invoke.texi (Option Summary): Document new Nios II
	-mgpopt= syntax.
	(Nios II Options): Likewise.
	* config/nios2/nios2.opt: Add -mgpopt= option support.
	Modify existing -mgpopt and -mno-gpopt options to be aliases.
	* config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
	* config/nios2/nios2.c (nios2_option_override): Adjust
	-mgpopt defaulting.
	(nios2_in_small_data_p): Return true for explicit small data
	sections even with -G0.
	(nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
	option choices.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64612
	* ipa-inline-transform.c (can_remove_node_now_p): Fix handling
	of comdat locals.
	(inline_call): Fix removal of aliases.

2015-01-15  Jakub Jelinek  <jakub@redhat.com>

	* flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
	include SANITIZE_VPTR in SANITIZE_UNDEFINED.
	* opts.c (common_handle_option): Add -fsanitize=vptr.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
	BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
	* ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
	UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
	(ubsan_expand_vptr_ifn): New prototype.
	* internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
	expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
	expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
	expand_LOOP_VECTORIZED): Make argument nameless, remove
	ATTRIBUTE_UNUSED.
	(expand_UBSAN_VPTR): New function.
	* internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
	in fn spec.
	(UBSAN_VPTR): New internal function.
	* sanopt.c (tree_map_traits): Renamed to ...
	(sanopt_tree_map_traits): ... this.
	(sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
	(sanopt_ctx): Adjust asan_check_map type for tree_map_traits
	to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
	(maybe_optimize_ubsan_vptr_ifn): New function.
	(sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
	(pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
	-fsanitize=vptr.
	* tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
	internal calls like pure functions for aliasing, even when they
	have other side-effects that prevent making them ECF_PURE.
	* ubsan.c (ubsan_vptr_type_cache_decl): New variable.
	(ubsan_expand_vptr_ifn): New function.

2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64110
	* stmt.c (parse_output_constraint): Process '^' and '$'.
	(parse_input_constraint): Ditto.
	* lra-constraints.c (process_alt_operands): Process the new
	constraints.
	* ira-costs.c (record_reg_classes): Process the new constraint
	'^'.
	* genoutput.c (indep_constraints): Add '^' and '$'.
	* config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
	* doc/md.texi: Add description of the new constraints.

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Ilmir Usmanov  <i.usmanov@samsung.com>
	    Dmitry Bocharnikov  <dmitry.b@samsung.com>
	    Evgeny Gavrin  <e.gavrin@samsung.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* builtin-types.def (BT_FN_VOID_INT_INT_VAR)
	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
	(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
	New function types.
	* builtins.c: Include "gomp-constants.h".
	(expand_builtin_acc_on_device): New function.
	(expand_builtin, is_inexpensive_builtin): Handle
	BUILT_IN_ACC_ON_DEVICE.
	* builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
	New macros.
	* cgraph.c (cgraph_node::create): Consider flag_openacc next to
	flag_openmp.
	* config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
	<*-intelmic-* | *-intelmicemul-*> (tm_file): Add
	i386/intelmic-offload.h.
	* gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
	to libgomp and its dependencies.
	* config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
	* 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.
	* doc/generic.texi: Update for OpenACC changes.
	* doc/gimple.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* gimple-pretty-print.c (dump_gimple_omp_for): Handle
	GF_OMP_FOR_KIND_OACC_LOOP.
	(dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
	GF_OMP_TARGET_KIND_OACC_UPDATE,
	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
	Dump more data.
	* gimple.c: Update comments for OpenACC changes.
	* gimple.def: Likewise.
	* gimple.h: Likewise.
	(enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
	GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
	(gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
	appropriate place.
	(is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
	* gimplify.c: Include "gomp-constants.h".
	Update comments for OpenACC changes.
	(is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
	OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
	OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
	OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
	OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
	OMP_CLAUSE_SEQ.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
	OMP_CLAUSE_SET_MAP_KIND.
	(gimplify_oacc_cache): New function.
	(gimplify_omp_for): Handle OACC_LOOP.
	(gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
	OACC_DATA.
	(gimplify_omp_target_update): Handle OACC_ENTER_DATA,
	OACC_EXIT_DATA, OACC_UPDATE.
	(gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
	OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
	OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
	(gimplify_body): Consider flag_openacc next to flag_openmp.
	* lto-streamer-out.c: Include "gomp-constants.h".
	* omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
	(BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
	(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
	(BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
	(BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
	(BUILT_IN_ACC_ON_DEVICE): New builtins.
	* omp-low.c: Include "gomp-constants.h".
	Update comments for OpenACC changes.
	(struct omp_context): Add reduction_map, gwv_below, gwv_this
	members.
	(extract_omp_for_data, use_pointer_for_field, install_var_field)
	(new_omp_context, delete_omp_context, scan_sharing_clauses)
	(create_omp_child_function, scan_omp_for, scan_omp_target)
	(check_omp_nesting_restrictions, lower_reduction_clauses)
	(build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
	Update for OpenACC changes.
	(scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
	OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
	OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
	OMP_CLAUSE_MAP_*.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
	Handle GF_OMP_FOR_KIND_OACC_LOOP.
	(expand_omp_target, lower_omp_target): Handle
	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
	GF_OMP_TARGET_KIND_OACC_UPDATE,
	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
	GF_OMP_TARGET_KIND_OACC_DATA.
	(pass_expand_omp::execute, execute_lower_omp)
	(pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
	flag_openmp.
	(offload_symbol_decl): New variable.
	(oacc_get_reduction_array_id, oacc_max_threads)
	(get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
	(maybe_lookup_oacc_reduction, enclosing_target_ctx)
	(oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
	(oacc_gimple_assign, oacc_initialize_reduction_data)
	(oacc_finalize_reduction_data, oacc_process_reduction_data): New
	functions.
	(is_targetreg_ctx): Remove function.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
	OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
	OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
	OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
	* tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
	* tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
	(OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
	(OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
	(OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
	(OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
	* tree-core.h: Update comments for OpenACC changes.
	(enum omp_clause_map_kind): Remove.
	(struct tree_omp_clause): Change type of map_kind member from enum
	omp_clause_map_kind to unsigned char.
	* tree-inline.c: Update comments for OpenACC changes.
	* tree-nested.c: Likewise.  Include "gomp-constants.h".
	(convert_nonlocal_reference_stmt, convert_local_reference_stmt)
	(convert_tramp_reference_stmt, convert_gimple_call): Update for
	OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
	OMP_CLAUSE_SET_MAP_KIND.
	* tree-pretty-print.c: Include "gomp-constants.h".
	(dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
	OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
	OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
	instead of OMP_CLAUSE_MAP_*.
	(dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
	OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
	OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
	* tree-streamer-in.c: Include "gomp-constants.h".
	(unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
	OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
	* tree-streamer-out.c: Include "gomp-constants.h".
	(pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
	OMP_CLAUSE_MAP_*.
	* tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
	(OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
	(OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
	* tree.c (omp_clause_num_ops): Update accordingly.
	* tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
	Likewise.
	(OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
	(OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
	(OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
	(OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
	(OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
	(OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
	* tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
	(OMP_CLAUSE_SET_MAP_KIND): New macro.
	* varpool.c (varpool_node::get_create): Consider flag_openacc next
	to flag_openmp.
	* config/i386/intelmic-offload.h: New file.
	* config/nvptx/offload.h: Likewise.

2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* explow.h: Remove duplicate contents.
	* dojump.h: Likewise.

2015-01-15  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_xgene_tune): Add default initializer for instruction
	fusion.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64068
	PR ipa/64559
	* ipa.c (symbol_table::remove_unreachable_nodes):
	Do not put abstract origins into boundary.

2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
	* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.

2015-01-15  Steve Ellcey  <sellcey@mips.com>

	* Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
	cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
	builtins.def, and chkp-builtins.def.

2015-01-15  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
	ISA 2.7 (POWER8).

2015-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61743
	* tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
	information on PHIs for some simple cases.

2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
	Include xgene1.md.
	* config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
	* config/arm/arm-cores.def (xgene1): New entry.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.

2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-if-conv.c: Include hash-map.h.
	(aggressive_if_conv): New variable.
	(fold_build_cond_expr): Add simplification of non-zero condition.
	(add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
	destination block is not always executed.
	(if_convertible_phi_p): Fix commentary, allow phi nodes have more
	than two predecessors if AGGRESSIVE_IF_CONV is true.
	(if_convertible_stmt_p): Fix commentary.
	(all_preds_critical_p): New function.
	(has_pred_critical_p): New function.
	(if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
	BB can have more than two predecessors and all incoming edges can be
	critical.
	(predicate_bbs): Skip predication for loop exit block, use build2_loc
	to compute predicate for true edge.
	(find_phi_replacement_condition): Delete this function.
	(is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
	Allow interchange PHI arguments if EXTENDED is false.
	Change check that block containing reduction statement candidate
	is predecessor of phi-block since phi may have more than two arguments.
	(phi_args_hash_traits): New helper structure.
	(struct phi_args_hash_traits): New type.
	(phi_args_hash_traits::hash): New function.
	(phi_args_hash_traits::equal_keys): New function.
	(gen_phi_arg_condition): New function.
	(predicate_scalar_phi): Add handling of phi nodes with more than two
	arguments, delete COND and TRUE_BB arguments, insert body of
	find_phi_replacement_condition to predicate ordinary phi nodes.
	(predicate_all_scalar_phis): Skip blocks with the only predecessor,
	delete call of find_phi_replacement_condition and invoke
	predicate_scalar_phi with two arguments.
	(insert_gimplified_predicates): Add assert that non-predicated block
	don't have statements to insert.
	(ifcvt_split_critical_edges): New function.
	(ifcvt_split_def_stmt): Likewise.
	(ifcvt_walk_pattern_tree): Likewise.
	(stmt_is_root_of_bool_pattern): Likewise.
	(ifcvt_repair_bool_pattern): Likewise.
	(ifcvt_local_dce): Likewise.
	(tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
	is copy of inner or outer loop force_vectorize field, invoke
	ifcvt_split_critical_edges, ifcvt_local_dce and
	ifcvt_repair_bool_pattern for aggressive if-conversion.

2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>

	* config/aarch64/aarch64.md: Include xgene1.md.
	* config/aarch64/xgene1.md: New file.

2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64-cores.def (xgene1): Update/add the
	xgene1 (APM XGene-1) core definition.
	* config/aarch64/aarch64.c: Add cost tables for APM XGene-1
	* config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
	* doc/invoke.texi: Document -mcpu=xgene1.

2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* dojump.h: New header file.
	* explow.h: Likewise.
	* expr.h: Remove includes.
	Move expmed.c prototypes to expmed.h.
	Move dojump.c prototypes to dojump.h.
	Move alias.c prototypes to alias.h.
	Move explow.c prototypes to explow.h.
	Move calls.c prototypes to calls.h.
	Move emit-rtl.c prototypes to emit-rtl.h.
	Move varasm.c prototypes to varasm.h.
	Move stmt.c prototypes to stmt.h.
	(saved_pending_stack_adjust): Move to dojump.h.
	(adjust_address): Move to explow.h.
	(adjust_address_nv): Move to emit-rtl.h.
	(adjust_bitfield_address): Likewise.
	(adjust_bitfield_address_size): Likewise.
	(adjust_bitfield_address_nv): Likewise.
	(adjust_automodify_address_nv): Likewise.
	* explow.c (expr_size): Move to expr.c.
	(int_expr_size): Likewise.
	(tree_expr_size): Likewise.
	Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
	* genemit.c (main): Generate includes statistics.h, real.h,
	fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
	stmt.h.
	* genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
	function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
	explow.h, emit-rtl.h, stmt.h.
	* genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
	fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
	* genemit.c (open_base_files): Generate includes flags.h, statistics.h,
	real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
	emit-rtl.h, varasm.h, stmt.h.
	* config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
	hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
	function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
	fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
	expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
	* config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
	double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
	function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
	insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
	tm.h tree.h varasm.h vec.h wide-int.h.
	* rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
	hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
	real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
	* cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
	insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
	* loop-iv.c: Likewise.
	* lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* hw-doloop.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-invariant.c: Likewise.
	* reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* caller-save.c: Include alias.h calls.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* combine-stack-adj.c: Likewise.
	* cse.c: Likewise.
	* ddg.c: Likewise.
	* ifcvt.c: Likewise.
	* ira-costs.c: Likewise.
	* jump.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-spills.c: Likewise.
	* profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
	stmt.h varasm.h wide-int.h.
	* lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
	double-int.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h varasm.h wide-int.h.
	* reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
	varasm.h wide-int.h.
	* reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h.
	* config/tilepro/tilepro.c: Likewise.
	* config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
	* config/pdp11/pdp11.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
	* cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
	* rtl-chkp.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
	hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* tree-vect-data-refs.c: Likewise.
	* graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* internal-fn.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* lto-section-out.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* loop-unroll.c: Likewise.
	* ubsan.c: Likewise.
	* tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
	stmt.h varasm.h.
	* dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
	* tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* gimple-match-head.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
	* stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
	* varasm.c: Likewise.
	* coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
	varasm.h.
	* init-regs.c: Likewise.
	* ira.c: Likewise.
	* omp-low.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
	varasm.h.
	* dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
	* shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
	* recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-phiopt.c: Likewise.
	* config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* toplev.c: Likewise.
	* var-tracking.c: Likewise.
	* gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* lower-subreg.c: Likewise.
	* postreload-gcse.c: Likewise.
	* ree.c: Likewise.
	* reginfo.c: Likewise.
	* store-motion.c: Likewise.
	* combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h stmt.h varasm.h.
	* emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h.
	* dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
	* except.c: Likewise.
	* explow.c: Likewise.
	* tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
	* tree-ssa-structalias.c: Likewise.
	* cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h.
	* calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h.
	* bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* cfgbuild.c: Likewise.
	* function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h.
	* cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h varasm.h.
	* cprop.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload.c: Likewise.
	* ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
	explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	function.h real.h statistics.h stmt.h varasm.h.
	* alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	statistics.h stmt.h.
	* config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
	* asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
	* ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* ipa-polymorphic-call.c: Likewise.
	* config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h.
	* config/c6x/c6x.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
	stmt.h varasm.h.
	* ipa-split.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-vrp.c: Likewise.
	* config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h.
	* config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* config/msp430/msp430.c: Likewise.
	* predict.c: Likewise.
	* value-prof.c: Likewise.
	* config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
	* config/microblaze/microblaze.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h rtl.h statistics.h stmt.h.
	* cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h statistics.h stmt.h.
	* config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
	stmt.h.

2015-01-15  Jakub Jelinek  <jakub@redhat.com>

	* gengtype.c (create_user_defined_type): Workaround
	-Wmaybe-uninitialized false positives.
	* cse.c (fold_rtx): Likewise.
	* loop-invariant.c (gain_for_invariant): Likewise.

2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
	set the memory attributes in all cases but clear MEM_EXPR if need be.

2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/64434
	* cfgexpand.c (reorder_operands): New function.
	(expand_gimple_basic_block): Insert call of reorder_operands if
	optimized is true.

2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/micromips.md (*swp): Remove explicit parallel.
	(jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
	* config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
	(mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
	(mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
	(mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
	(mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
	(mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
	(mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
	(mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
	(mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
	(mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
	(mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
	(mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
	(mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
	(mips_wrdsp): Likewise.
	* config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
	parallel.
	(mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
	(mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
	(mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
	(mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
	(mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
	(mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
	* config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
	(ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
	(ssmaddsqdq4, ssmsubsqdq4): Likewise.

2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
	(mips_print_operand): Support 'y' to print exact log2 in decimal
	of a const_int.
	* config/mips/mips.h (ISA_HAS_LSA): New define.
	(ISA_HAS_DLSA): Likewise.
	* config/mips/mips.md (<GPR:d>lsa): New define_insn.
	* config/mips/predicates.md (const_immlsa_operand): New predicate.

2015-01-15  Martin Liska  <mliska@suse.cz>

	PR target/64377
	* optc-save-gen.awk: Add support for array types.

2015-01-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/64365
	* tree-data-ref.c (dr_analyze_indices): Make sure that accesses
	for MEM_REF access functions with the same base can never partially
	overlap.

2015-01-14  Marcos Diaz  <marcos.diaz@tallertechnologies.com>

	* common.opt: New option -fstack-protector-explicit.
	* cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
	(stack_protect_decl_phase): Handle stack_protect attribute for
	explicit stack protection requests.
	(expand_used_vars): Similarly.
	* doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
	* doc/extend.texi: Add documentation for "stack_protect" attribute.
	* doc/invoke.texi: Add documentation for -fstack-protector-explicit.

2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53988
	* config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
	reg-reg copies.
	(sh_extending_set_of_reg): New struct.
	(sh_find_extending_set_of_reg, sh_split_tst_subregs,
	sh_remove_reg_dead_or_unused_notes): New Declarations.
	* config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
	sh_find_extending_set_of_reg, sh_split_tst_subregs,
	sh_extending_set_of_reg::use_as_extended_reg): New functions.
	* config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
	convert to insn_and_split and use new function sh_split_tst_subregs.

2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
	option.
	(Optimization Options): Move -fuse-ld documentation to...
	(Link Options): ...here.

2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/constraints.md (ZC): Add support for R6 LL/SC
	offsets.
	(ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
	* config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
	(ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
	instead of ZR for the memory operand of LL/SC.
	(compare_and_swap_12, sync_add<mode>): Likewise.
	(sync_<optab>_12, sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12, sync_nand_12): Likewise.
	(sync_old_nand_12, sync_new_nand_12): Likewise.
	(sync_sub<mode>, sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>, sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>, sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
	(sync_nand<mode>, sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
	* doc/md.texi (ZC): Update description.

2015-01-14  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c (expand_builtin_atomic_exchange): Remove error when
	memory model is CONSUME.
	(expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
	expand_builtin_atomic_store): Change invalid memory model errors to
	warnings.
	(expand_builtin_atomic_clear): Change invalid model errors to warnings
	and issue warning for CONSUME.

2015-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* lto-cgraph: Update function comments for
	lto_symtab_encoder_encode_*.

2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>

	* Makefile.in (site.exp): Do not set ENABLE_LTO.

2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>

	* cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
	* lto-cgraph.c (select_what_to_stream): Remove argument, use
	lto_stream_offload_p instead.
	* lto-streamer.h (select_what_to_stream): Remove argument.
	* passes.c (ipa_write_summaries): Likewise.
	* tree-pass.h (ipa_write_summaries): Likewise.

2015-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59354
	* tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
	groups larger than the slp group size as having gaps.

2015-01-14  Andrew MacLeod  <amacleod@redhat.com>

	PR middle-end/59448
	* builtins.c (get_memmodel): Promote consume to acquire always.

2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/64386
	* config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
	V32HImode.

2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/64393
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
	Enable AVX512BW.
	(OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
	AVX512VBMI, as it implies AVX512BW.

2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/64387
	* config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
	(vec_unpacks_hi_v16sf): Ditto.

2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h: Error out if AdvancedSIMD
	is not available.

2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/invoke.texi (mapcs): Mention deprecation.
	(mapcs-frame): Likewise.

2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR target/64453
	* config/arm/arm.c (callee_saved_reg_p): Define.
	(arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
	register is callee saved instead of !call_used_regs[reg].
	(thumb1_compute_save_reg_mask): Likewise.

2015-01-14  Hale Wang  <hale.wang@arm.com>

	* config/arm/arm.c: Tune the max_cond_insns/branch_cost for
	Cortex-M7.

2015-01-14  Richard Biener  <rguenther@suse.de>

	PR lto/64415
	* tree-inline.c (insert_debug_decl_map): Check destination
	function MAY_HAVE_DEBUG_STMTS.
	(insert_init_debug_bind): Likewise.
	(insert_init_stmt): Remove redundant check.
	(remap_gimple_stmt): Drop debug stmts if the destination
	function has var-tracking assignments disabled.

2015-01-14  Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.c (func_checker::compare_operand): Add support for
	IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.

2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64460
	* config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
	(*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.

2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
	level from an ARCH; do not inject the default.
	(MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
	MIPS_ISA_LEVEL_SPEC.
	(MIPS_ISA_NAN2008_SPEC): Update comment.
	(BASE_DRIVER_SELF_SPECS): Likewise.
	* config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
	MIPS_DEFAULT_ISA_LEVEL_SPEC.
	* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
	* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
	* config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.

2015-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64493
	PR tree-optimization/64495
	* tree-vect-loop.c (vect_finalize_reduction): For double-reductions
	assign the proper vectorized PHI to the inner loop exit PHIs.

2015-01-14  Joey Ye  <joey.ye@arm.com>

	* config/arm/arm.c (arm_compute_save_reg_mask):
	Do not save lr in case of tail call.
	* config/arm/thumb2.md (*thumb2_pop_single): New pattern.

2015-01-14  Martin Uecker  <uecker@eecs.berkeley.edu>

	* tree-vrp.c (check_array_ref): Emit more warnings
	for warn_array_bounds >= 2.
	* common.opt: New option -Warray-bounds=.
	* doc/invoke.texi: Document -Warray-bounds=.

2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
	(mforbid-fp-as-gp): Remove.
	(mex9): Remove.
	* config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
	(nds32_symbol_load_store_p): Remove.
	(nds32_fp_as_gp_check_available): Clean up implementation.
	* config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
	cases.
	* config/nds32/nds32.c (nds32_asm_file_start): No need to consider
	fp-as-gp and ex9 cases.

2015-01-13  Jan Hubicka  <hubicka@ucw.cz>

	* tree-profile.c (init_ic_make_global_vars): Drop workaround
	for bintuils bug 14342.
	(init_ic_make_global_vars): Likewise.
	(gimple_init_edge_profiler): Likewise.
	(gimple_gen_ic_func_profiler): Likewise.

2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* ipa-inline.c (inline_small_functions): Swap the operands in
	enum.

2015-01-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64481
	* ipa-inline-analysis.c (node_growth_cache): Remove.
	(initialize_growth_caches): Do not initialize it.
	(free_growth_caches): Do not free it.
	(do_estimate_growth): Rename to ...
	(estimate_growth): ... this one; drop growth cache code.
	(growth_likely_positive): Always go the heuristics way.
	* ipa-inline.c (can_inline_edge_p): Walk through aliases.
	(reset_edge_caches): Do not reset node growth.
	(heap_edge_removal_hook): Do not maintain cache.
	(inline_small_functions): Likewise; strenghten sanity check.
	(ipa_inline): Do not maintain caches.
	* ipa-inline.h (node_growth_cache): Remove.
	(do_estimate_growth): Remove to ...
	(estimate_growth): this one; remove inline version.
	(reset_node_growth_cache): Remove.

2015-01-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64565
	* ipa-inline.c (inline_small_functions): Update callee keys after
	resolving speculation
	(inline_small_functions): Always check monotonicity of the queue.

2015-01-13  Marek Polacek  <polacek@redhat.com>

	PR middle-end/64391
	* trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.

2015-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64286
	* ree.c (combine_reaching_defs): Move part of comment earlier,
	remove !SCALAR_INT_MODE_P check.
	(add_removable_extension): Don't add vector mode
	extensions if all uses of the source register aren't the same
	vector extensions.

2015-01-13  Renlin Li  <renlin.li@arm.com>

	* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
	(CTZ_DEFINED_VALUE_AT_ZERO): Ditto.

2015-01-13  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::equals_private): Call new functions
	cl_target_option_print_diff and cl_optimization_print_diff.
	* optc-save-gen.awk (cl_target_option_print_diff): New function.
	(cl_optimization_print_diff): Likewise.
	* opth-gen.awk: Likewise.

2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
	(*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
	(*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
	(*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
	(*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
	(*sub_uxtsi_multp2_uxtw): Add stack pointer sources.

2015-01-13  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (fusion_load_store): Check dest mode
	instead of src mode.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR lto/64373
	* lto-streamer-out.c (tree_is_indexable): Guard for NULL
	DECL_CONTEXT.

2015-01-13  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
	volatile mems.
	(aarch64_operands_adjust_ok_for_ldpstp): Likewise.

2015-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/63974
	* cfgexpand.c (expand_computed_goto): Don't call
	convert_memory_address here.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64406
	* tree-loop-distibution.c (pass_loop_distribution::execute):
	Reset the SCEV hashtable if we distributed anything.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64404
	* tree-vect-stmts.c (vectorizable_load): Reject conflicting
	SLP types for CSEd loads.

2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/64436
	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
	merge of two symbolic numbers for a bitwise OR to ...
	(perform_symbolic_merge): This. Also fix computation of the range and
	end of the symbolic number corresponding to the result of a bitwise OR.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64568
	* tree-ssa-forwprop.c (pass_forwprop::execute): Properly
	release defs of removed stmts, avoid splitting TARGET_MEM_REFs.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_legitimate_address_p): Consider
	TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
	target-specific symbol_ref flag.
	(NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
	resides in rodata section.
	* config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
	(nds32_encode_section_info): New function.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.md (call): Use pseudo instruction bal which
	clobbers TA_REGNUM if large code model is specified.
	(call_register): Likewise.
	(call_immediate): Likewise.
	(call_value): Likewise.
	(call_value_register): Likewise.
	(call_value_immediate): Likewise.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
	(TARGET_CMODEL_MEDIUM): New macro.
	(TARGET_CMODEL_LARGE): New macro.
	* config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
	code model setting in assembly code.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
	Remove MASK_GP_DIRECT flag.
	* config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
	one of the multilib default options.
	* config/nds32/nds32.opt (mgp-direct): Remove.
	* config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
	-mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.opt (mcmodel): Add new option.
	* config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
	to describe code model.

2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64479
	* rtlanal.c (set_reg_p): Handle SEQUENCE constructs.

2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
	(sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
	(sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
	__builtin_sh_set_fpscr.

2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
	after a funtion name just to indicate it is a function.
	([-fsanitize-undefined-trap-on-error]): Likewise.
	([-fdbg-cnt=]): Likewise.
	([-mmemcpy]): Likewise.
	([-mflush-func]): Likewise.
	([-msynci]): Likewise.

2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
	example.

2015-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64563
	* tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
	instead of != VR_VARYING.

	PR target/64513
	* config/i386/i386.c (ix86_expand_prologue): Add
	REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.

	PR tree-optimization/64454
	* tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
	op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
	for signed or [0, op1 - 1] for unsigned modulo.
	(simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
	even if op1 does not satisfy integer_pow2p.

	PR other/64370
	* sreal.c (sreal::to_double): Use ldexp instead of scalbnl.

2015-01-12  Jeff Law  <law@redhat.com>

	PR target/64461
	* config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
	(trunchiqi2, truncsihi2): Similarly.

	* config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
	rather than calling F.

2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tsan.c (instrument_expr): Use force_gimple_operand.
	Use may_be_nonaddressable_p instead of is_gimple_addressable.

2015-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64530
	* tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
	back dr1.

2015-01-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/64357
	* tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
	latches properly.

2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
	Cortex-A17 tuning parameters.
	* config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.

2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
	* config/arm/arm.c (arm_macro_fusion_p): New function.
	(arm_macro_fusion_pair_p): Likewise.
	(TARGET_SCHED_MACRO_FUSION_P): Define.
	(TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
	(ARM_FUSE_NOTHING): Likewise.
	(ARM_FUSE_MOVW_MOVT): Likewise.
	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
	arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
	arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
	arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
	arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
	arm_cortex_a5_tune): Specify fuseable_ops value.

2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/64561
	* configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
	test for PIE with copy reloc.
	* configure: Regenerated.

2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
	in gen_rtx_REG.
	(arm_tls_descseq_addr): Likewise.
	(arm_gen_movmemqi): Likewise.
	(arm_expand_epilogue_apcs_frame): Likewise.
	(arm_expand_epilogue): Likewise.
	(arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
	in gen_rtx_REG.

2015-01-12  Martin Liska  <mliska@suse.cz>

	PR ipa/64550
	* ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
	volatility for correct operands.

2015-01-12  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
	indication that a function is not leaf.
	(sem_function::compare_polymorphic_p): Likewise.

2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* config/visium/visium.c: Add includes hashtab.h, hash-set.h,
	machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
	fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
	fold-const.h, tree-check.h.

2015-01-12  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63967
	PR ipa/64425
	* ipa-inline.c (compute_uninlined_call_time,
	compute_inlined_call_time): Use counts for extra precision when
	needed possible.
	(big_speedup_p): Fix formating.
	(RELATIVE_TIME_BENEFIT_RANGE): Remove.
	(relative_time_benefit): Remove.
	(edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
	merge guessed and read profile paths.
	(inline_small_functions): Count only !optimize_size functions into
	initial size; be more lax about sanity check when profile is used;
	be sure to update inlined function profile when profile is read.

2015-01-12  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63470
	* ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
	cost when edge becomes direct.
	* ipa-prop.c (make_edge_direct): Do not adjust when speculation
	is resolved or when introducing new speculation.

2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>

	PR ipa/64551
	PR ipa/64552
	* ipa-icf.c (sem_function::equals_private): Use '&&' instead of
	'||' to fix typo issue.

	* tree.h (target_opts_for_fn): Check NULL_TREE since it can
	accept and return NULL.

2015-01-12  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_edge::remove_callee): Move function to header
	file for being inlined.
	(cgraph_set_edge_callee): Delete.
	(cgraph_edge::redirect_callee): Move function to header file
	for being inlined.
	(cgraph_edge::make_direct): Use new function.
	(cgraph_edge::dump_edge_flags): New function created from
	static dump_edge_flags function.
	(cgraph_node::dump): Use new function.
	(cgraph_edge::verify_count_and_frequency): New function created
	from verify_edge_count_and_frequency.
	(cgraph_edge::verify_corresponds_to_fndecl): New function created
	from verify_edge_corresponds_to_fndecl.
	(verify_edge_corresponds_to_fndecl): Delete.
	(cgraph_node::verify_node): Use new function.
	* cgraph.h (cgraph_edge::set_callee): New function.
	(cgraph_edge::dump_edge_flags): Likewise.
	(cgraph_edge::verify_corresponds_to_fndecl): Likewise.

2015-01-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.c (estimate_function_body_sizes): Do not
	free node params when called late with early=true.

2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/md.texi (Instruction Patterns): Rewrite text for
	clarity.
	(Example): Likewise.

2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Break long lines.
	[(-fdiagnostics-color)]: Put long literal in @smallexample
	instead of inline.
	[(-fsanitize-recover)]: Likewise.
	[(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
	[(-ffast-math)]: Likewise.
	[(--param max-inline-insns-recursive)]: Likewise.
	[(--param max-inline-recursive-depth)]: Likewise.
	[(-mno-text-section-literals)]: Likewise.

2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/install.texi: Update for libgomp being renamed from "GNU
	OpenMP Runtime Library" to "GNU Offloading and Multi Processing
	Runtime Library".
	* doc/sourcebuild.texi: Likewise.

2015-01-10  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_option_override): Fix forcing of
	mul.x availability for moxiebox configuration.

2015-01-09  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md: Tabify assembly output.

2015-01-09  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md (CC_REG): Correct register definition.

2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
	([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
	of log files.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.

2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64412
	* lto-streamer.h (lto_stream_offload_p): New declaration.
	* lto-streamer.c (lto_stream_offload_p): New variable.
	* cgraphunit.c (ipa_passes): Set lto_stream_offload_p
	at the same time as section_name_prefix.
	* lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
	if lto_stream_offload_p.
	* tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
	stream TREE_TARGET_OPTION if lto_stream_offload_p.
	(write_ts_function_decl_tree_pointers): Don't
	stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
	* tree-streamer-in.c (unpack_value_fields): Don't stream
	TREE_TARGET_OPTION in if ACCEL_COMPILER.
	(lto_input_ts_function_decl_tree_pointers): Don't stream
	DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
	* lto-opts.c (lto_write_options): Use lto_stream_offload_p
	instead of section_name_prefix string comparisons.

2015-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64536
	* cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
	tablejumps.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	PR tree-optimization/64322
	* tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
	range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.

2015-01-09  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64539
	* regcprop.c (kill_clobbered_values): Factor out of ...
	(copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
	instead of note_stores with kill_clobbered_value.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	 * ginclude/unwind-arm-common.h: Revert previous commit.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* config.gcc (arm*-*-freebsd*): New configuration.
	* config/arm/freebsd.h: New file.
	* config.host: Add extra components for arm*-*-freebsd*.
	* config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
	* config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
	for -mcpu=e6500.
	* config/rs6000/t-rtems: Add e6500 multilibs.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
	MPC8540.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
	MULTILIB_EXCEPTIONS.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
	MULTILIB_EXCEPTIONS.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems-eabi: Rename to...
	* config/arm/t-rtems: ...this.
	* config/arm/rtems-eabi.h: Rename to...
	* config/arm/rtems.h: ...this.
	* config.gcc (arm*-*-rtems*): Reflect changes above.

2015-01-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64410
	* tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
	on the LHS.
	(execute_update_addresses_taken): Deal with that.
	* tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
	loads/stores for complex variables.

2015-01-09  Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
	name comparison.
	(func_checker::compare_memory_operand): New function.
	(func_checker::compare_operand): Split case to newly
	added functions.
	(func_checker::compare_cst_or_decl): New function.
	(func_checker::compare_gimple_call): Identify
	memory operands.
	(func_checker::compare_gimple_assign): Likewise.
	* ipa-icf-gimple.h: New function.

2015-01-09  Martin Liska  <mliska@suse.cz>

	PR ipa/64503
	* sreal.c (sreal::dump): Change unsigned format to signed for
	m_exp value.
	(sreal::to_double): Replace exp2 with scalbln.

2015-01-09  Martin Liska  <mliska@suse.cz>

	* cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
	* ipa-icf.c (sem_function::equals_private): Add support for target and
	(sem_item_optimizer::merge_classes): Remove redundant function
	optimization flags comparison.
	* tree.h (target_opts_for_fn): New function.

2015-01-09  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_for_static_chunk): Fix assert.

2015-01-09  Kito Cheng  <kito@0xlab.org>

	PR rtl-optimization/64348
	* lra-constraints.c (split_reg): Fix caller-save store/restore
	instruction generation.

2015-01-08  John David Anglin  <danglin@gcc.gnu.org>

	PR gcov-profile/61790
	* gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
	long long.  Fallback to int64_t if host doesn't have long long and
	use strtol if int64_t is long.  Otherwise, use sscanf for conversion.

2015-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63989
	* params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
	from 1000 to 10000.
	* tree-ssa-strlen.c (get_strinfo): Moved earlier.
	(get_stridx): If we don't have a record for certain SSA_NAME,
	but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
	constant offset, call get_stridx_plus_constant.
	(get_stridx_plus_constant): New function.
	(zero_length_string): Don't use get_stridx here.

	PR target/55023
	PR middle-end/64388
	* dse.c (struct insn_info): Mention frame_read set also
	before reload for tail calls on some targets.
	(scan_insn): Revert 2014-12-22 change.  Set frame_read
	also before reload for tail calls if
	HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
	instead of add_non_frame_wild_read for non-const/memset
	tail calls after reload.

2015-01-08  Jason Merrill  <jason@redhat.com>

	* ubsan.c (do_ubsan_in_current_function): New.
	(pass_ubsan::gate): Use it.
	* ubsan.h: Declare it.
	* convert.c (convert_to_integer): Use it.

2015-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/64338
	* config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
	compare_code when it is unconditionally overwritten afterwards.
	Use ix86_reverse_condition instead of reverse_condition.  Don't
	change code if *reverse_condition* returned UNKNOWN and don't
	swap ct/cf and negate diff in that case.

2015-01-08  Mike Stump  <mikestump@comcast.net>

	* tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
	(pass_tsan_O0::gate): Likewise.
	* extend.texi (Function Attributes): Add no_sanitize_thread
	documentation.

2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>

	* builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
	for registering builtins.
	* config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
	add -fopenmp to the argv_obstack used when invoking
	compile_for_target.

	* config/i386/intelmic-mkoffload.c (compile_for_target): Always
	add "-m32" or "-m64" to argv_obstack.
	(generate_host_descr_file): Likewise, when invoking host_compiler.
	(main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
	ld.

2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-mem.cc: Use constant as second operand when emitting
	tstsi_t insns.

2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/55212
	* config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
	constant load if constant operand fits into I08.

2015-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64336
	* tree.c (build2_stat): Fix up initialization of TREE_READONLY
	and TREE_THIS_VOLATILE for MEM_REFs.
	(build5_stat): Fix up initialization of TREE_READONLY and
	TREE_THIS_VOLATILE for TARGET_MEM_REFs.

2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64533
	* config/sh/sh.md (*addsi3_compact): Use u constraint instead
	of r for the second alternative of the destination operand.

2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/36557
	* config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.

2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fvtable-verify]): Fix markup on option
	keywords.
	([-fivar-visibility], [-fvisibility]): Likewise.

2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Fix incorrect uses of @samp markup throughout
	the file where @code, @command, etc is more appropriate.

2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
	of -mrecip= documentation.

2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64505
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
	correct reload handler if -m32 -mpowerpc64 is used.

2015-01-06  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.

2015-01-08  Christian Bruel  <christian.bruel@st.com>

	PR target/64507
	* config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.

2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63259
	* tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
	if optab exists for 16bit byteswap.

2015-01-06  Jakub Jelinek  <jakub@redhat.com>

	* opts.c (common_handle_option): Add support for
	-fno-sanitize=all and -f{,no-}sanitize-recover=all.
	* doc/invoke.texi: Document -fno-sanitize=all,
	-f{,no-}sanitize-recover=all.  Document that
	-fsanitize=float-cast-overflow is not enabled
	by -fsanitize=undefined.  Fix up documentation
	of -f{,no-}sanitize-recover.

2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc: Add Visium support.
	* configure.ac: Likewise.
	* configure: Regenerate.
	* doc/extend.texi (interrupt attribute): Add Visium.
	* doc/invoke.texi: Document Visium options.
	* doc/install.texi: Document Visium target.
	* doc/md.texi: Document Visium constraints.
	* common/config/visium: New directory.
	* config/visium: Likewise.

2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* simplify-rtx.c (simplify_binary_operation_1): Handle more cases
	for the "(and X (ior (not X) Y) -> (and X Y)" transform.

2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (combine_validate_cost): Do not count the cost of a
	split I2 twice.  Do not display it twice in the dump, either.

2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	Revert parts of r219199.
	* doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
	<inttypes.h>.
	([-Wtraditional]): Restore markup on <limits.h>.

2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>

	PR c++/31397
	* doc/invoke.texi: Document -Wsuggest-override.

2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>

	PR rtl-optimization/64287
	* toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
	(process_options): Disable flag_ipa_ra if profiling.

2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	* config/nds32/nds32-peephole2.md: Do not mention define_peephole.

2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
	hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
	put under #if TARGET_LOOPS guard.

2015-01-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (output_387_binary_op): Use std::swap.

2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>

	* rtlanal.c (refers_to_regno_p): Change return value from int to bool.
	* rtl.h (refers_to_regno_p): Add overload.
	* cse.c: Use it.
	* bt-load.c: Likewise.
	* combine.c: Likewise.
	* df-scan.c: Likewise.
	* sched-deps.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/rs6000/spe.md: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/arc/arc.md: Likewise.
	* config/arc/arc.c: Likewise.
	* config/sh/sh.md: Likewise.
	* config/sh/sh.c: Likewise.
	* config/frv/frv.c: Likewise.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64265
	* gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
	call as cleanup of the whole body.
	* internal-fn.def (TSAN_FUNC_EXIT): New internal call.
	* tsan.c (replace_func_exit): New function.
	(instrument_func_exit): Moved earlier.
	(instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
	Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
	been found.
	(tsan_pass): Don't call instrument_func_exit.
	* internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
	* tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
	inlining.

	PR sanitizer/64344
	* ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
	* ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
	it to libubsan handler instead of EXPR.  Fold comparisons earlier,
	if the result is integer_zerop, return NULL_TREE.
	* convert.c (convert_to_integer): Pass expr as ARG.

	PR tree-optimization/64465
	* tree-inline.c (redirect_all_calls): During inlining
	clean up EH stmts and EH edges if redirect_call_stmt_to_callee
	changed the stmt to a non-throwing call.

2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
	etc markup throughout the file.

2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Enable experimental TSAN support for Ada.
	* tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64494
	* tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
	clear SSA_NAME_ANTI_RANGE_P flag.

2015-01-05  Marek Polacek  <polacek@redhat.com>

	* doc/extend.texi (Arrays of Length Zero): Add missing comma.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

	* gcc.c (process_command): Update copyright notice dates.
	* gcov-dump.c: Ditto.
	* gcov.c: 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.

	* auto-profile.c, auto-profile.h: Fix up Copyright line.

2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
	verb tense, etc.
	([-fvtable-verify], [-fvtv-debug]): Likewise.
	([-Wabi]): Likewise.
	([-fmessage-length]): Likewise.
	([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
	([-Wno-discarded-qualifiers]): Likewise.
	([-Wnodiscarded-array-qualifiers]): Likewise.
	([-Wno-virtual-move-assign]): Likewise.
	([-fsanitize=address], [-fsanitize=thread]): Likewise.
	([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
	([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
	([-fsanitize-undefined-trap-on-error]): Likewise.
	([-floop-interchange]): Likewise.
	([-ftree-coalesce-inlined-vars]): Likewise.
	([-fvect-cost-model]): Likewise.
	([-flto]): Likewise.
	([--param]): Likewise.
	(Spec Files): Likewise.
	([-mstrict-align]): Likewise.
	([-mfix-cortex-a53-835769]): Likewise.
	([-march], [-mtune]): Likewise.
	([-mpic-register]): Likewise.
	([-munaligned-access]): Likewise.
	([-msp8]): Likewise.
	(EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
	(AVR Built-in Macros): Likewise.
	([-mpreferred-stack-boundary]): Likewise.
	([-mtune-crtl]): Likewise.
	([-mashf]): Likewise.
	([-mmcu=]): Likewise.
	([-minrt]): Likewise.
	([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
	([-mupper-regs]): Likewise.
	([-matomic-model]): Likewise.
	([-mdiv]): Likewise.
	([-mzdcbranch]): Likewise.
	([-mdisable-callt]): Likewise.
	([-msoft-float]): Likewise.
	([-m8byte-align]): Likewise.
	([-fstack-reuse]): Likewise.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
	Fix markup, light copy-editing.
	([-fauto-profile]): Rewrite to fix formatting and content
	problems.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
	Copy-edit description.
	([-fisolate-erroneous-paths-attribute]): Likewise.
	* common.opt (fisolate-erroneous-paths-dereference):
	Copy-edit description.
	(fisolate-erroneous-paths-attribute): Likewise.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
	tidy grammar.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
	([-fvtv-debug]): Likewise.
	([-Wc++-compat]): Likewise.
	([-Wc++11-compat]): Likewise.
	([-Wc++14-compat]): Likewise.
	([-Wno-sized-deallocation]): Likewise.
	([-femit-class-debug-always]): Likewise.
	([-femit-struct-debug-detailed]): Likewise.
	([-fno-keep-inline-dllexport]): Likewise.
	([-fira-algorithm]): Likewise.
	([-fira-region]): Likewise.
	([-flra-remat]): Likewise.
	([-fipa-ra]): Likewise.
	([-fhoist-adjacent-loads]): Likewise.
	([-fisolate-erroneous-paths-dereference]): Likewise.
	([-fisolate-erroneous-paths-attribute]): Likewise.
	([-ftree-switch-conversion]): Likewise.
	([-ftree-tail-merge]): Likewise.
	([-ftree-loop-if-convert]): Likewise.
	([-ftree-loop-if-convert-stores]): Likewise.
	([-ftree-loop-distribution]): Likewise.
	([-ftree-loop-distribute-patterns]): Likewise.
	([-flto-compression-level]): Likewise.
	([-flto-report]): Likewise.
	([-flto-report-wpa]): Likewise.
	([-fuse-linker-plugin]): Likewise.
	([-mfix-cortex-a53-835769]): Likewise.
	([-mno-fix-cortex-a53-835769]): Likewise.
	([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
	explicit listing; add a note to the discussion indicating they
	exist.  Reorder table to group similar options.  Add missing
	@opindex entries.  Add @need commands throughout the table to
	allow it to be split across multiple pages.
	([-m8bit-idiv]): Fix @opindex.
	([-mavx256-split-unaligned-load]): Likewise.
	([-mavx256-split-unaligned-store]): Likewise.
	([-mstack-protector-guard]): Likewise.
	([-mcpu=]): Likewise.
	([-mcpu]): Likewise.
	([-mpointer-size=]): Likewise.

2015-01-03  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
	instead of `m' constraint.  Likewise for unnamed movb comparison
	patterns using reg_before_reload_operand predicate.
	* config/pa/predicates.md (reg_before_reload_operand): Tighten
	predicate to reject register index and LO_SUM DLT memory forms
	after reload.

2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Fix spelling of
	-fdevirtualize-at-ltrans.
	([-fdevirtualize]): Fix markup.
	([-fdevirtualize-speculatively]): Fix typo.
	([-fdevirtualize-at-ltrans]): Likewise.  Make description less
	implementor-speaky.
	* common.opt (fdevirtualize-at-ltrans): Likewise.
	* ipa-devirt.c: Fix typos in comments throughout the file.
	(ipa_devirt): Fix typos in format strings for dump output.

2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
	discussion of defaults, light copy-editing.

2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tsan.c (instrument_expr): corrected previous checkin.

2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Instrument bit field and unaligned accesses for TSAN.
	* sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
	(BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
	* tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
	Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
	unaligned memory regions.

2015-01-01  Anthony Green  <green@moxielogic.com>

	* config/moxie/predicates.md (moxie_general_movsrc_operand):
	Restrict move source register offsets to 16 bits.

Copyright (C) 2015 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.
