view gcc/ChangeLog-2015 @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

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.