2014-05-22  Release Manager

	* GCC 4.8.3 released.

2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/61193
	* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
	(__TM_simple_begin): Use it.
	(__TM_begin): Likewise.

2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
	Delete.
	* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
	* config/sparc/sparc.md (fptype_ut699): New attribute.
	(in_branch_delay): Return false if -mfix-ut699 is specified and
	fptype_ut699 is set to single.
	(truncdfsf2): Add fptype_ut699 attribute.
	(fix_truncdfsi2): Likewise.
	(floatsisf2): Change fptype attribute.
	(fix_truncsfsi2): Likewise.
	(negtf2_notv9): Delete.
	(negtf2_v9): Likewise.
	(negtf2_hq): New instruction.
	(negtf2): New instruction and splitter.
	(negdf2_notv9): Rewrite.
	(abstf2_notv9): Delete.
	(abstf2_hq_v9): Likewise.
	(abstf2_v9): Likewise.
	(abstf2_hq): New instruction.
	(abstf2): New instruction and splitter.
	(absdf2_notv9): Rewrite.

2014-05-14  Matthias Klose  <doko@ubuntu.com>

	Revert:
	2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
		    Matthias Klose  <doko@ubuntu.com>

	PR driver/61106
	* optc-gen.awk: Fix option handling for -Wunused-parameter.

2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/sourcebuild.texi: (dfp_hw): Document.
	(p8vector_hw): Likewise.
	(powerpc_eabi_ok): Likewise.
	(powerpc_elfv2): Likewise.
	(powerpc_htm_ok): Likewise.
	(ppc_recip_hw): Likewise.
	(vsx_hw): Likewise.

2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	Backport from mainline
	2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR target/60991
	* config/avr/avr.c (avr_out_store_psi): Use correct constant
	to restore Y.

2014-05-09  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2014-05-09 trunk r210267

	PR target/61055
	* config/avr/avr.md (cc): Add new attribute set_vzn.
	(addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
	Set cc insn attribute to set_vzn instead of set_zn for alternatives
	with INC, DEC or NEG.
	* config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
	(avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
	INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.

2014-05-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* builtins.c (expand_builtin_setjmp_receiver): Emit a use of
	the hard frame pointer.  Synchronize commentary with mainline.
	* cse.c (cse_insn): Only check for volatile asms.
	* cselib.c (cselib_process_insn): Likewise.
	* dse.c (scan_insn): Likewise.
	* stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of
	the hard frame pointer.

2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Matthias Klose  <doko@ubuntu.com>

	PR driver/61106
	* optc-gen.awk: Fix option handling for -Wunused-parameter.

2014-05-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59952
	* config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM
	from core-avx2.

2014-05-08  Charles Baylis  <charles.baylis@linaro.org>

	Backport from mainline
	2014-04-07  Charles Baylis  <charles.baylis@linaro.org>

	PR target/60609
	* config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
	(LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
	ADDR_DIFF_VEC.

2014-05-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
	Do not define target_cpu_default2 to generic.

2014-05-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2014-04-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/55022
	* fold-const.c (negate_expr_p): Don't negate directional rounding
	division.
	(fold_negate_expr): Likewise.

2014-05-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2014-04-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/60849
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
	boolean results for comparisons.

	2014-04-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60766
	* tree-ssa-loop-ivopts.c (cand_value_at): Compute in an
	unsigned type.
	(may_eliminate_iv): Convert cand_value_at result to desired
	type.

	2014-04-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60903
	* tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply
	IRREDUCIBLE_LOOP loop flags to newly created BBs and edges.

2014-05-05  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60895
	* tree-inline.c (declare_return_variable): Use mark_addressable.

	2014-04-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/60750
	* tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
	for noreturn calls.
	* tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.

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

	PR tree-optimization/59817
	PR tree-optimization/60453
	* graphite-scop-detection.c (graphite_can_represent_scev): Complete
	recursion to catch all CHRECs in the scalar evolution and restrict
	the predicate for the remains appropriately.

	2014-04-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60836
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Force
	initial PHI args to be gimple values.

2014-05-05  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2014-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60960
	* tree-vect-generic.c (expand_vector_operation): Only call
	expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.

2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
	(RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
	(TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
	* config/rs6000/rs6000-builtin.def (BU_MISC_1):
	Use RS6000_BTM_HARD_FLOAT.
	(BU_MISC_2): Likewise.
	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
	RS6000_BTM_HARD_FLOAT.
	(rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
	is explicitly used.
	(rs6000_invalid_builtin): Add hard floating builtin support.
	(rs6000_expand_builtin): Relax the gcc_assert to allow the new
	hard float builtins.
	(rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.

2014-05-03  Joey Ye  <joey.ye@arm.com>

	Backport from mainline r209463
	2014-04-17  Joey Ye  <joey.ye@arm.com>

	* opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.

2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>

	Back port from mainline
	PR target/61026
	* config/sh/sh.c: Include stdlib headers before everything else.

2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/60930
	* gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
	creating a multiply candidate by folding two constant
	multiplicands when the result overflows.

2014-05-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD
	into account.
	(TARGET_FLOAT): Take AARCH64_ISA_FP into account.

2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Back port from mainline
	2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (PowerPC Built-in Functions): Document new
	powerpc extended divide, bcd, pack/unpack 128-bit, builtin
	functions.
	(PowerPC AltiVec/VSX Built-in Functions): Likewise.

	* config/rs6000/predicates.md (const_0_to_3_operand): New
	predicate to match 0..3 integer constants.

	* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
	to support adding miscellaneous builtin functions.
	(BU_DFP_MISC_2): Likewise.
	(BU_P7_MISC_1): Likewise.
	(BU_P7_MISC_2): Likewise.
	(BU_P8V_MISC_3): Likewise.
	(BU_MISC_1): Likewise.
	(BU_MISC_2): Likewise.
	(DIVWE): Add extended divide builtin functions.
	(DIVWEO): Likewise.
	(DIVWEU): Likewise.
	(DIVWEUO): Likewise.
	(DIVDE): Likewise.
	(DIVDEO): Likewise.
	(DIVDEU): Likewise.
	(DIVDEUO): Likewise.
	(DXEX): Add decimal floating-point builtin functions.
	(DXEXQ): Likewise.
	(DDEDPD): Likewise.
	(DDEDPDQ): Likewise.
	(DENBCD): Likewise.
	(DENBCDQ): Likewise.
	(DIEX): Likewise.
	(DIEXQ): Likewise.
	(DSCLI): Likewise.
	(DSCLIQ): Likewise.
	(DSCRI): Likewise.
	(DSCRIQ): Likewise.
	(CDTBCD): Add new BCD builtin functions.
	(CBCDTD): Likewise.
	(ADDG6S): Likewise.
	(BCDADD): Likewise.
	(BCDADD_LT): Likewise.
	(BCDADD_EQ): Likewise.
	(BCDADD_GT): Likewise.
	(BCDADD_OV): Likewise.
	(BCDSUB): Likewise.
	(BCDSUB_LT): Likewise.
	(BCDSUB_EQ): Likewise.
	(BCDSUB_GT): Likewise.
	(BCDSUB_OV): Likewise.
	(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
	(UNPACK_TD): Likewise.
	(PACK_TF): Likewise.
	(UNPACK_TF): Likewise.
	(UNPACK_TF_0): Likewise.
	(UNPACK_TF_1): Likewise.
	(PACK_V1TI): Likewise.
	(UNPACK_V1TI): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for decimal floating point builtin functions.
	(rs6000_expand_ternop_builtin): Add checks for the new builtin
	functions that take constant arguments.
	(rs6000_invalid_builtin): Add decimal floating point builtin
	support.
	(rs6000_init_builtins): Setup long double, _Decimal64, and
	_Decimal128 types for new builtin functions.
	(builtin_function_type): Set the unsigned flags appropriately for
	the new builtin functions.
	(rs6000_opt_masks): Add support for decimal floating point builtin
	functions.

	* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
	floating point builtin functions.
	(RS6000_BTM_COMMON): Likewise.
	(RS6000_BTI_long_double): Likewise.
	(RS6000_BTI_dfloat64): Likewise.
	(RS6000_BTI_dfloat128): Likewise.
	(long_double_type_internal_node): Likewise.
	(dfloat64_type_internal_node): Likewise.
	(dfloat128_type_internal_node): Likewise.

	* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
	2.07 bcd arithmetic instructions.
	(UNSPEC_BCDSUB): Likewise.
	(UNSPEC_BCD_OVERFLOW): Likewise.
	(UNSPEC_BCD_ADD_SUB): Likewise.
	(bcd_add_sub): Likewise.
	(BCD_TEST): Likewise.
	(bcd<bcd_add_sub>): Likewise.
	(bcd<bcd_add_sub>_test): Likewise.
	(bcd<bcd_add_sub>_test2): Likewise.
	(bcd<bcd_add_sub>_<code>): Likewise.
	(peephole2 for combined bcd ops): Likewise.

	* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
	decimal floating point builtin functions.
	(UNSPEC_DENBCD): Likewise.
	(UNSPEC_DXEX): Likewise.
	(UNSPEC_DIEX): Likewise.
	(UNSPEC_DSCLI): Likewise.
	(UNSPEC_DSCRI): Likewise.
	(D64_D128): Likewise.
	(dfp_suffix): Likewise.
	(dfp_ddedpd_<mode>): Likewise.
	(dfp_denbcd_<mode>): Likewise.
	(dfp_dxex_<mode>): Likewise.
	(dfp_diex_<mode>): Likewise.
	(dfp_dscli_<mode>): Likewise.
	(dfp_dscri_<mode>): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
	builtin functions.
	(UNSPEC_CDTBCD): Likewise.
	(UNSPEC_CBCDTD): Likewise.
	(UNSPEC_DIVE): Add support for new extended divide builtin
	functions.
	(UNSPEC_DIVEO): Likewise.
	(UNSPEC_DIVEU): Likewise.
	(UNSPEC_DIVEUO): Likewise.
	(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
	pack/unpack 128-bit types.
	(UNSPEC_PACK_128BIT): Likewise.
	(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
	(udiv<mode>3): Use idiv_ldiv mode attribute.
	(div<mode>3): Likewise.
	(addg6s): Add new BCD builtin functions.
	(cdtbcd): Likewise.
	(cbcdtd): Likewise.
	(UNSPEC_DIV_EXTEND): Add support for new extended divide
	instructions.
	(div_extend): Likewise.
	(div<div_extend>_<mode>"): Likewise.
	(FP128_64): Add support for new builtin functions to pack/unpack
	128-bit types.
	(unpack<mode>): Likewise.
	(unpacktf_0): Likewise.
	(unpacktf_1): Likewise.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.
	(unpackv1ti): Likewise.
	(packv1ti): Likewise.

2014-04-29  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline
	2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.md (addti3, subti3): New.

2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline
	2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac: Tweak GAS check for LEON instructions on SPARC.
	* configure: Regenerate.
	* config/sparc/sparc.opt (muser-mode): New option.
	* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
	for LEON3.
	(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
	* doc/invoke.texi (SPARC options): Document -muser-mode.

2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/60941
	* config/sparc/sparc.md (ashlsi3_extend): Delete.

2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Back port from main line:
	2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
	for ISA 2.07.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	vbpermq builtins.

	* config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
	vbpermq instruction.
	(altivec_vbpermq): Likewise.

	PR target/60672
	* config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
	enable use of xxsldwi and xxpermdi builtin functions.
	(vec_xxpermdi): Likewise.

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document use of vec_xxsldwi and vec_xxpermdi builtins.

2014-04-23  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-04-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/60909
	* config/i386/i386.c (ix86_expand_builtin)
	<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
	register for target RTX.
	<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.

2014-04-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2014-04-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/60729
	* optabs.c (expand_abs_nojump): Honor flag_trapv only for
	MODE_INTs.  Properly use negv_optab.
	(expand_abs): Likewise.

	2014-04-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60740
	* graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
	over all GIMPLE_COND operands.

2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60635
	* gimplify.c (gimple_regimplify_operands): Update the
	re-gimplifed stmt.

2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Back port from the trunk, subversion id 209546.

	2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60735
	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
	If mode is DDmode and TARGET_E500_DOUBLE allow move.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
	more debug information for E500 if -mdebug=reg.

2014-04-18  Richard Henderson  <rth@redhat.com>

	* config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
	to GET_MODE_SIZE, not a reg_class_t.

2014-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
	little-endian.
	(vsx_xxmrglw_<mode>): Likewise.

2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/60839
	Revert the following patch

	2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Back port mainline subversion id 209025.
	2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60735
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
	software floating point or no floating point registers, do not
	allow any type in the FPRs.  Eliminate a test for SPE SIMD types
	in GPRs that occurs after we tested for GPRs that would never be
	true.

	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
	Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
	since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
	specifically allow DDmode, since that does not use the SPE SIMD
	instructions.

2014-04-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60769
	* lra-constraints.c (simplify_operand_subreg): Force reload of
	paradoxical subreg if it is not in the class contents.

2014-04-10  Jakub Jelinek  <jakub@redhat.com>

	Backport from mainline
	2014-03-12  Jakub Jelinek  <jakub@redhat.com>
		    Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/60502
	* tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
	instead of build_low_bits_mask.

	2013-06-13  Marc Glisse  <marc.glisse@inria.fr>

	* tree.c (build_all_ones_cst): New function.
	* tree.h (build_all_ones_cst): Declare it.

	2013-05-10  Marc Glisse  <marc.glisse@inria.fr>

	* tree.c (build_minus_one_cst): New function.
	* tree.h (build_minus_one_cst): Declare new function.

2014-04-10  Jakub Jelinek  <jakub@redhat.com>

	Backport from mainline
	2014-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/60693
	* config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
	also if addr has VOIDmode.

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

	PR target/60516
	* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
	note creation for the 2010-08-31 changes.

	2014-03-06  Jakub Jelinek  <jakub@redhat.com>
		    Meador Inge  <meadori@codesourcery.com>

	PR target/58595
	* config/arm/arm.c (arm_tls_symbol_p): Remove.
	(arm_legitimize_address): Call legitimize_tls_address for any
	arm_tls_referenced_p expression, handle constant addend.  Call it
	before testing for !TARGET_ARM.
	(thumb_legitimize_address): Don't handle arm_tls_symbol_p here.

2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r208750
	2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_set):  Generate a
	pattern for vector nor instead of subtract from splat(-1).
	(altivec_expand_vec_perm_const_le): Likewise.

	Backport from mainline r209235
	2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
	instead of vnor to exploit possible fusion opportunity in the
	future.
	(altivec_expand_vec_perm_const_le): Likewise.

2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Revert following patch
	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline
	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r202642
	2013-09-17  Alan Modra  <amodra@gmail.com>

	PR target/57589
	* config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
	patch (r199972).

2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline
	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

2014-04-07  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60640
	* ipa-cp.c (propagate_constants_accross_call): Do not propagate
	accross thunks.

2014-04-07  Dominique d'Humieres <dominiq@lps.ens.fr>

	Backport from mainline
	2013-09-14  Iain Sandoe <iains@gcc.gnu.org>

	PR target/48094
	* config/darwin.c (darwin_objc2_section): Note if ObjC Metadata
	is seen.
	(darwin_objc1_section): Likewise.
	(darwin_file_end): Emit Image Info section when required.

2014-04-05  Alan Modra  <amodra@gmail.com>

	Apply from mainline
	2014-01-28  Alan Modra  <amodra@gmail.com>
	* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
	* configure.ac <recursive call for build != host>: Define
	GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
	and LD_FOR_BUILD too.
	* configure: Regenerate.

2014-04-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	Backport from mainline r208895:
	2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
	if it would clobber the stack pointer, even temporarily.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Back port from main line:
	2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document vec_vgbbd.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Back port mainline subversion id 209025.
	2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60735
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
	software floating point or no floating point registers, do not
	allow any type in the FPRs.  Eliminate a test for SPE SIMD types
	in GPRs that occurs after we tested for GPRs that would never be
	true.

	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
	Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
	since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
	specifically allow DDmode, since that does not use the SPE SIMD
	instructions.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r205308
	2013-11-23  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
	(rs6000_xcoff_select_section): Place decls with stricter alignment
	into named sections.
	(rs6000_xcoff_unique_section): Allow unique sections for
	uninitialized data with strict alignment.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gcc/configure: Regenerate.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Back port from trunk
	2013-04-25  Alan Modra  <amodra@gmail.com>

	PR target/57052
	* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
	rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
	(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
	Repeat for many other rotate/shift and mask patterns using subregs.
	Name lshiftrt insns.
	(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
	on WORDS_BIG_ENDIAN.

	2013-06-07  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	override user -mfp-in-toc.
	(offsettable_ok_by_alignment): Consider just the current access
	rather than the whole object, unless BLKmode.  Handle
	CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
	(use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
	for -mcmodel=medium.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
	override user -mfp-in-toc or -msum-in-toc.  Default to
	-mno-fp-in-toc for -mcmodel=medium.

	2013-06-18  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.h (enum data_align): New.
	(LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
	(DATA_ABI_ALIGNMENT): Define.
	(CONSTANT_ALIGNMENT): Correct comment.
	* config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
	* config/rs6000/rs6000.c (rs6000_data_alignment): New function.

	2013-07-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
	Require GOT register as additional operand in UNSPEC.
	("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
	("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
	("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
	("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
	("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
	("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
	("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.

	2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	force flag_ira_loop_pressure if set via command line.

	2014-02-06  Alan Modra  <amodra@gmail.com>

	PR target/60032
	* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
	change SDmode to DDmode when lra_in_progress.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	V1TImode Support
	Back port from trunk
	2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
	(VEC_M): Likewise.
	(VEC_N): Likewise.
	(VEC_R): Likewise.
	(VEC_base): Likewise.
	(mov<MODE>, VEC_M modes): If we are loading TImode into VSX
	registers, we need to swap double words in little endian mode.

	* config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
	to be a container mode for 128-bit integer operations added in ISA
	2.07.  Unlike TImode and PTImode, the preferred register set is
	the Altivec/VMX registers for the 128-bit operations.

	* config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
	declarations.
	(rs6000_split_128bit_ok_p): Likewise.

	* config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
	macros for creating ISA 2.07 normal and overloaded builtin
	functions with 3 arguments.
	(BU_P8V_OVERLOAD_3): Likewise.
	(VPERM_1T): Add support for V1TImode in 128-bit vector operations
	for use as overloaded functions.
	(VPERM_1TI_UNS): Likewise.
	(VSEL_1TI): Likewise.
	(VSEL_1TI_UNS): Likewise.
	(ST_INTERNAL_1ti): Likewise.
	(LD_INTERNAL_1ti): Likewise.
	(XXSEL_1TI): Likewise.
	(XXSEL_1TI_UNS): Likewise.
	(VPERM_1TI): Likewise.
	(VPERM_1TI_UNS): Likewise.
	(XXPERMDI_1TI): Likewise.
	(SET_1TI): Likewise.
	(LXVD2X_V1TI): Likewise.
	(STXVD2X_V1TI): Likewise.
	(VEC_INIT_V1TI): Likewise.
	(VEC_SET_V1TI): Likewise.
	(VEC_EXT_V1TI): Likewise.
	(EQV_V1TI): Likewise.
	(NAND_V1TI): Likewise.
	(ORC_V1TI): Likewise.
	(VADDCUQ): Add support for 128-bit integer arithmetic instructions
	added in ISA 2.07.  Add both normal 'altivec' builtins, and the
	overloaded builtin.
	(VADDUQM): Likewise.
	(VSUBCUQ): Likewise.
	(VADDEUQM): Likewise.
	(VADDECUQ): Likewise.
	(VSUBEUQM): Likewise.
	(VSUBECUQ): Likewise.

	* config/rs6000/rs6000-c.c (__int128_type): New static to hold
	__int128_t and __uint128_t types.
	(__uint128_type): Likewise.
	(altivec_categorize_keyword): Add support for vector __int128_t,
	vector __uint128_t, vector __int128, and vector unsigned __int128
	as a container type for TImode operations that need to be done in
	VSX/Altivec registers.
	(rs6000_macro_to_expand): Likewise.
	(altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
	to support 128-bit integer instructions vaddcuq, vadduqm,
	vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
	(altivec_resolve_overloaded_builtin): Add support for V1TImode.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
	for V1TImode, and set up preferences to use VSX/Altivec
	registers.  Setup VSX reload handlers.
	(rs6000_debug_reg_global): Likewise.
	(rs6000_init_hard_regno_mode_ok): Likewise.
	(rs6000_preferred_simd_mode): Likewise.
	(vspltis_constant): Do not allow V1TImode as easy altivec
	constants.
	(easy_altivec_constant): Likewise.
	(output_vec_const_move): Likewise.
	(rs6000_expand_vector_set): Convert V1TImode set and extract to
	simple move.
	(rs6000_expand_vector_extract): Likewise.
	(reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
	addressing.
	(rs6000_const_vec): Add support for V1TImode.
	(rs6000_emit_le_vsx_load): Swap double words when loading or
	storing TImode/V1TImode.
	(rs6000_emit_le_vsx_store): Likewise.
	(rs6000_emit_le_vsx_move): Likewise.
	(rs6000_emit_move): Add support for V1TImode.
	(altivec_expand_ld_builtin): Likewise.
	(altivec_expand_st_builtin): Likewise.
	(altivec_expand_vec_init_builtin): Likewise.
	(altivec_expand_builtin): Likewise.
	(rs6000_init_builtins): Add support for V1TImode type.  Add
	support for ISA 2.07 128-bit integer builtins.  Define type names
	for the VSX/Altivec vector types.
	(altivec_init_builtins): Add support for overloaded vector
	functions with V1TImode type.
	(rs6000_preferred_reload_class): Prefer Altivec registers for
	V1TImode.
	(rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
	external function.
	(rs6000_split_128bit_ok_p): Likewise.
	(rs6000_handle_altivec_attribute): Create V1TImode from vector
	__int128_t and vector __uint128_t.

	* config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
	and mode attributes.
	(VSX_M): Likewise.
	(VSX_M2): Likewise.
	(VSm): Likewise.
	(VSs): Likewise.
	(VSr): Likewise.
	(VSv): Likewise.
	(VS_scalar): Likewise.
	(VS_double): Likewise.
	(vsx_set_v1ti): New builtin function to create V1TImode from
	TImode.

	* config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
	whether we support the ISA 2.07 128-bit integer arithmetic
	instructions.
	(ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
	(enum rs6000_builtin_type_index): Add fields to hold V1TImode
	and TImode types for use with the builtin functions.
	(V1TI_type_node): Likewise.
	(unsigned_V1TI_type_node): Likewise.
	(intTI_type_internal_node): Likewise.
	(uintTI_type_internal_node): Likewise.

	* config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA
	2.07 128-bit builtin functions.
	(UNSPEC_VADDEUQM): Likewise.
	(UNSPEC_VADDECUQ): Likewise.
	(UNSPEC_VSUBCUQ): Likewise.
	(UNSPEC_VSUBEUQM): Likewise.
	(UNSPEC_VSUBECUQ): Likewise.
	(VM): Add V1TImode to vector mode iterators.
	(VM2): Likewise.
	(VI_unit): Likewise.
	(altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
	(altivec_vaddcuq): Likewise.
	(altivec_vsubuqm): Likewise.
	(altivec_vsubcuq): Likewise.
	(altivec_vaddeuqm): Likewise.
	(altivec_vaddecuq): Likewise.
	(altivec_vsubeuqm): Likewise.
	(altivec_vsubecuq): Likewise.

	* config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
	mode iterators.
	(BOOL_128): Likewise.
	(BOOL_REGS_OUTPUT): Likewise.
	(BOOL_REGS_OP1): Likewise.
	(BOOL_REGS_OP2): Likewise.
	(BOOL_REGS_UNARY): Likewise.
	(BOOL_REGS_AND_CR0): Likewise.

	* config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
	128-bit integer builtin support.
	(vec_vadduqm): Likewise.
	(vec_vaddecuq): Likewise.
	(vec_vaddeuqm): Likewise.
	(vec_vsubecuq): Likewise.
	(vec_vsubeuqm): Likewise.
	(vec_vsubcuq): Likewise.
	(vec_vsubuqm): Likewise.

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
	vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
	128-bit integer add/subtract to ISA 2.07.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Apply mainline r207798
	2014-02-26  Alan Modra  <amodra@gmail.com>
	PR target/58675
	PR target/57935
	* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
	find_replacement on parts of insn rtl that might be reloaded.

	Backport from mainline r208287
	2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
	reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
	constraint on constants to permit them being loaded into
	GENERAL_REGS or BASE_REGS.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r207699.
	2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60137
	* config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
	for VSX/Altivec vectors that land in GPR registers.

	Backport from mainline r207808.
	2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60203
	* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
	(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
	into 64-bit and 32-bit moves.  On 64-bit moves, add support for
	using direct move instructions on ISA 2.07.  Also adjust
	instruction length for 64-bit.
	(mov<mode>_64bit, TFmode/TDmode): Likewise.
	(mov<mode>_32bit, TFmode/TDmode): Likewise.

	Backport from mainline r207868.
	2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60203
	* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
	Split 64-bit moves into 2 patterns.  Do not allow the use of
	direct move for TDmode in little endian, since the decimal value
	has little endian bytes within a word, but the 64-bit pieces are
	ordered in a big endian fashion, and normal subreg's of TDmode are
	not allowed.
	(mov<mode>_64bit_dm): Likewise.
	(movtd_64bit_nodm): Likewise.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r207658
	2014-02-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
	big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
	-mcall-openbsd, or -mcall-linux.
	(CC1_ENDIAN_BIG_SPEC): Remove.
	(CC1_ENDIAN_LITTLE_SPEC): Remove.
	(CC1_ENDIAN_DEFAULT_SPEC): Remove.
	(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
	(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
	and %cc1_endian_default.
	* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Little Endian Vector API Support
	Backport from mainline r206443
	2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
	two duplicate entries.

	Backport from mainline r206494
	2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* doc/invoke.texi: Add -maltivec={be,le} options, and document
	default element-order behavior for -maltivec.
	* config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
	that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
	when targeting big endian, at least for now.
	* config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.

	Backport from mainline r206541
	2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.

	Backport from mainline r206590
	2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Implement -maltivec=be for vec_insert and vec_extract.

	Backport from mainline r206641
	2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
	and vmulosh rather than call gen_vec_widen_smult_*.
	(vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
	than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
	(vec_widen_smult_even_v16qi): Likewise.
	(vec_widen_umult_even_v8hi): Likewise.
	(vec_widen_smult_even_v8hi): Likewise.
	(vec_widen_umult_odd_v16qi): Likewise.
	(vec_widen_smult_odd_v16qi): Likewise.
	(vec_widen_umult_odd_v8hi): Likewise.
	(vec_widen_smult_odd_v8hi): Likewise.
	(vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
	vmuloub rather than call gen_vec_widen_umult_*.
	(vec_widen_umult_lo_v16qi): Likewise.
	(vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
	vmulosb rather than call gen_vec_widen_smult_*.
	(vec_widen_smult_lo_v16qi): Likewise.
	(vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
	rather than call gen_vec_widen_umult_*.
	(vec_widen_umult_lo_v8hi): Likewise.
	(vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
	rather than call gen_vec_widen_smult_*.
	(vec_widen_smult_lo_v8hi): Likewise.

	Backport from mainline r207062
	2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
	correction for little endian...
	* config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
	here.

	Backport from mainline r207262
	2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
	CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
	-maltivec=be with LE targets.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
	unspecs.
	(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
	(altivec_vmrghb): Replace with define_expand and new
	*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghb_direct): New define_insn.
	(altivec_vmrghh): Replace with define_expand and new
	*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghh_direct): New define_insn.
	(altivec_vmrghw): Replace with define_expand and new
	*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghw_direct): New define_insn.
	(*altivec_vmrghsf): Adjust for endianness.
	(altivec_vmrglb): Replace with define_expand and new
	*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglb_direct): New define_insn.
	(altivec_vmrglh): Replace with define_expand and new
	*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglh_direct): New define_insn.
	(altivec_vmrglw): Replace with define_expand and new
	*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglw_direct): New define_insn.
	(*altivec_vmrglsf): Adjust for endianness.
	(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
	(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.

	Backport from mainline r207318
	2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
	gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
	remove element index adjustment for endian (now handled in vsx.md
	and altivec.md).
	(altivec_expand_vec_perm_const): Use
	gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
	* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
	(vsx_xxspltw_<mode>): Adjust element index for little endian.
	* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
	define_expand and a new define_insn *altivec_vspltb_internal;
	adjust for -maltivec=be on a little endian target.
	(altivec_vspltb_direct): New.
	(altivec_vsplth): Divide into a define_expand and a new
	define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
	little endian target.
	(altivec_vsplth_direct): New.
	(altivec_vspltw): Divide into a define_expand and a new
	define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
	little endian target.
	(altivec_vspltw_direct): New.
	(altivec_vspltsf): Divide into a define_expand and a new
	define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
	a little endian target.

	Backport from mainline r207326
	2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
	unused variable "field".
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (altivec_vmrghb): Likewise.
	(altivec_vmrghh): Likewise.
	(altivec_vmrghw): Likewise.
	(altivec_vmrglb): Likewise.
	(altivec_vmrglh): Likewise.
	(altivec_vmrglw): Likewise.
	(altivec_vspltb): Add missing uses.
	(altivec_vsplth): Likewise.
	(altivec_vspltw): Likewise.
	(altivec_vspltsf): Likewise.

	Backport from mainline r207414
	2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
	(altivec_vsumsws): Add handling for -maltivec=be with a little
	endian target.
	(altivec_vsumsws_direct): New.
	(reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
	gen_altivec_vsumsws.

	Backport from mainline r207415
	2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
	for vector types other than V16QImode.
	* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
	define_expand, and call altivec_expand_vec_perm_le when producing
	code with little endian element order.
	(*altivec_vperm_<mode>_internal): New insn having previous
	behavior of altivec_vperm_<mode>.
	(altivec_vperm_<mode>_uns): Change to a define_expand, and call
	altivec_expand_vec_perm_le when producing code with little endian
	element order.
	(*altivec_vperm_<mode>_uns_internal): New insn having previous
	behavior of altivec_vperm_<mode>_uns.

	Backport from mainline r207520
	2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
	(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
	(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
	(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
	gen_altivec_vpkuwum.
	(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
	BYTES_BIG_ENDIAN.
	(altivec_vpks<VI_char>ss): Likewise.
	(altivec_vpks<VI_char>us): Likewise.
	(altivec_vpku<VI_char>us): Likewise.
	(altivec_vpku<VI_char>um): Likewise.
	(altivec_vpku<VI_char>um_direct): New (copy of
	altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
	internal use).
	(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
	target is little endian and -maltivec=be is not specified.
	(*altivec_vupkhs<VU_char>_direct): New (copy of
	altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
	use).
	(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
	target is little endian and -maltivec=be is not specified.
	(*altivec_vupkls<VU_char>_direct): New (copy of
	altivec_vupkls<VU_char> that always emits vupkls*, for internal
	use).
	(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
	little endian and -maltivec=be is not specified.
	(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
	little endian and -maltivec=be is not specified.

	Backport from mainline r207521
	2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
	generation for -maltivec=be.
	(altivec_vsumsws): Simplify redundant test.

	Backport from mainline r207525
	2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
	CODE_FOR_altivec_vpku[hw]um to
	CODE_FOR_altivec_vpku[hw]um_direct.
	* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
	UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
	(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
	UNSPEC_VUNPACK_LO_SIGN_DIRECT.

	Backport from mainline r207814.
	2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
	endian targets.

	Backport from mainline r207815.
	2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (p8_vmrgew): Handle little endian
	targets.
	(p8_vmrgow): Likewise.

	Backport from mainline r207919.
	2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (vspltis_constant): Fix most significant
	bit of zero.

	Backport from mainline 208019
	2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_lvxl): Rename as
	*altivec_lvxl_<mode>_internal and use VM2 iterator instead of
	V4SI.
	(altivec_lvxl_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	(altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
	(altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
	semantics where needed.
	(altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
	(altivec_stvx_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	(altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
	VM2 iterator instead of V4SI.
	(altivec_stvxl_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	* config/rs6000/rs6000-builtin.def: Add new built-in definitions
	LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
	LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
	STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
	STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
	STVXL_V16QI.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
	ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
	similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
	ALTIVEC_BUILTIN_STVXL.
	* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
	prototype.
	(altivec_expand_stvx_be): Likewise.
	* config/rs6000/rs6000.c (swap_selector_for_mode): New function.
	(altivec_expand_lvx_be): Likewise.
	(altivec_expand_stvx_be): Likewise.
	(altivec_expand_builtin): Add cases for
	ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
	ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
	(altivec_init_builtins): Add definitions for
	__builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
	__builtin_altivec_stvx_<mode>, and
	__builtin_altivec_stvxl_<mode>.

	Backport from mainline 208021
	2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_vsumsws): Replace second
	vspltw with vsldoi.
	(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
	gen_altivec_vsumsws.

	Backport from mainline 208049
	2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
	define_insn with define_expand and new define_insn
	*altivec_lve<VI_char>x_internal.
	(altivec_stve<VI_char>x): Replace define_insn with define_expand
	and new define_insn *altivec_stve<VI_char>x_internal.
	* config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
	prototype.
	* config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
	lve*x built-ins.
	(altivec_expand_stvex_be): New function.

	Backport from mainline
	2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
	to permit subregs.

	Backport from mainline
	2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	* config/rs6000/vector.md (*vector_unordered<mode>): Change split
	to use canonical form for nor<mode>3.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2014-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA
	register allocator.

	* config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to
	enable the LRA register allocator.  Back port the changes from the
	trunk to enable LRA.
	(rs6000_legitimate_offset_address_p): Likewise.
	(legitimate_lo_sum_address_p): Likewise.
	(use_toc_relative_ref): Likewise.
	(rs6000_legitimate_address_p): Likewise.
	(rs6000_emit_move): Likewise.
	(rs6000_secondary_memory_needed_mode): Likewise.
	(rs6000_alloc_sdmode_stack_slot): Likewise.
	(rs6000_lra_p): Likewise.

	* config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by
	64-bit parts to force the register allocator to allocate even/odd
	register pairs for the quad word atomic instructions.
	(store_conditionalti): Likewise.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Back port from mainline
	2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59909
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mquad-memory-atomic.  Update -mquad-memory documentation to say
	it is only used for non-atomic loads/stores.

	* config/rs6000/predicates.md (quad_int_reg_operand): Allow either
	-mquad-memory or -mquad-memory-atomic switches.

	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
	-mquad-memory-atomic to ISA 2.07 support.

	* config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
	to separate support of normal quad word memory operations (ldq,
	stq) from the atomic quad word memory operations.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
	support to separate non-atomic quad word operations from atomic
	quad word operations.  Disable non-atomic quad word operations in
	little endian mode so that we don't have to swap words after the
	load and before the store.
	(quad_load_store_p): Add comment about atomic quad word support.
	(rs6000_opt_masks): Add -mquad-memory-atomic to the list of
	options printed with -mdebug=reg.

	* config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
	-mquad-memory-atomic as the test for whether we have quad word
	atomic instructions.
	(TARGET_SYNC_HI_QI): If either -mquad-memory-atomic,
	-mquad-memory, or -mp8-vector are used, allow byte/half-word
	atomic operations.

	* config/rs6000/sync.md (load_lockedti): Insure that the address
	is a proper indexed or indirect address for the lqarx instruction.
	On little endian systems, swap the hi/lo registers after the lqarx
	instruction.
	(load_lockedpti): Use indexed_or_indirect_operand predicate to
	insure the address is valid for the lqarx instruction.
	(store_conditionalti): Insure that the address is a proper indexed
	or indirect address for the stqcrx. instruction.  On little endian
	systems, swap the hi/lo registers before doing the stqcrx.
	instruction.
	(store_conditionalpti): Use indexed_or_indirect_operand predicate to
	insure the address is valid for the stqcrx. instruction.

	* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
	Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
	type of quad memory support is available.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Apply mainline r202190, powerpc64le multilibs and multiarch dir
	2013-09-03  Alan Modra  <amodra@gmail.com>

	* config.gcc (powerpc*-*-linux*): Add support for little-endian
	multilibs to big-endian target and vice versa.
	* config/rs6000/t-linux64: Use := assignment on all vars.
	(MULTILIB_EXTRA_OPTS): Remove fPIC.
	(MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
	* config/rs6000/t-linux64le: New file.
	* config/rs6000/t-linux64bele: New file.
	* config/rs6000/t-linux64lebe: New file.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Back port from mainline
	2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59844
	* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
	endian support, remove tests for WORDS_BIG_ENDIAN.
	(p8_mfvsrd_3_<mode>): Likewise.
	(reload_gpr_from_vsx<mode>): Likewise.
	(reload_gpr_from_vsxsf): Likewise.
	(p8_mfvsrd_4_disf): Likewise.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/56843
	* config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
	(rs6000_emit_swdiv_low_precision): Remove.
	(rs6000_emit_swdiv): Rewrite to handle between one and four
	iterations of Newton-Raphson generally; modify required number of
	iterations for some cases.
	* config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
		    Jakub Jelinek  <jakub@redhat.com>

	* builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
	(BUILT_IN_FABSD64): Likewise.
	(BUILT_IN_FABSD128): Likewise.
	* builtins.c (expand_builtin): Add support for
	new DFP ABS builtins.
	(fold_builtin_1): Likewise.
	* config/rs6000/dfp.md
	(*abstd2_fpr): Handle non-overlapping destination
	and source operands.
	(*nabstd2_fpr): Likewise.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Apply mainline r205060.
	2013-11-20  Alan Modra  <amodra@gmail.com>
	* config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Default
	to strict alignment on older processors when little-endian.
	* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
	for ELFv2.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	POWER ELFv2 ABI Support
	Backport from mainline r204842:

	2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.

	Backport from mainline r204809:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.

	Backport from mainline r204808:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
		    Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
	(RS6000_SAVE_TOC): Remove.
	(RS6000_TOC_SAVE_SLOT): New macro.
	* config/rs6000/rs6000.c (rs6000_parm_offset): New function.
	(rs6000_parm_start): Use it.
	(rs6000_function_arg_advance_1): Likewise.
	(rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
	(rs6000_emit_epilogue): Likewise.
	(rs6000_call_aix): Likewise.
	(rs6000_output_function_prologue): Do not save/restore r11
	around calling _mcount for ABI_ELFv2.

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
		    Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
	Add prototype.
	* config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
	(REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
	* config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
	(rs6000_function_parms_need_stack): Likewise.
	(rs6000_reg_parm_stack_space): Likewise.
	(rs6000_function_arg): Do not replace BLKmode by Pmode when
	returning a register argument.

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
		    Michael Gschwind  <mkg@us.ibm.com>

	* config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
	(ALTIVEC_ARG_MAX_RETURN): Likewise.
	(FUNCTION_VALUE_REGNO_P): Use them.
	* config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
	(rs6000_return_in_msb): New function.
	(rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
	Handle aggregates of up to 16 bytes for ELFv2.
	(rs6000_function_value): Handle ELFv2 homogeneous aggregates.

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
		    Michael Gschwind  <mkg@us.ibm.com>

	* config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
	(rs6000_discover_homogeneous_aggregate): Likewise.
	(rs6000_function_arg_boundary): Handle homogeneous aggregates.
	(rs6000_function_arg_advance_1): Likewise.
	(rs6000_function_arg): Likewise.
	(rs6000_arg_partial_bytes): Likewise.
	(rs6000_psave_function_arg): Handle BLKmode arguments.

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
		    Michael Gschwind  <mkg@us.ibm.com>

	* config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
	(rs6000_discover_homogeneous_aggregate): Likewise.
	(rs6000_function_arg_boundary): Handle homogeneous aggregates.
	(rs6000_function_arg_advance_1): Likewise.
	(rs6000_function_arg): Likewise.
	(rs6000_arg_partial_bytes): Likewise.
	(rs6000_psave_function_arg): Handle BLKmode arguments.

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (machine_function): New member
	r2_setup_needed.
	(rs6000_emit_prologue): Set r2_setup_needed if necessary.
	(rs6000_output_mi_thunk): Set r2_setup_needed.
	(rs6000_output_function_prologue): Output global entry point
	prologue and local entry point marker if needed for ABI_ELFv2.
	Output -mprofile-kernel code here.
	(output_function_profiler): Do not output -mprofile-kernel
	code here; moved to rs6000_output_function_prologue.
	(rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.

	(rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
	(rs6000_output_function_entry): Likewise.
	(rs6000_assemble_integer): Likewise.
	(rs6000_elf_encode_section_info): Likewise.
	(rs6000_elf_declare_function_name): Do not create dot symbols
	or .opd section for ABI_ELFv2.

	(rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
	(rs6000_trampoline_init): Likewise.
	(rs6000_elf_file_end): Call file_end_indicate_exec_stack
	for ABI_ELFv2.

	(rs6000_call_aix): Handle ELFv2 indirect calls.  Do not check
	for function descriptors in ABI_ELFv2.

	* config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
	on ABI_AIX only, not ABI_ELFv2.
	("*call_value_indirect_aix<mode>"): Likewise.
	("*call_indirect_elfv2<mode>"): New pattern.
	("*call_value_indirect_elfv2<mode>"): Likewise.

	* config/rs6000/predicates.md ("symbol_ref_operand"): Do not
	check for function descriptors in ABI_ELFv2.
	("current_file_function_operand"): Likewise.

	* config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
	(toc): Undefine.
	(FUNC_NAME): Define ELFv2 variant.
	(JUMP_TARGET): Likewise.
	(FUNC_START): Likewise.
	(HIDDEN_FUNC): Likewise.
	(FUNC_END): Likeiwse.

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
	and --with-abi=elfv2.
	* config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
	* config/rs6000/rs6000.opt (mabi=elfv1): New option.
	(mabi=elfv2): Likewise.
	* config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
	* config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
	if !RS6000_BI_ARCH.
	(ELFv2_ABI_CHECK): New macro.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
	rs6000_current_abi to ABI_AIX or ABI_ELFv2.
	(GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
	_CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
	(debug_stack_info): Likewise.
	(rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
	(rs6000_legitimize_tls_address): Likewise.
	(rs6000_conditional_register_usage): Likewise.
	(rs6000_emit_move): Likewise.
	(init_cumulative_args): Likewise.
	(rs6000_function_arg_advance_1): Likewise.
	(rs6000_function_arg): Likewise.
	(rs6000_arg_partial_bytes): Likewise.
	(rs6000_output_function_entry): Likewise.
	(rs6000_assemble_integer): Likewise.
	(rs6000_savres_strategy): Likewise.
	(rs6000_stack_info): Likewise.
	(rs6000_function_ok_for_sibcall): Likewise.
	(rs6000_emit_load_toc_table): Likewise.
	(rs6000_savres_routine_name): Likewise.
	(ptr_regno_for_savres): Likewise.
	(rs6000_emit_prologue): Likewise.
	(rs6000_emit_epilogue): Likewise.
	(rs6000_output_function_epilogue): Likewise.
	(output_profile_hook): Likewise.
	(output_function_profiler): Likewise.
	(rs6000_trampoline_size): Likewise.
	(rs6000_trampoline_init): Likewise.
	(rs6000_elf_output_toc_section_asm_op): Likewise.
	(rs6000_elf_encode_section_info): Likewise.
	(rs6000_elf_reloc_rw_mask): Likewise.
	(rs6000_elf_declare_function_name): Likewise.
	(rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
	except that rs6000_compat_align_parm is always assumed false.
	(rs6000_gimplify_va_arg): Likewise.
	(rs6000_call_aix): Update comment.
	(rs6000_sibcall_aix): Likewise.
	* config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
	Treat ABI_ELFv2 the same as ABI_AIX.
	("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
	("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
	("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
	("load_toc_aix_si"): Likewise.
	("load_toc_aix_di"): Likewise.
	("call"): Likewise.
	("call_value"): Likewise.
	("*call_local_aix<mode>"): Likewise.
	("*call_value_local_aix<mode>"): Likewise.
	("*call_nonlocal_aix<mode>"): Likewise.
	("*call_value_nonlocal_aix<mode>"): Likewise.
	("*call_indirect_aix<mode>"): Likewise.
	("*call_value_indirect_aix<mode>"): Likewise.
	("sibcall"): Likewise.
	("sibcall_value"): Likewise.
	("*sibcall_aix<mode>"): Likewise.
	("*sibcall_value_aix<mode>"): Likewise.
	* config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
	("current_file_function_operand"): Likewise.

	Backport from mainline r204807:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
	by making use of the fact that for vector / floating point arguments
	passed both in VRs/FPRs and in the fixed parameter area, the partial
	bytes mechanism is in fact not used.

	Backport from mainline r204806:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
	(rs6000_finish_function_arg): Likewise.
	(rs6000_function_arg): Use rs6000_psave_function_arg and
	rs6000_finish_function_arg to handle both vector and floating
	point arguments that are also passed in GPRs / the stack.

	Backport from mainline r204805:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
	(USE_ALTIVEC_FOR_ARG_P): Likewise.
	(rs6000_darwin64_record_arg_advance_recurse): Update uses.
	(rs6000_function_arg_advance_1):Likewise.
	(rs6000_darwin64_record_arg_recurse): Likewise.
	(rs6000_function_arg): Likewise.
	(rs6000_arg_partial_bytes): Likewise.

	Backport from mainline r204804:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
	"DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
	(rs6000_savres_strategy): Likewise.
	(rs6000_return_addr): Likewise.
	(rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
	testing for ABI_V4 (since ABI_DARWIN is impossible here).
	(rs6000_emit_prologue): Likewise.
	(legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
	(rs6000_elf_declare_function_name): Remove duplicated test.
	* config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
	for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
	("load_toc_v4_PIC_1_normal"): Likewise.
	("load_toc_v4_PIC_1_476"): Likewise.
	("load_toc_v4_PIC_1b"): Likewise.
	("load_toc_v4_PIC_1b_normal"): Likewise.
	("load_toc_v4_PIC_1b_476"): Likewise.
	("load_toc_v4_PIC_2"): Likewise.
	("load_toc_v4_PIC_3b"): Likewise.
	("load_toc_v4_PIC_3c"): Likewise.
	* config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
	(RS6000_SAVE_AREA): Likewise.
	(FP_ARG_MAX_REG): Likewise.
	(RETURN_ADDRESS_OFFSET): Likewise.
	* config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
	of ABI_AIX.
	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(MINIMAL_TOC_SECTION_ASM_OP): Likewise.

	Backport from mainline r204803:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
	(rs6000_call_aix): ... this.  Handle both direct and indirect calls.
	Create call insn directly instead of via various gen_... routines.
	Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
	(rs6000_sibcall_aix): New function.
	* config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
	(TOC_SAVE_OFFSET_64BIT): Likewise.
	(AIX_FUNC_DESC_TOC_32BIT): Likewise.
	(AIX_FUNC_DESC_TOC_64BIT): Likewise.
	(AIX_FUNC_DESC_SC_32BIT): Likewise.
	(AIX_FUNC_DESC_SC_64BIT): Likewise.
	("call" expander): Call rs6000_call_aix.
	("call_value" expander): Likewise.
	("call_indirect_aix<ptrsize>"): Replace this pattern ...
	("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
	("*call_indirect_aix<mode>"): ... by this insn pattern.
	("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
	("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
	("*call_value_indirect_aix<mode>"): ... by this insn pattern.
	("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
	("*call_nonlocal_aix<mode>"): ... this pattern.
	("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
	("*call_value_nonlocal_aix<mode>"): ... by this pattern.
	("*call_local_aix<mode>"): New insn pattern.
	("*call_value_local_aix<mode>"): Likewise.
	("sibcall" expander): Call rs6000_sibcall_aix.
	("sibcall_value" expander): Likewise.  Move earlier in file.
	("*sibcall_nonlocal_aix<mode>"): Replace by ...
	("*sibcall_aix<mode>"): ... this pattern.
	("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
	("*sibcall_value_aix<mode>"): ... this pattern.
	* config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
	(rs6000_call_aix): Add prototype.
	(rs6000_sibcall_aix): Likewise.

	Backport from mainline r204799:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
	RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
	Instead, add USEs of all modified call-saved CR fields to the
	insn storing the result to the stack slot, and provide an
	appropriate REG_FRAME_RELATED_EXPR for that insn.
	* config/rs6000/rs6000.md ("*crsave"): New insn pattern.
	* config/rs6000/predicates.md ("crsave_operation"): New predicate.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	ELFv2 ABI Call Support
	Backport from mainline r204798:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
		    Alan Modra  <amodra@gmail.com>

	* function.c (assign_parms): Use all.reg_parm_stack_space instead
	of re-evaluating REG_PARM_STACK_SPACE target macro.
	(locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE.  Use it
	instead of evaluating target macro REG_PARM_STACK_SPACE every time.
	(assign_parm_find_entry_rtl): Update call.
	* calls.c (initialize_argument_information): Update call.
	(emit_library_call_value_1): Likewise.
	* expr.h (locate_and_pad_parm): Update prototype.

	Backport from mainline r204797:

	2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
	arguments.

	Backport from mainline r197003:

	2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* calls.c (expand_call): Add missing guard to code handling return
	of non-BLKmode structures in MSB.
	* function.c (expand_function_end): Likewise.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r201750.
	Note: Default setting of -mcompat-align-parm inverted!

	2013-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/57949
	* doc/invoke.texi: Add documentation of mcompat-align-parm
	option.
	* config/rs6000/rs6000.opt: Add mcompat-align-parm option.
	* config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
	and Linux, correct BLKmode alignment when 128-bit alignment is
	required and compatibility flag is not set.
	(rs6000_gimplify_va_arg): For AIX and Linux, honor specified
	alignment for zero-size arguments when compatibility flag is not
	set.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Little Endian Vector Support
	Backport from mainline r205333
	2013-11-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
	for little endian.

	Backport from mainline r205241
	2013-11-21  Bill Schmidt  <wschmidt@vnet.ibm.com>

	* config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
	little endian change.
	(vec_pack_sfix_trunc_v2df): Likewise.
	(vec_pack_ufix_trunc_v2df): Likewise.
	* config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
	double checking of endianness.

	Backport from mainline r205146
	2013-11-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
	(vsx_extract_<mode>): Likewise.
	(*vsx_extract_<mode>_one_le): New LE variant on
	*vsx_extract_<mode>_zero.
	(vsx_extract_v4sf): Adjust for little endian.

	Backport from mainline r205080
	2013-11-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
	V16QI vector splat case for little endian.

	Backport from mainline r205045:

	2013-11-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/vector.md ("mov<mode>"): Do not call
	rs6000_emit_le_vsx_move to move into or out of GPRs.
	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
	source and destination are not GPR hard regs.

	Backport from mainline r204920
	2011-11-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
	parameter and use it in REG_FRAME_RELATED_EXPR note.
	(emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
	parameter.
	(rs6000_emit_prologue): Likewise, but for little endian VSX
	stores, pass the source register of the store instead.

	Backport from mainline r204862
	2013-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
	Remove.
	(altivec_vperm_<mode>): Revert earlier little endian change.
	(*altivec_vperm_<mode>_internal): Remove.
	(altivec_vperm_<mode>_uns): Revert earlier little endian change.
	(*altivec_vperm_<mode>_uns_internal): Remove.
	* config/rs6000/vector.md (vec_realign_load_<mode>): Revise
	commentary.

	Backport from mainline r204441
	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Remove restriction against use of VSX instructions when generating
	code for little endian mode.

	Backport from mainline r204440
	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
	for both big and little endian.
	(mulv8hi3): Swap input operands for merge high and merge low
	instructions for little endian.

	Backport from mainline r204439
	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
	define_insn to define_expand that uses even patterns for big
	endian and odd patterns for little endian.
	(vec_widen_smult_even_v16qi): Likewise.
	(vec_widen_umult_even_v8hi): Likewise.
	(vec_widen_smult_even_v8hi): Likewise.
	(vec_widen_umult_odd_v16qi): Likewise.
	(vec_widen_smult_odd_v16qi): Likewise.
	(vec_widen_umult_odd_v8hi): Likewise.
	(vec_widen_smult_odd_v8hi): Likewise.
	(altivec_vmuleub): New define_insn.
	(altivec_vmuloub): Likewise.
	(altivec_vmulesb): Likewise.
	(altivec_vmulosb): Likewise.
	(altivec_vmuleuh): Likewise.
	(altivec_vmulouh): Likewise.
	(altivec_vmulesh): Likewise.
	(altivec_vmulosh): Likewise.

	Backport from mainline r204395
	2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
	little endian.
	(vec_pack_ufix_trunc_v2df): Likewise.

	Backport from mainline r204363
	2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
	arguments to merge instruction for little endian.
	(vec_widen_umult_lo_v16qi): Likewise.
	(vec_widen_smult_hi_v16qi): Likewise.
	(vec_widen_smult_lo_v16qi): Likewise.
	(vec_widen_umult_hi_v8hi): Likewise.
	(vec_widen_umult_lo_v8hi): Likewise.
	(vec_widen_smult_hi_v8hi): Likewise.
	(vec_widen_smult_lo_v8hi): Likewise.

	Backport from mainline r204350
	2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
	Replace the define_insn_and_split with a define_insn and two
	define_splits, with the split after reload re-permuting the source
	register to its original value.
	(*vsx_le_perm_store_<mode> for VSX_W): Likewise.
	(*vsx_le_perm_store_v8hi): Likewise.
	(*vsx_le_perm_store_v16qi): Likewise.

	Backport from mainline r204321
	2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vector.md (vec_pack_trunc_v2df):  Adjust for
	little endian.

	Backport from mainline r204321
	2013-11-02  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
	little endian.

	Backport from mainline r203980
	2013-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.

	Backport from mainline r203930
	2013-10-22  Bill Schmidt  <wschmidt@vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
	meaning of merge-high and merge-low masks for little endian; avoid
	use of vector-pack masks for little endian for mismatched modes.

	Backport from mainline r203877
	2013-10-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
	little endian.
	(vec_unpacku_hi_v8hi): Likewise.
	(vec_unpacku_lo_v16qi): Likewise.
	(vec_unpacku_lo_v8hi): Likewise.

	Backport from mainline r203863
	2013-10-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (vspltis_constant): Make sure we check
	all elements for both endian flavors.

	Backport from mainline r203714
	2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
	endianness.
	(vec_unpacks_lo_v4sf): Likewise.
	(vec_unpacks_float_hi_v4si): Likewise.
	(vec_unpacks_float_lo_v4si): Likewise.
	(vec_unpacku_float_hi_v4si): Likewise.
	(vec_unpacku_float_lo_v4si): Likewise.

	Backport from mainline r203713
	2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
	(vsx_concat_v2sf): Likewise.

	Backport from mainline r203458
	2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
	handle vector float as well.
	(*vsx_le_perm_load_v4si): Likewise.
	(*vsx_le_perm_store_v2di): Likewise.
	(*vsx_le_perm_store_v4si): Likewise.

	Backport from mainline r203457
	2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
	directly to circumvent subtract from splat{31} workaround.
	* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
	prototype.
	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
	* config/rs6000/altivec.md (define_c_enum "unspec"): Add
	UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
	(altivec_vperm_<mode>): Convert to define_insn_and_split to
	separate big and little endian logic.
	(*altivec_vperm_<mode>_internal): New define_insn.
	(altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
	separate big and little endian logic.
	(*altivec_vperm_<mode>_uns_internal): New define_insn.
	(vec_permv16qi): Add little endian logic.

	Backport from mainline r203247
	2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
	(altivec_expand_vec_perm_const): Call it.

	Backport from mainline r203246
	2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vector.md (mov<mode>): Emit permuted move
	sequences for LE VSX loads and stores at expand time.
	* config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
	prototype.
	* config/rs6000/rs6000.c (rs6000_const_vec): New.
	(rs6000_gen_le_vsx_permute): New.
	(rs6000_gen_le_vsx_load): New.
	(rs6000_gen_le_vsx_store): New.
	(rs6000_gen_le_vsx_move): New.
	* config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
	(*vsx_le_perm_load_v4si): New.
	(*vsx_le_perm_load_v8hi): New.
	(*vsx_le_perm_load_v16qi): New.
	(*vsx_le_perm_store_v2di): New.
	(*vsx_le_perm_store_v4si): New.
	(*vsx_le_perm_store_v8hi): New.
	(*vsx_le_perm_store_v16qi): New.
	(*vsx_xxpermdi2_le_<mode>): New.
	(*vsx_xxpermdi4_le_<mode>): New.
	(*vsx_xxpermdi8_le_V8HI): New.
	(*vsx_xxpermdi16_le_V16QI): New.
	(*vsx_lxvd2x2_le_<mode>): New.
	(*vsx_lxvd2x4_le_<mode>): New.
	(*vsx_lxvd2x8_le_V8HI): New.
	(*vsx_lxvd2x16_le_V16QI): New.
	(*vsx_stxvd2x2_le_<mode>): New.
	(*vsx_stxvd2x4_le_<mode>): New.
	(*vsx_stxvd2x8_le_V8HI): New.
	(*vsx_stxvd2x16_le_V16QI): New.

	Backport from mainline r201235
	2013-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
	            Anton Blanchard <anton@au1.ibm.com>

	* config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
	(altivec_vpks<VI_char>ss): Likewise.
	(altivec_vpks<VI_char>us): Likewise.
	(altivec_vpku<VI_char>us): Likewise.
	(altivec_vpku<VI_char>um): Likewise.

	Backport from mainline r201208
	2013-07-24  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
	            Anton Blanchard <anton@au1.ibm.com>

	* config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
	operands to vperm for little endian.
	* config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
	of lvsl to create the control mask for a vperm for little endian.

	Backport from mainline r201195
	2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	            Anton Blanchard <anton@au1.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
	two operands for little-endian.

	Backport from mainline r201193
	2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	            Anton Blanchard <anton@au1.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
	selection of field for vector splat in little endian mode.

	Backport from mainline r201149
	2013-07-22  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
	            Anton Blanchard <anton@au1.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
	endianness when selecting field to splat.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r205123:

	2013-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
	allow subregs of TDmode in FPRs of smaller size in little-endian.
	(rs6000_split_multireg_move): When splitting an access to TDmode
	in FPRs, do not use simplify_gen_subreg.

	Backport from mainline r204927:

	2013-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
	sdmode_stack_slot also in little-endian mode.

2014-04-04  Bill Schmidt <wschmidt@linux.vnet.ibm.com>

	Power8 HTM Support
	Backport from mainline
	2013-12-03  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
	typo in macro name.
	(_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.

	Backport from mainline r205233.
	2013-11-21  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/extend.texi: Document htm builtins.

	Backport from mainline
	2013-07-17  Iain Sandoe  <iain@codesourcery.com>

	* config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.

	Backport from mainline
	2013-07-16  Peter Bergner <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
	enable extra ISA flags with TARGET_HTM.

	2013-07-16  Jakub Jelinek  <jakub@redhat.com>
		    Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
	registers in the comment.
	(DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
	(DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
	rather than FIRST_PSEUDO_REGISTERS.

	* config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
	* config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
	* config/rs6000/rs6000.opt: Add -mhtm option.
	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
	(ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__HTM__ if the HTM instructions are available.
	* config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand)
	(htm_spr_reg_operand): New define_predicates.
	* config/rs6000/rs6000.md (define_attr "type"): Add htm.
	(TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
	Include htm.md.
	* config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2)
	(BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
	HTM builtin functions.
	* config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
	(rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
	(rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
	(rs6000_builtin_mask_calculate): Likewise.
	(rs6000_option_override_internal): Likewise.
	(bdesc_htm): Add new HTM builtin support.
	(htm_spr_num): New function.
	(htm_spr_regno): Likewise.
	(rs6000_htm_spr_icode): Likewise.
	(htm_expand_builtin): Likewise.
	(htm_init_builtins): Likewise.
	(rs6000_expand_builtin): Add support for HTM builtin functions.
	(rs6000_init_builtins): Likewise.
	(rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
	(TARGET_HTM, MASK_HTM): Define macros.
	(FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
	(FIXED_REGISTERS): Likewise.
	(CALL_USED_REGISTERS): Likewise.
	(CALL_REALLY_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(enum reg_class): Likewise.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(REGISTER_NAMES): Likewise.
	(ADDITIONAL_REGISTER_NAMES): Likewise.
	(RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT)
	(RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
	(RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
	* config/rs6000/htm.md: New file.
	* config/rs6000/htmintrin.h: New file.
	* config/rs6000/htmxlintrin.h: New file.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Power8 Base Support
	Apply mainline
	2013-11-23  Alan Modra  <amodra@gmail.com>
	* config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.

	Backport from mainline
	2013-11-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59054
	* config/rs6000/rs6000.md (movdi_internal32): Eliminate
	constraints that would allow DImode into the traditional Altivec
	registers, but cause undesirable code generation when loading 0 as
	a constant.
	(movdi_internal64): Likewise.
	(cmp<mode>_fpr): Do not use %x for CR register output.
	(extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
	-mallow-upper-sf debug switches are used.

	Backport from mainline
	2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
	fields to the reg_addr array that describes the valid addressing
	mode for any register, general purpose registers, floating point
	registers, and Altivec registers.
	(FIRST_RELOAD_REG_CLASS): Likewise.
	(LAST_RELOAD_REG_CLASS): Likewise.
	(struct reload_reg_map_type): Likewise.
	(reload_reg_map_type): Likewise.
	(RELOAD_REG_VALID): Likewise.
	(RELOAD_REG_MULTIPLE): Likewise.
	(RELOAD_REG_INDEXED): Likewise.
	(RELOAD_REG_OFFSET): Likewise.
	(RELOAD_REG_PRE_INCDEC): Likewise.
	(RELOAD_REG_PRE_MODIFY): Likewise.
	(reg_addr): Likewise.
	(mode_supports_pre_incdec_p): New helper functions to say whether
	a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
	(mode_supports_pre_modify_p): Likewise.
	(rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
	print the valid address mode bits for each mode.
	(rs6000_debug_print_mode): Likewise.
	(rs6000_debug_reg_global): Likewise.
	(rs6000_setup_reg_addr_masks): New function to set up the address
	mask bits for each type.
	(rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
	Call rs6000_setup_reg_addr_masks to set up the address mask bits.
	(rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
	mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
	PRE_MODIFY are supported.
	(rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
	registers, instead of {src,dest}_av_p.
	(rs6000_print_options_internal): Tweak the debug output slightly.

	Backport from mainline
	2013-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
	ceildf2, btruncdf2, instead of vsx_* name.

	* config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
	iterators to only do V2DF and V4SF here.  Move the DF code to
	rs6000.md where it is combined with SF mode.  Replace <VSv> with
	just 'v' since only vector operations are handled with these insns
	after moving the DF support to rs6000.md.
	(vsx_sub<mode>3): Likewise.
	(vsx_mul<mode>3): Likewise.
	(vsx_div<mode>3): Likewise.
	(vsx_fre<mode>2): Likewise.
	(vsx_neg<mode>2): Likewise.
	(vsx_abs<mode>2): Likewise.
	(vsx_nabs<mode>2): Likewise.
	(vsx_smax<mode>3): Likewise.
	(vsx_smin<mode>3): Likewise.
	(vsx_sqrt<mode>2): Likewise.
	(vsx_rsqrte<mode>2): Likewise.
	(vsx_fms<mode>4): Likewise.
	(vsx_nfma<mode>4): Likewise.
	(vsx_copysign<mode>3): Likewise.
	(vsx_btrunc<mode>2): Likewise.
	(vsx_floor<mode>2): Likewise.
	(vsx_ceil<mode>2): Likewise.
	(vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
	(vsx_sminsf3): Likewise.
	(vsx_fmadf4): Likewise.
	(vsx_fmsdf4): Likewise.
	(vsx_nfmadf4): Likewise.
	(vsx_nfmsdf4): Likewise.
	(vsx_cmpdf_internal1): Likewise.

	* config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
	simpler to select whether a target has SPE or traditional floating
	point support in iterators.
	(TARGET_DF_SPE): Likewise.
	(TARGET_SF_FPR): Likewise.
	(TARGET_DF_FPR): Likewise.
	(TARGET_SF_INSN): Macros to say whether floating point support
	exists for a given operation for expanders.
	(TARGET_DF_INSN): Likewise.

	* config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
	combining of SF/DF mode operations, using both traditional and VSX
	registers.
	(Fvsx): Likewise.
	(Ff): Likewise.
	(Fv): Likewise.
	(Fs): Likewise.
	(Ffre): Likewise.
	(FFRE): Likewise.
	(abs<mode>2): Combine SF/DF modes using traditional floating point
	instructions.  Add support for using the upper DF registers with
	VSX support, and SF registers with power8-vector support.  Update
	expanders for operations supported by both the SPE and traditional
	floating point units.
	(abs<mode>2_fpr): Likewise.
	(nabs<mode>2): Likewise.
	(nabs<mode>2_fpr): Likewise.
	(neg<mode>2): Likewise.
	(neg<mode>2_fpr): Likewise.
	(add<mode>3): Likewise.
	(add<mode>3_fpr): Likewise.
	(sub<mode>3): Likewise.
	(sub<mode>3_fpr): Likewise.
	(mul<mode>3): Likewise.
	(mul<mode>3_fpr): Likewise.
	(div<mode>3): Likewise.
	(div<mode>3_fpr): Likewise.
	(sqrt<mode>3): Likewise.
	(sqrt<mode>3_fpr): Likewise.
	(fre<Fs>): Likewise.
	(rsqrt<mode>2): Likewise.
	(cmp<mode>_fpr): Likewise.
	(smax<mode>3): Likewise.
	(smin<mode>3): Likewise.
	(smax<mode>3_vsx): Likewise.
	(smin<mode>3_vsx): Likewise.
	(negsf2): Delete SF operations that are merged with DF.
	(abssf2): Likewise.
	(addsf3): Likewise.
	(subsf3): Likewise.
	(mulsf3): Likewise.
	(divsf3): Likewise.
	(fres): Likewise.
	(fmasf4_fpr): Likewise.
	(fmssf4_fpr): Likewise.
	(nfmasf4_fpr): Likewise.
	(nfmssf4_fpr): Likewise.
	(sqrtsf2): Likewise.
	(rsqrtsf_internal1): Likewise.
	(smaxsf3): Likewise.
	(sminsf3): Likewise.
	(cmpsf_internal1): Likewise.
	(copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
	(negdf2): Delete DF operations that are merged with SF.
	(absdf2): Likewise.
	(nabsdf2): Likewise.
	(adddf3): Likewise.
	(subdf3): Likewise.
	(muldf3): Likewise.
	(divdf3): Likewise.
	(fred): Likewise.
	(rsqrtdf_internal1): Likewise.
	(fmadf4_fpr): Likewise.
	(fmsdf4_fpr): Likewise.
	(nfmadf4_fpr): Likewise.
	(nfmsdf4_fpr): Likewise.
	(sqrtdf2): Likewise.
	(smaxdf3): Likewise.
	(smindf3): Likewise.
	(cmpdf_internal1): Likewise.
	(lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
	(btrunc<mode>2): Delete separate expander, and combine with the
	insn and add VSX instruction support.  Use TARGET_<MODE>_FPR.
	(btrunc<mode>2_fpr): Likewise.
	(ceil<mode>2): Likewise.
	(ceil<mode>2_fpr): Likewise.
	(floor<mode>2): Likewise.
	(floor<mode>2_fpr): Likewise.
	(fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
	Add support for using the upper registers with VSX and
	power8-vector.  Move insns to be closer to the define_expands. On
	VSX systems, prefer the traditional form of FMA over the VSX
	version, since the traditional form allows the target not to
	overlap with the inputs.
	(fms<mode>4_fpr): Likewise.
	(nfma<mode>4_fpr): Likewise.
	(nfms<mode>4_fpr): Likewise.

	Backport from mainline
	2013-09-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
	DFmode, DImode, and SFmode in the upper VSX registers based on the
	-mupper-regs-{df,sf} flags.  Fix wu constraint to be ALTIVEC_REGS
	if -mpower8-vector.  Combine -mvsx-timode handling with the rest
	of the VSX register handling.

	* config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
	(f32_sv): Likewise.
	(zero_extendsidi2_lfiwzx): Add support for loading into the
	Altivec registers with -mpower8-vector.  Use wu/wv constraints to
	only do VSX memory options on Altivec registers.
	(extendsidi2_lfiwax): Likewise.
	(extendsfdf2_fpr): Likewise.
	(mov<mode>_hardfloat, SF/SD modes): Likewise.
	(mov<mode>_hardfloat32, DF/DD modes): Likewise.
	(mov<mode>_hardfloat64, DF/DD modes): Likewise.
	(movdi_internal64): Likewise.

	Backport from mainline
	2013-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
	reload helper function arrays into a single array reg_addr.
	(reload_fpr_gpr): Likewise.
	(reload_gpr_vsx): Likewise.
	(reload_vsx_gpr): Likewise.
	(struct rs6000_reg_addr): Likewise.
	(reg_addr): Likewise.
	(rs6000_debug_reg_global): Change rs6000_vector_reload,
	reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
	(rs6000_init_hard_regno_mode_ok): Likewise.
	(rs6000_secondary_reload_direct_move): Likewise.
	(rs6000_secondary_reload): Likewise.

	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
	constraints: wu, ww, and wy.  Repurpose wv constraint added during
	power8 changes.  Put wg constraint in alphabetical order.

	* config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
	for future work to add ISA 2.07 VSX single precision support.
	(-mvsx-scalar-double): Change default from -1 to 1, update
	documentation comment.
	(-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
	(-mupper-regs-df): New debug switch to control whether DF values
	can go in the traditional Altivec registers.
	(-mupper-regs-sf): New debug switch to control whether SF values
	can go in the traditional Altivec registers.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
	and wy constraints.
	(rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
	loop variables.  Rename -mvsx-scalar-memory to -mupper-regs-df.
	Add new constraints, wu/ww/wy.  Repurpose wv constraint.
	(rs6000_debug_legitimate_address_p): Print if we are running
	before, during, or after reload.
	(rs6000_secondary_reload): Add a comment.
	(rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.

	* config/rs6000/constraints.md (wa constraint): Sort w<x>
	constraints.  Update documentation string.
	(wd constraint): Likewise.
	(wf constraint): Likewise.
	(wg constraint): Likewise.
	(wn constraint): Likewise.
	(ws constraint): Likewise.
	(wt constraint): Likewise.
	(wx constraint): Likewise.
	(wz constraint): Likewise.
	(wu constraint): New constraint for ISA 2.07 SFmode scalar
	instructions.
	(ww constraint): Likewise.
	(wy constraint): Likewise.
	(wv constraint): Repurpose ISA 2.07 constraint that did not use in
	the previous submissions.
	* doc/md.texi (PowerPC and IBM RS6000): Likewise.

	Backport from mainline
	2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/58673
	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
	restrict TImode addresses to single indirect registers if both
	-mquad-memory and -mvsx-timode are used.
	(rs6000_output_move_128bit): Use quad_load_store_p to determine if
	we should emit load/store quad.  Remove using %y for quad memory
	addresses.

	* config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
	constraints to allow load/store quad on machines where TImode is
	not allowed in VSX registers.  Use 'n' instead of 'F' constraint
	for TImode to load integer constants.

	Backport from mainline
	2013-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/58587
	* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
	setting -mvsx-timode by default until the underlying problem is
	fixed.
	(RS6000_CPU, power7 defaults): Likewise.

	Backport from trunk
	2013-08-16  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/58160
	* config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
	memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.

	* config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
	array instead of each individual operand as a separate argument.
	(emit_fusion_gpr_load): Likewise.
	(expand_fusion_gpr_load): Add new function declaration.

	* config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
	signature to have the operands passed as an array, instead of as
	separate arguments.  Allow ZERO_EXTEND to be in the memory
	address, and also SIGN_EXTEND if -mpower8-fusion-sign.  Do not
	depend on the register live/dead flags when peepholes are run.
	(expand_fusion_gpr_load): New function to be called from the
	peephole2 pass, to change the register that addis sets to be the
	target register.
	(emit_fusion_gpr_load): Change the calling signature to have the
	operands passed as an array, instead of as separate arguments.
	Allow ZERO_EXTEND to be in the memory address, and also
	SIGN_EXTEND if -mpower8-fusion-sign.

	* config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
	unspec enumeration.
	(power8 fusion peephole/peephole2): Rework the fusion peepholes to
	adjust the register addis loads up in the peephole2 pass.  Do not
	depend on the register live/dead state when the peephole pass is
	done.

	Backport from trunk
	2013-07-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
	expanders to rs6000.md.
	(ior<mode>3): Likewise.
	(and<mode>3): Likewise.
	(one_cmpl<mode>2): Likewise.
	(nor<mode>3): Likewise.
	(andc<mode>3): Likewise.
	(eqv<mode>3): Likewise.
	(nand<mode>3): Likewise.
	(orc<mode>3): Likewise.

	* config/rs6000/rs6000-protos.h (rs6000_split_logical): New
	declaration.

	* config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
	to split multi-word logical operations.
	(rs6000_split_logical_di): Likewise.
	(rs6000_split_logical): Likewise.

	* config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
	(vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
	and allow TImode operations in 32-bit.
	(vsx_and<mode>3_64bit): Likewise.
	(vsx_ior<mode>3_32bit): Likewise.
	(vsx_ior<mode>3_64bit): Likewise.
	(vsx_xor<mode>3_32bit): Likewise.
	(vsx_xor<mode>3_64bit): Likewise.
	(vsx_one_cmpl<mode>2_32bit): Likewise.
	(vsx_one_cmpl<mode>2_64bit): Likewise.
	(vsx_nor<mode>3_32bit): Likewise.
	(vsx_nor<mode>3_64bit): Likewise.
	(vsx_andc<mode>3_32bit): Likewise.
	(vsx_andc<mode>3_64bit): Likewise.
	(vsx_eqv<mode>3_32bit): Likewise.
	(vsx_eqv<mode>3_64bit): Likewise.
	(vsx_nand<mode>3_32bit): Likewise.
	(vsx_nand<mode>3_64bit): Likewise.
	(vsx_orc<mode>3_32bit): Likewise.
	(vsx_orc<mode>3_64bit): Likewise.

	* config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
	logical types in GPRs.

	* config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
	logical insns to rs6000.md, and allow TImode operations in
	32-bit.
	(altivec_ior<mode>3): Likewise.
	(altivec_xor<mode>3): Likewise.
	(altivec_one_cmpl<mode>2): Likewise.
	(altivec_nor<mode>3): Likewise.
	(altivec_andc<mode>3): Likewise.

	* config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
	attributes for moving the 128-bit logical operations into
	rs6000.md.
	(BOOL_REGS_OUTPUT): Likewise.
	(BOOL_REGS_OP1): Likewise.
	(BOOL_REGS_OP2): Likewise.
	(BOOL_REGS_UNARY): Likewise.
	(BOOL_REGS_AND_CR0): Likewise.
	(one_cmpl<mode>2): Add support for DI logical operations on
	32-bit, splitting the operations to 32-bit.
	(anddi3): Likewise.
	(iordi3): Likewise.
	(xordi3): Likewise.
	(and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
	changes to combine the 32/64-bit code, allow logical operations on
	TI mode in 32-bit, and to use similar match_operator patterns like
	scalar mode uses.  Combine the Altivec and VSX code for logical
	operations, and move it here.
	(ior<mode>3, 128-bit types): Likewise.
	(xor<mode>3, 128-bit types): Likewise.
	(one_cmpl<mode>3, 128-bit types): Likewise.
	(nor<mode>3, 128-bit types): Likewise.
	(andc<mode>3, 128-bit types): Likewise.
	(eqv<mode>3, 128-bit types): Likewise.
	(nand<mode>3, 128-bit types): Likewise.
	(orc<mode>3, 128-bit types): Likewise.
	(and<mode>3_internal): Likewise.
	(bool<mode>3_internal): Likewise.
	(boolc<mode>3_internal1): Likewise.
	(boolc<mode>3_internal2): Likewise.
	(boolcc<mode>3_internal1): Likewise.
	(boolcc<mode>3_internal2): Likewise.
	(eqv<mode>3_internal1): Likewise.
	(eqv<mode>3_internal2): Likewise.
	(one_cmpl1<mode>3_internal): Likewise.

	Back port from mainline:
	2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* lib/target-supports.exp (check_p8vector_hw_available) Add power8
	support.
	(check_effective_target_powerpc_p8vector_ok): Likewise.
	(is-effective-target): Likewise.
	(check_vect_support_and_set_flags): Likewise.

	Backport from mainline
	2013-07-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/predicates.md (fusion_gpr_addis): New predicates
	to support power8 load fusion.
	(fusion_gpr_mem_load): Likewise.

	* config/rs6000/rs6000-modes.def (PTImode): Update a comment.

	* config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
	declarations for power8 load fusion.
	(emit_fusion_gpr_load): Likewise.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
	tuning for power8, turn on fusion mode by default.  Turn on sign
	extending fusion mode if normal fusion mode is on, and we are at
	-O2 or -O3.
	(fusion_gpr_load_p): New function, return true if we can fuse an
	addis instruction with a dependent load to a GPR.
	(emit_fusion_gpr_load): Emit the instructions for power8 load
	fusion to GPRs.

	* config/rs6000/vsx.md (VSX_M2): New iterator for fusion
	peepholes.
	(VSX load fusion peepholes): New peepholes to fuse together an
	addi instruction with a VSX load instruction.

	* config/rs6000/rs6000.md (GPR load fusion peepholes): New
	peepholes to fuse an addis instruction with a load to a GPR base
	register.  If we are supporting sign extending fusions, convert
	sign extending loads to zero extending loads and add an explicit
	sign extension.

	Backport from mainline
	2013-07-18  Pat Haugen <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
	interaction for new Power8 flags and VSX.

	Back port from the trunk
	2013-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/57744
	* config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
	to tie with any other modes.  Eliminate Altivec vector mode tests,
	since these are a subset of ALTIVEC or VSX vector modes.  Simplify
	code, to return 0 if testing MODE2 for a condition, if we've
	already tested MODE1 for the same condition.

	Backport from mainline
	2013-06-28  Pat Haugen <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.md (define_insn ""): Fix insn type.

	Back port from the trunk
	2013-06-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* config/rs6000/power8.md: New.
	* config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
	setting for power8 entry.
	* config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
	* config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
	test for Power4/Power5 only.
	(insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
	support.
	(force_new_group): Adjust comment.
	* config/rs6000/rs6000.md: Include power8.md.

	Back port from the trunk
	2013-06-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/57615
	* config/rs6000/rs6000.md (mov<mode>_ppc64): Call
	rs6000_output_move_128bit to handle emitting quad memory
	operations.  Set attribute length to 8 bytes.

	Back port from the trunk
	2013-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Move
	test for clearing quad memory on 32-bit later.

	Back port from the trunk

	2013-06-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (emit_load_locked): Add support for
	power8 byte, half-word, and quad-word atomic instructions.
	(emit_store_conditional): Likewise.
	(rs6000_expand_atomic_compare_and_swap): Likewise.
	(rs6000_expand_atomic_op): Likewise.

	* config/rs6000/sync.md (larx): Add new modes for power8.
	(stcx): Likewise.
	(AINT): New mode iterator to include TImode as well as normal
	integer modes on power8.
	(fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
	that VSX registers are not considered.  Use AINT mode iterator
	instead of INT1 to allow inclusion of quad word atomic operations
	on power8.
	(load_locked<mode>): Likewise.
	(store_conditional<mode>): Likewise.
	(atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>): Likewise.
	(atomic_nand<mode>): Likewise.
	(atomic_fetch_<fetchop_name><mode>): Likewise.
	(atomic_nand_fetch<mode>): Likewise.
	(mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
	each type.
	(ATOMIC): On power8, add QImode, HImode modes.
	(load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
	modes that promote to SImode.
	(load_lockedti): Convert TImode arguments to PTImode, so that we
	get a guaranteed even/odd register pair.
	(load_lockedpti): Likewise.
	(store_conditionalti): Likewise.
	(store_conditionalpti): Likewise.

	* config/rs6000/rs6000.md (QHI): New mode iterator for power8
	atomic load/store instructions.
	(HSI): Likewise.

	Back port from the trunk

	2013-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* config/rs6000/vector.md (GPR move splitter): Do not split moves
	of vectors in GPRS if they are direct moves or quad word load or
	store moves.

	* config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
	declaration.
	(direct_move_p): Likewise.
	(quad_load_store_p): Likewise.

	* config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
	classes into bins based on the physical register type.
	(reg_class_to_reg_type): Likewise.
	(IS_STD_REG_TYPE): Likewise.
	(IS_FP_VECT_REG_TYPE): Likewise.
	(reload_fpr_gpr): Arrays to determine what insn to use if we can
	use direct move instructions.
	(reload_gpr_vsx): Likewise.
	(reload_vsx_gpr): Likewise.
	(rs6000_init_hard_regno_mode_ok): Precalculate the register type
	information that is a simplification of register classes.  Also
	precalculate direct move reload helpers.
	(direct_move_p): New function to return true if the operation can
	be done as a direct move instruciton.
	(quad_load_store_p): New function to return true if the operation
	is a quad memory operation.
	(rs6000_legitimize_address): If quad memory, only allow register
	indirect for TImode addresses.
	(rs6000_legitimate_address_p): Likewise.
	(enum reload_reg_type): Delete, replace with rs6000_reg_type.
	(rs6000_reload_register_type): Likewise.
	(register_to_reg_type): Return register type.
	(rs6000_secondary_reload_simple_move): New helper function for
	secondary reload and secondary memory needed to identify anything
	that is a simple move, and does not need reloading.
	(rs6000_secondary_reload_direct_move): New helper function for
	secondary reload to identify cases that can be done with several
	instructions via the direct move instructions.
	(rs6000_secondary_reload_move): New helper function for secondary
	reload to identify moves between register types that can be done.
	(rs6000_secondary_reload): Add support for quad memory operations
	and for direct move.
	(rs6000_secondary_memory_needed): Likewise.
	(rs6000_debug_secondary_memory_needed): Change argument names.
	(rs6000_output_move_128bit): New function to return the move to
	use for 128-bit moves, including knowing about the various
	limitations of quad memory operations.

	* config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
	memory operations.  call rs6000_output_move_128bit for the actual
	instruciton(s) to generate.
	(vsx_movti_64bit): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
	(UNSPEC_P8V_MTVSRWZ): Likewise.
	(UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
	(UNSPEC_P8V_MTVSRD): Likewise.
	(UNSPEC_P8V_XXPERMDI): Likewise.
	(UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
	(UNSPEC_FUSION_GPR): Likewise.
	(FMOVE128_GPR): New iterator for direct move.
	(f32_lv): New mode attribute for load/store of SFmode/SDmode
	values.
	(f32_sv): Likewise.
	(f32_dm): Likewise.
	(zero_extend<mode>di2_internal1): Add support for power8 32-bit
	loads and direct move instructions.
	(zero_extendsidi2_lfiwzx): Likewise.
	(extendsidi2_lfiwax): Likewise.
	(extendsidi2_nocell): Likewise.
	(floatsi<mode>2_lfiwax): Likewise.
	(lfiwax): Likewise.
	(floatunssi<mode>2_lfiwzx): Likewise.
	(lfiwzx): Likewise.
	(fix_trunc<mode>_stfiwx): Likewise.
	(fixuns_trunc<mode>_stfiwx): Likewise.
	(mov<mode>_hardfloat, 32-bit floating point): Likewise.
	(mov<move>_hardfloat64, 64-bit floating point): Likewise.
	(parity<mode>2_cmpb): Set length/type attr.
	(unnamed shift right patterns, mov<mode>_internal2): Change type attr
	for 'mr.' to fast_compare.
	(bpermd_<mode>): Change type attr to popcnt.
	(p8_fmrgow_<mode>): New insns for power8 direct move support.
	(p8_mtvsrwz_1): Likewise.
	(p8_mtvsrwz_2): Likewise.
	(reload_fpr_from_gpr<mode>): Likewise.
	(p8_mtvsrd_1): Likewise.
	(p8_mtvsrd_2): Likewise.
	(p8_xxpermdi_<mode>): Likewise.
	(reload_vsx_from_gpr<mode>): Likewise.
	(reload_vsx_from_gprsf): Likewise.
	(p8_mfvsrd_3_<mode>): LIkewise.
	(reload_gpr_from_vsx<mode>): Likewise.
	(reload_gpr_from_vsxsf): Likewise.
	(p8_mfvsrd_4_disf): Likewise.
	(multi-word GPR splits): Do not split direct moves or quad memory
	operations.

	Backport from the trunk

	2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document new power8 builtins.

	* config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
	condition code register, to allow 128-bit logical operations to be
	done in the VSX or GPR registers.
	(nor<mode>3): Use the canonical form for nor.
	(eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
	vclz*, and vpopcnt* vector instructions.
	(nand<mode>3): Likewise.
	(orc<mode>3): Likewise.
	(clz<mode>2): LIkewise.
	(popcount<mode>2): Likewise.

	* config/rs6000/predicates.md (int_reg_operand): Rework tests so
	that only the GPRs are recognized.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	support for new power8 builtins.

	* config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
	builtin functions.
	(xscvdpspn): Likewise.
	(vclz): Likewise.
	(vclzb): Likewise.
	(vclzh): Likewise.
	(vclzw): Likewise.
	(vclzd): Likewise.
	(vpopcnt): Likewise.
	(vpopcntb): Likewise.
	(vpopcnth): Likewise.
	(vpopcntw): Likewise.
	(vpopcntd): Likewise.
	(vgbbd): Likewise.
	(vmrgew): Likewise.
	(vmrgow): Likewise.
	(eqv): Likewise.
	(eqv_v16qi3): Likewise.
	(eqv_v8hi3): Likewise.
	(eqv_v4si3): Likewise.
	(eqv_v2di3): Likewise.
	(eqv_v4sf3): Likewise.
	(eqv_v2df3): Likewise.
	(nand): Likewise.
	(nand_v16qi3): Likewise.
	(nand_v8hi3): Likewise.
	(nand_v4si3): Likewise.
	(nand_v2di3): Likewise.
	(nand_v4sf3): Likewise.
	(nand_v2df3): Likewise.
	(orc): Likewise.
	(orc_v16qi3): Likewise.
	(orc_v8hi3): Likewise.
	(orc_v4si3): Likewise.
	(orc_v2di3): Likewise.
	(orc_v4sf3): Likewise.
	(orc_v2df3): Likewise.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Only
	allow power8 quad mode in 64-bit.
	(rs6000_builtin_vectorized_function): Add support to vectorize
	ISA 2.07 count leading zeros, population count builtins.
	(rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
	V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
	(builtin_function_type): Add vgbbd builtin function which takes an
	unsigned argument.
	(altivec_expand_vec_perm_const): Add support for new power8 merge
	instructions.

	* config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
	that does not include TImdoe for use with 32-bit.
	(UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
	instructions.
	(UNSPEC_VSX_CVDPSPN): Likewise.
	(vsx_xscvdpspn): Likewise.
	(vsx_xscvspdpn): Likewise.
	(vsx_xscvdpspn_scalar): Likewise.
	(vsx_xscvspdpn_directmove): Likewise.
	(vsx_and<mode>3): Split logical operations into 32-bit and
	64-bit. Add support to do logical operations on TImode as well as
	VSX vector types.  Allow logical operations to be done in either
	VSX registers or in general purpose registers in 64-bit mode.  Add
	splitters if GPRs were used. For AND, add clobber of CCmode to
	allow use of ANDI on GPRs.  Rewrite nor to use the canonical RTL
	encoding.
	(vsx_and<mode>3_32bit): Likewise.
	(vsx_and<mode>3_64bit): Likewise.
	(vsx_ior<mode>3): Likewise.
	(vsx_ior<mode>3_32bit): Likewise.
	(vsx_ior<mode>3_64bit): Likewise.
	(vsx_xor<mode>3): Likewise.
	(vsx_xor<mode>3_32bit): Likewise.
	(vsx_xor<mode>3_64bit): Likewise.
	(vsx_one_cmpl<mode>2): Likewise.
	(vsx_one_cmpl<mode>2_32bit): Likewise.
	(vsx_one_cmpl<mode>2_64bit): Likewise.
	(vsx_nor<mode>3): Likewise.
	(vsx_nor<mode>3_32bit): Likewise.
	(vsx_nor<mode>3_64bit): Likewise.
	(vsx_andc<mode>3): Likewise.
	(vsx_andc<mode>3_32bit): Likewise.
	(vsx_andc<mode>3_64bit): Likewise.
	(vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
	and xxlorc instructions.
	(vsx_eqv<mode>3_64bit): Likewise.
	(vsx_nand<mode>3_32bit): Likewise.
	(vsx_nand<mode>3_64bit): Likewise.
	(vsx_orc<mode>3_32bit): Likewise.
	(vsx_orc<mode>3_64bit): Likewise.

	* config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.

	* config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
	instruction.
	(p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
	(p8_vmrgow): Likewise.
	(altivec_and<mode>3): Add clobber of CCmode to allow AND using
	GPRs to be split under VSX.
	(p8v_clz<mode>2): Add power8 count leading zero support.
	(p8v_popcount<mode>2): Add power8 population count support.
	(p8v_vgbbd): Add power8 gather bits by bytes by doubleword
	support.

	* config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
	instruction.

	* config/rs6000/altivec.h (vec_eqv): Add defines to export power8
	builtin functions.
	(vec_nand): Likewise.
	(vec_vclz): Likewise.
	(vec_vclzb): Likewise.
	(vec_vclzd): Likewise.
	(vec_vclzh): Likewise.
	(vec_vclzw): Likewise.
	(vec_vgbbd): Likewise.
	(vec_vmrgew): Likewise.
	(vec_vmrgow): Likewise.
	(vec_vpopcnt): Likewise.
	(vec_vpopcntb): Likewise.
	(vec_vpopcntd): Likewise.
	(vec_vpopcnth): Likewise.
	(vec_vpopcntw): Likewise.

	Backport from trunk

	2013-05-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
	instructions.
	(VEC_A): Likewise.
	(VEC_C): Likewise.
	(vrotl<mode>3): Likewise.
	(vashl<mode>3): Likewise.
	(vlshr<mode>3): Likewise.
	(vashr<mode>3): Likewise.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	support for power8 V2DI builtins.

	* config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
	power8 V2DI builtins.
	(vupkhsw): Likewise.
	(vupklsw): Likewise.
	(vaddudm): Likewise.
	(vminsd): Likewise.
	(vmaxsd): Likewise.
	(vminud): Likewise.
	(vmaxud): Likewise.
	(vpkudum): Likewise.
	(vpksdss): Likewise.
	(vpkudus): Likewise.
	(vpksdus): Likewise.
	(vrld): Likewise.
	(vsld): Likewise.
	(vsrd): Likewise.
	(vsrad): Likewise.
	(vsubudm): Likewise.
	(vcmpequd): Likewise.
	(vcmpgtsd): Likewise.
	(vcmpgtud): Likewise.
	(vcmpequd_p): Likewise.
	(vcmpgtsd_p): Likewise.
	(vcmpgtud_p): Likewise.
	(vupkhsw): Likewise.
	(vupklsw): Likewise.
	(vaddudm): Likewise.
	(vmaxsd): Likewise.
	(vmaxud): Likewise.
	(vminsd): Likewise.
	(vminud): Likewise.
	(vpksdss): Likewise.
	(vpksdus): Likewise.
	(vpkudum): Likewise.
	(vpkudus): Likewise.
	(vrld): Likewise.
	(vsld): Likewise.
	(vsrad): Likewise.
	(vsrd): Likewise.
	(vsubudm): Likewise.

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
	support for power8 V2DI instructions.

	* config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
	power8 V2DI instructions.  Combine pack and unpack insns to use an
	iterator for each mode.  Check whether a particular mode supports
	Altivec instructions instead of just checking TARGET_ALTIVEC.
	(UNSPEC_VPKUWUM): Likewise.
	(UNSPEC_VPKSHSS): Likewise.
	(UNSPEC_VPKSWSS): Likewise.
	(UNSPEC_VPKUHUS): Likewise.
	(UNSPEC_VPKSHUS): Likewise.
	(UNSPEC_VPKUWUS): Likewise.
	(UNSPEC_VPKSWUS): Likewise.
	(UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
	(UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
	(UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
	(UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
	(UNSPEC_VUPKHSB): Likewise.
	(UNSPEC_VUNPACK_HI_SIGN): Likewise.
	(UNSPEC_VUNPACK_LO_SIGN): Likewise.
	(UNSPEC_VUPKHSH): Likewise.
	(UNSPEC_VUPKLSB): Likewise.
	(UNSPEC_VUPKLSH): Likewise.
	(VI2): Likewise.
	(VI_char): Likewise.
	(VI_scalar): Likewise.
	(VI_unit): Likewise.
	(VP): Likewise.
	(VP_small): Likewise.
	(VP_small_lc): Likewise.
	(VU_char): Likewise.
	(add<mode>3): Likewise.
	(altivec_vaddcuw): Likewise.
	(altivec_vaddu<VI_char>s): Likewise.
	(altivec_vadds<VI_char>s): Likewise.
	(sub<mode>3): Likewise.
	(altivec_vsubcuw): Likewise.
	(altivec_vsubu<VI_char>s): Likewise.
	(altivec_vsubs<VI_char>s): Likewise.
	(altivec_vavgs<VI_char>): Likewise.
	(altivec_vcmpbfp): Likewise.
	(altivec_eq<mode>): Likewise.
	(altivec_gt<mode>): Likewise.
	(altivec_gtu<mode>): Likewise.
	(umax<mode>3): Likewise.
	(smax<mode>3): Likewise.
	(umin<mode>3): Likewise.
	(smin<mode>3): Likewise.
	(altivec_vpkuhum): Likewise.
	(altivec_vpkuwum): Likewise.
	(altivec_vpkshss): Likewise.
	(altivec_vpkswss): Likewise.
	(altivec_vpkuhus): Likewise.
	(altivec_vpkshus): Likewise.
	(altivec_vpkuwus): Likewise.
	(altivec_vpkswus): Likewise.
	(altivec_vpks<VI_char>ss): Likewise.
	(altivec_vpks<VI_char>us): Likewise.
	(altivec_vpku<VI_char>us): Likewise.
	(altivec_vpku<VI_char>um): Likewise.
	(altivec_vrl<VI_char>): Likewise.
	(altivec_vsl<VI_char>): Likewise.
	(altivec_vsr<VI_char>): Likewise.
	(altivec_vsra<VI_char>): Likewise.
	(altivec_vsldoi_<mode>): Likewise.
	(altivec_vupkhsb): Likewise.
	(altivec_vupkhs<VU_char>): Likewise.
	(altivec_vupkls<VU_char>): Likewise.
	(altivec_vupkhsh): Likewise.
	(altivec_vupklsb): Likewise.
	(altivec_vupklsh): Likewise.
	(altivec_vcmpequ<VI_char>_p): Likewise.
	(altivec_vcmpgts<VI_char>_p): Likewise.
	(altivec_vcmpgtu<VI_char>_p): Likewise.
	(abs<mode>2): Likewise.
	(vec_unpacks_hi_v16qi): Likewise.
	(vec_unpacks_hi_v8hi): Likewise.
	(vec_unpacks_lo_v16qi): Likewise.
	(vec_unpacks_hi_<VP_small_lc>): Likewise.
	(vec_unpacks_lo_v8hi): Likewise.
	(vec_unpacks_lo_<VP_small_lc>): Likewise.
	(vec_pack_trunc_v8h): Likewise.
	(vec_pack_trunc_v4si): Likewise.
	(vec_pack_trunc_<mode>): Likewise.

	* config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
	V2DI builtins.
	(vec_vmaxsd): Likewise.
	(vec_vmaxud): Likewise.
	(vec_vminsd): Likewise.
	(vec_vminud): Likewise.
	(vec_vpksdss): Likewise.
	(vec_vpksdus): Likewise.
	(vec_vpkudum): Likewise.
	(vec_vpkudus): Likewise.
	(vec_vrld): Likewise.
	(vec_vsld): Likewise.
	(vec_vsrad): Likewise.
	(vec_vsrd): Likewise.
	(vec_vsubudm): Likewise.
	(vec_vupkhsw): Likewise.
	(vec_vupklsw): Likewise.

	2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
	documentation for the power8 crypto builtins.

	* config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.

	* config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
	macros for defining power8 builtin functions.
	(BU_P8V_AV_2): Likewise.
	(BU_P8V_AV_P): Likewise.
	(BU_P8V_VSX_1): Likewise.
	(BU_P8V_OVERLOAD_1): Likewise.
	(BU_P8V_OVERLOAD_2): Likewise.
	(BU_CRYPTO_1): Likewise.
	(BU_CRYPTO_2): Likewise.
	(BU_CRYPTO_3): Likewise.
	(BU_CRYPTO_OVERLOAD_1): Likewise.
	(BU_CRYPTO_OVERLOAD_2): Likewise.
	(XSCVSPDP): Fix typo, point to the correct instruction.
	(VCIPHER): Add power8 crypto builtins.
	(VCIPHERLAST): Likewise.
	(VNCIPHER): Likewise.
	(VNCIPHERLAST): Likewise.
	(VPMSUMB): Likewise.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPERMXOR_V2DI): Likewise.
	(VPERMXOR_V4SI: Likewise.
	(VPERMXOR_V8HI: Likewise.
	(VPERMXOR_V16QI: Likewise.
	(VSHASIGMAW): Likewise.
	(VSHASIGMAD): Likewise.
	(VPMSUM): Likewise.
	(VPERMXOR): Likewise.
	(VSHASIGMA): Likewise.

	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__CRYPTO__ if the crypto instructions are available.
	(altivec_overloaded_builtins): Add support for overloaded power8
	builtins.

	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
	support for power8 crypto builtins.
	(builtin_function_type): Likewise.
	(altivec_init_builtins): Add support for builtins that take vector
	long long (V2DI) arguments.

	* config/rs6000/crypto.md: New file, define power8 crypto
	instructions.

	2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Pat Haugen <pthaugen@us.ibm.com>
		    Peter Bergner <bergner@vnet.ibm.com>

	* doc/invoke.texi (Option Summary): Add power8 options.
	(RS/6000 and PowerPC Options): Likewise.

	* doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
	constraints.md instead of rs6000.h.  Reorder w* constraints.  Add
	wm, wn, wr documentation.

	* gcc/config/rs6000/constraints.md (wm): New constraint for VSX
	registers if direct move instructions are enabled.
	(wn): New constraint for no registers.
	(wq): New constraint for quad word even GPR registers.
	(wr): New constraint if 64-bit instructions are enabled.
	(wv): New constraint if power8 vector instructions are enabled.
	(wQ): New constraint for quad word memory locations.

	* gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
	constraint for 0..15 for crypto instructions.
	(gpc_reg_operand): If VSX allow registers in VSX registers as well
	as GPR and floating point registers.
	(int_reg_operand): New predicate to match only GPR registers.
	(base_reg_operand): New predicate to match base registers.
	(quad_int_reg_operand): New predicate to match even GPR registers
	for quad memory operations.
	(vsx_reg_or_cint_operand): New predicate to allow vector logical
	operations in both GPR and VSX registers.
	(quad_memory_operand): New predicate for quad memory operations.
	(reg_or_indexed_operand): New predicate for direct move support.

	* gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
	Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
	(ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
	(POWERPC_MASKS): Add power8 options.
	(power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
	various options.

	* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
	Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.

	* gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
	(-mpower8-fusion): New power8 options.
	(-mpower8-fusion-sign): Likewise.
	(-mpower8-vector): Likewise.
	(-mcrypto): Likewise.
	(-mdirect-move): Likewise.
	(-mquad-memory): Likewise.

	* gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
	power8.
	(rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
	registers.
	(rs6000_debug_reg_print): Print the base register class if
	-mdebug=reg.
	(rs6000_debug_vector_unit): Add p8_vector.
	(rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
	definitions.  Also print fusion state.
	(rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
	(rs6000_builtin_mask_calculate): Add power8 builtin support.
	(rs6000_option_override_internal): Add support for power8.
	(rs6000_common_init_builtins): Add debugging for skipped builtins
	if -mdebug=builtin.
	(rs6000_adjust_cost): Add power8 support.
	(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.h (ASM_CPU_POWER8_SPEC): If we don't have a
	power8 capable assembler, default to power7 options.
	(TARGET_DIRECT_MOVE): Likewise.
	(TARGET_CRYPTO): Likewise.
	(TARGET_P8_VECTOR): Likewise.
	(VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
	(VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
	(VECTOR_MEM_P8_VECTOR_P): Likewise.
	(VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
	(VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
	(TARGET_XSCVDPSPN): Likewise.
	(TARGET_XSCVSPDPN): Likewsie.
	(TARGET_SYNC_HI_QI): Likewise.
	(TARGET_SYNC_TI): Likewise.
	(MASK_CRYPTO): Likewise.
	(MASK_DIRECT_MOVE): Likewise.
	(MASK_P8_FUSION): Likewise.
	(MASK_P8_VECTOR): Likewise.
	(REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the
	TFmode temporary used by some of the direct move instructions to
	get two FP temporary registers does not force creation of a stack
	frame.
	(VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
	(MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
	that any VSX registers are tieable, even if they are also an
	Altivec vector mode.
	(r6000_reg_class_enum): Add wm, wr, wv constraints.
	(RS6000_BTM_P8_VECTOR): Power8 builtin support.
	(RS6000_BTM_CRYPTO): Likewise.
	(RS6000_BTM_COMMON): Likewise.

	* config/rs6000/rs6000.md (cpu attribute): Add power8.
	* config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
	(enum rs6000_vector): Add power8 vector support.


	Backport from mainline
	2013-03-20  Pat Haugen <pthaugen@us.ibm.com>

	* config/rs6000/predicates.md (indexed_address, update_address_mem
	update_indexed_address_mem): New predicates.
	* config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
	attribute for load/store instructions.
	* config/rs6000/dfp.md (movsd_store): Likewise.
	(movsd_load): Likewise.
	* config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
	(unnamed HI->DI extend define_insn): Likewise.
	(unnamed SI->DI extend define_insn): Likewise.
	(unnamed QI->SI extend define_insn): Likewise.
	(unnamed QI->HI extend define_insn): Likewise.
	(unnamed HI->SI extend define_insn): Likewise.
	(unnamed HI->SI extend define_insn): Likewise.
	(extendsfdf2_fpr): Likewise.
	(movsi_internal1): Likewise.
	(movsi_internal1_single): Likewise.
	(movhi_internal): Likewise.
	(movqi_internal): Likewise.
	(movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
	attribute for load/store instructions.
	(mov<mode>_hardfloat): Set correct "type" attribute for load/store
	instructions.
	(mov<mode>_softfloat): Likewise.
	(mov<mode>_hardfloat32): Likewise.
	(mov<mode>_hardfloat64): Likewise.
	(mov<mode>_softfloat64): Likewise.
	(movdi_internal32): Likewise.
	(movdi_internal64): Likewise.
	(probe_stack_<mode>): Likewise.

	Backport from mainline
	2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
	floating point, and decimal floating point to reload iterator.

	* config/rs6000/constraints.md (wl constraint): New constraints to
	return FLOAT_REGS if certain options are used to reduce the number
	of separate patterns that exist in the file.
	(wx constraint): Likewise.
	(wz constraint): Likewise.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
	-mdebug=reg, print wg, wl, wx, and wz constraints.
	(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
	Initialize the reload functions for 64-bit binary/decimal floating
	point types.
	(reg_offset_addressing_ok_p): If we are on a power7 or later, use
	LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
	create the buffer on the stack to overcome not having a 32-bit
	load and store.
	(rs6000_emit_move): Likewise.
	(rs6000_secondary_memory_needed_rtx): Likewise.
	(rs6000_alloc_sdmode_stack_slot): Likewise.
	(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
	via xxlxor, just like DFmode 0.0.

	* config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro)
	(define as 1 if we are running on a power7 or newer.
	(enum r6000_reg_class_enum): Add new constraints.

	* config/rs6000/dfp.md (movsd): Delete, combine with binary
	floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
	with other moves by using conditional constraits (wg).  Use LFIWZX
	and STFIWX for loading SDmode on power7.  Use xxlxor to create
	0.0f.
	(movsd splitter): Likewise.
	(movsd_hardfloat): Likewise.
	(movsd_softfloat): Likewise.

	* config/rs6000/rs6000.md (FMOVE32): New iterators to combine
	binary and decimal floating point moves.
	(fmove_ok): New attributes to combine binary and decimal floating
	point moves, and to combine power6x (mfpgpr) moves along normal
	floating moves.
	(real_value_to_target): Likewise.
	(f32_lr): Likewise.
	(f32_lm): Likewise.
	(f32_li): Likewise.
	(f32_sr): Likewise.
	(f32_sm): Likewise.
	(f32_si): Likewise.
	(movsf): Combine binary and decimal floating point moves.  Combine
	power6x (mfpgpr) moves with other moves by using conditional
	constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on
	power7.
	(mov<mode> for SFmode/SDmode); Likewise.
	(SFmode/SDmode splitters): Likewise.
	(movsf_hardfloat): Likewise.
	(mov<mode>_hardfloat for SFmode/SDmode): Likewise.
	(movsf_softfloat): Likewise.
	(mov<mode>_softfloat for SFmode/SDmode): Likewise.

	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl)
	(wx and wz constraints.

	* config/rs6000/constraints.md (wg constraint): New constraint to
	return FLOAT_REGS if -mmfpgpr (power6x) was used.

	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
	constraint.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
	-mdebug=reg, print wg, wl, wx, and wz constraints.
	(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
	Initialize the reload functions for 64-bit binary/decimal floating
	point types.
	(reg_offset_addressing_ok_p): If we are on a power7 or later, use
	LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
	create the buffer on the stack to overcome not having a 32-bit
	load and store.
	(rs6000_emit_move): Likewise.
	(rs6000_secondary_memory_needed_rtx): Likewise.
	(rs6000_alloc_sdmode_stack_slot): Likewise.
	(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
	via xxlxor, just like DFmode 0.0.


	* config/rs6000/dfp.md (movdd): Delete, combine with binary
	floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
	with other moves by using conditional constraits (wg).  Use LFIWZX
	and STFIWX for loading SDmode on power7.
	(movdd splitters): Likewise.
	(movdd_hardfloat32): Likewise.
	(movdd_softfloat32): Likewise.
	(movdd_hardfloat64_mfpgpr): Likewise.
	(movdd_hardfloat64): Likewise.
	(movdd_softfloat64): Likewise.

	* config/rs6000/rs6000.md (FMOVE64): New iterators to combine
	64-bit binary and decimal floating point moves.
	(FMOVE64X): Likewise.
	(movdf): Combine 64-bit binary and decimal floating point moves.
	Combine power6x (mfpgpr) moves with other moves by using
	conditional constraits (wg).
	(mov<mode> for DFmode/DDmode): Likewise.
	(DFmode/DDmode splitters): Likewise.
	(movdf_hardfloat32): Likewise.
	(mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
	(movdf_softfloat32): Likewise.
	(movdf_hardfloat64_mfpgpr): Likewise.
	(movdf_hardfloat64): Likewise.
	(mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
	(movdf_softfloat64): Likewise.
	(mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
	(reload_<mode>_load): Move to later in the file so they aren't in
	the middle of the floating point move insns.
	(reload_<mode>_store): Likewise.

	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
	constraint.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
	constraint if -mdebug=reg.
	(rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
	-mfpgpr.  Enable using dd reload support if needed.

	* config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
	binary and decimal floating point moves in rs6000.md.
	(movtd_internal): Likewise.

	* config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
	decimal floating point moves.
	(movtf): Likewise.
	(movtf_internal): Likewise.
	(mov<mode>_internal, TDmode/TFmode): Likewise.
	(movtf_softfloat): Likewise.
	(mov<mode>_softfloat, TDmode/TFmode): Likewise.

	* config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
	movdi_internal64, using wg constraint for move direct operations.
	(movdi_internal64): Likewise.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
	MODES_TIEABLE_P for selected modes.  Print the numerical value of
	the various virtual registers. Use GPR/FPR first/last values)
	(instead of hard coding the register numbers.  Print which modes
	have reload functions registered.
	(rs6000_option_override_internal): If -mdebug=reg, trace the
	options settings before/after setting cpu, target and subtarget
	settings.
	(rs6000_secondary_reload_trace): Improve the RTL dump for
	-mdebug=addr and for secondary reload failures in
	rs6000_secondary_reload_inner.
	(rs6000_secondary_reload_fail): Likewise.
	(rs6000_secondary_reload_inner): Likewise.

	* config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
	macros for first/last GPR and FPR registers.
	(LAST_GPR_REGNO): Likewise.
	(FIRST_FPR_REGNO): Likewise.
	(LAST_FPR_REGNO): Likewise.

	* config/rs6000/vector.md (mul<mode>3): Use the combined macro
	VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
	VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
	(vcond<mode><mode>): Likewise.
	(vcondu<mode><mode>): Likewise.
	(vector_gtu<mode>): Likewise.
	(vector_gte<mode>): Likewise.
	(xor<mode>3): Don't allow logical operations on TImode in 32-bit
	to prevent the compiler from converting DImode operations to
	TImode.
	(ior<mode>3): Likewise.
	(and<mode>3): Likewise.
	(one_cmpl<mode>2): Likewise.
	(nor<mode>3): Likewise.
	(andc<mode>3): Likewise.

	* config/rs6000/constraints.md (wt constraint): New constraint
	that returns VSX_REGS if TImode is allowed in VSX registers.

	* config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
	constant under VSX.

	* config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
	similar to TImode, but it is restricted to being in the GPRs.

	* config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
	TImode to occupy a single VSX register.

	* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
	-mvsx-timode for power7/power8.
	(power7 cpu): Likewise.
	(power8 cpu): Likewise.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
	sure that TFmode/TDmode take up two registers if they are ever
	allowed in the upper VSX registers.
	(rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
	registers.
	(rs6000_init_hard_regno_mode_ok): Likewise.
	(rs6000_debug_reg_global): Add debugging for PTImode and wt
	constraint.  Print if LRA is turned on.
	(rs6000_option_override_internal): Give an error if -mvsx-timode
	and VSX is not enabled.
	(invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
	-mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
	to reg+offset addressing.  Use PTImode when checking offset
	addresses for validity.
	(reg_offset_addressing_ok_p): Likewise.
	(rs6000_legitimate_offset_address_p): Likewise.
	(rs6000_legitimize_address): Likewise.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_legitimate_address_p): Likewise.
	(rs6000_eliminate_indexed_memrefs): Likewise.
	(rs6000_emit_move): Likewise.
	(rs6000_secondary_reload): Likewise.
	(rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
	reloads to fpr registers to continue to use reg+offset addressing)
	(but 64-bit reloads to altivec registers need reg+reg addressing.
	Drop test for PRE_MODIFY, since VSX loads/stores no longer support
	it.  Treat LO_SUM like a PLUS operation.
	(rs6000_secondary_reload_class): If type is 64-bit, prefer to use
	FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
	addressing.
	(rs6000_cannot_change_mode_class): Do not allow TImode in VSX
	registers to share a register with a smaller sized type, since VSX
	puts scalars in the upper 64-bits.
	(print_operand): Add support for PTImode.
	(rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
	VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
	registers, but don't have arithmetic support.
	(rs6000_memory_move_cost): Add test for VSX.
	(rs6000_opt_masks): Add -mvsx-timode.

	* config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
	for TImode.
	(VSs): Likewise.
	(VSr): Use wt constraint for TImode.
	(VSv): Drop TImode support.
	(vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
	(vsx_movti_64bit): Likewise.
	(vsx_movti_32bit): Likewise.
	(vec_store_<mode>): Use VSX iterator instead of vector iterator.
	(vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
	one '?' on the appropriate output constraint.  Do not allow TImode
	logical operations on 32-bit systems.
	(vsx_ior<mode>3): Likewise.
	(vsx_xor<mode>3): Likewise.
	(vsx_one_cmpl<mode>2): Likewise.
	(vsx_nor<mode>3): Likewise.
	(vsx_andc<mode>3): Likewise.
	(vsx_concat_<mode>): Likewise.
	(vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.

	* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
	OPTION_MASK_VSX_TIMODE.
	(enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
	(STACK_SAVEAREA_MODE): Use PTImode instead of TImode.

	* config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
	(TI2 iterator): New iterator for TImode, PTImode.
	(wd mode attribute): Add values for vector types.
	(movti_string): Replace TI move operations with operations for
	TImode and PTImode.  Add support for TImode being allowed in VSX
	registers.
	(mov<mode>_string, TImode/PTImode): Likewise.
	(movti_ppc64): Likewise.
	(mov<mode>_ppc64, TImode/PTImode): Likewise.
	(TI mode splitters): Likewise.

	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
	constraint.

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

	* tree-ssanames.c (make_ssa_name_fn): Fix assert.

2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.

2014-04-01  Richard Biener  <rguenther@suse.de>

	* gimple.h (struct gimple_statement_base): Align subcode to
	16 bits.

2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* doc/invoke.texi (mapp-regs): Clarify.

2014-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/60700
	Backport from mainline
	2013-07-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	PR rtl-optimization/57637
	* function.c (move_insn_for_shrink_wrap): Also check the
	GEN set of the LIVE problem for the liveness analysis
	if it exists, otherwise give up.

2014-03-30  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline
	2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/60039
	* config/sh/sh.md (udivsi3_i1): Clobber R1 register.

2014-03-26  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60419
	* ipa.c (symtab_remove_unreachable_nodes): Clear thunk and
	alias flags of nodes in the border.

2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/60452
	* rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
	<case REG>: Return 1 for invalid offsets from the frame pointer.

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

	PR tree-optimization/60429
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove
	duplicated line.

2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/60601
	* bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.

	* gcc.c (eval_spec_function): Initialize save_growing_value.

2014-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/60568
	* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
	into CONST, put pic register as first operand of PLUS.  Use
	gen_const_mem for both 32-bit and 64-bit PIC got loads.

2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
	around for store forwarding issue in the FPU on the UT699.
	* config/sparc/sparc.md (in_branch_delay): Return false for single FP
	loads and operations if -mfix-ut699 is specified.
	(divtf3_hq): Tweak attribute.
	(sqrttf2_hq): Likewise.

2014-03-18  Kai Tietz  <ktietz@redhat.com>

	PR rtl-optimization/56356
	* sdbout.c (sdbout_parms): Verify that parms'
	incoming argument is valid.
	(sdbout_reg_parms): Likewise.

2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
	proper constant for the store mode.

2014-03-17  Mikael Pettersson  <mikpelinux@gmail.com>
	    Committed by Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline:

	2013-06-20  Joern Rennecke <joern.rennecke@embecosm.com>

	PR rtl-optimization/57425
	PR rtl-optimization/57569
	* alias.c (write_dependence_p): Remove parameters mem_mode and
	canon_mem_addr.  Add parameters x_mode, x_addr and x_canonicalized.
	Changed all callers.
	(canon_anti_dependence): Get comments and semantics in sync.
	Add parameter mem_canonicalized.  Changed all callers.
	* rtl.h (canon_anti_dependence): Update prototype.

	2013-06-16  Joern Rennecke <joern.rennecke@embecosm.com>

	PR rtl-optimization/57425
	PR rtl-optimization/57569
	* alias.c (write_dependence_p): Add new parameters mem_mode,
	canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
	Changed all callers.
	(canon_anti_dependence): New function.
	* cse.c (check_dependence): Use canon_anti_dependence.
	* cselib.c (cselib_invalidate_mem): Likewise.
	* rtl.h (canon_anti_dependence): Declare.

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

	Backport from mainline
	2014-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60429
	PR tree-optimization/60485
	* tree-ssa-structalias.c (set_union_with_increment): Properly
	take into account all fields that overlap the shifted vars.
	(do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.
	(get_constraint_for_ptr_offset): Likewise.

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

	* config/sparc/sparc-protos.h (tls_call_delay): Delete.
	(eligible_for_call_delay): New prototype.
	* config/sparc/sparc.c (tls_call_delay): Rename into...
	(eligible_for_call_delay): ...this.  Return false if the instruction
	cannot be put in the delay slot of a branch.
	(eligible_for_restore_insn): Simplify.
	(eligible_for_return_delay): Return false if the instruction cannot be
	put in the delay slot of a branch and simplify.
	(eligible_for_sibcall_delay): Return false if the instruction cannot be
	put in the delay slot of a branch.
	* config/sparc/sparc.md (fix_ut699): New attribute.
	(tls_call_delay): Delete.
	(in_call_delay): Reimplement.
	(eligible_for_sibcall_delay): Rename into...
	(in_sibcall_delay): ...this.
	(eligible_for_return_delay): Rename into...
	(in_return_delay): ...this.
	(in_branch_delay): Reimplement.
	(in_uncond_branch_delay): Delete.
	(in_annul_branch_delay): Delete.

2014-03-14  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2014-03-14 trunk r208562.

	PR target/59396
	* config/avr/avr.c (avr_set_current_function): Pass function name
	through default_strip_name_encoding before sanity checking instead
	of skipping the first char of the assembler name.

2014-03-13  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2014-03-13 trunk r208532.
	
	PR target/60486
	* config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
	calls of avr_out_plus_1.

2014-03-13  Joey Ye  <joey.ye@arm.com>

	Backport from mainline
	2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/60454
	* tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.

2014-03-06  Matthias Klose  <doko@ubuntu.com>

	* Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
	MULTILIB_OSDIRNAMES is not defined.

2014-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60276
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid
	a -Wsign-compare warning.

	* Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H).

	Backport from mainline
	2014-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56490
	* params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
	* tree-ssa-uninit.c: Include params.h.
	(compute_control_dep_chain): Add num_calls argument, return false
	if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
	num_calls to recursive call.
	(find_predicates): Change dep_chain into normal array, add num_calls
	variable and adjust compute_control_dep_chain caller.
	(find_def_preds): Likewise.

	2014-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/43546
	* expr.c (compress_float_constant): If x is a hard register,
	extend into a pseudo and then move to x.

	2014-02-11  Richard Henderson  <rth@redhat.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR debug/59776
	* tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
	around drhs if type conversion to lacc->type is not useless.

	2014-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/60026
	* ipa-cp.c (determine_versionability): Fail at -O0
	or __attribute__((optimize (0))) or -fno-ipa-cp functions.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.

	2014-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/60062
	* tree.h (opts_for_fn): New inline function.
	(opt_for_fn): Define.
	* config/i386/i386.c (ix86_function_regparm): Use
	opt_for_fn (decl, optimize) instead of optimize.

	2014-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/57499
	* tree-eh.c (cleanup_empty_eh): Bail out on totally empty
	bb with no successors.

2014-03-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60382
	* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
	dead PHIs a reduction.

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

	Backport from mainline
	2014-02-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60276
	* tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
	(STMT_VINFO_MIN_NEG_DIST): New macro.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
	STMT_VINFO_MIN_NEG_DIST.
	* tree-vect-stmts.c (vectorizable_load): Verify if assumptions
	made for negative dependence distances still hold.

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

	Backport from mainline
	2014-02-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/60291
	* tree-ssa-live.c (mark_all_vars_used_1): Do not walk
	DECL_INITIAL for globals not in the current function context.

	2014-02-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/60221
	* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
	regions at -O0.

	2014-02-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60183
	* tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating
	loads.
	(tree_ssa_phiprop): Calculate and free post-dominators.

2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/55426
	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
	conversions.

2014-02-24  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_move_double): Don't valididate when
	adjusting offsetable addresses.

2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names

2014-02-23  Edgar E. Iglesias <edgar.iglesias@xilinx.com>

	* config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
	definition.

2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
	and define TARGET_ASM_OUTPUT_MI_THUNK and
	TARGET_ASM_CAN_OUTPUT_MI_THUNK.

2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/predicates.md: Add cmp_op predicate.
	* config/microblaze/microblaze.md: Add branch_compare instruction 
	which uses cmp_op predicate and emits cmp insn before branch.
	* config/microblaze/microblaze.c (microblaze_emit_compare): Rename 
	to microblaze_expand_conditional_branch and consolidate logic.
	(microblaze_expand_conditional_branch): emit branch_compare
	insn instead of handling cmp op separate from branch insn.

2014-02-21  Martin Jambor  <mjambor@suse.cz>

	PR ipa/55260
	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
	info when checking whether lattices are bottom.

2014-02-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
	mode for mask of V8SFmode permutation.

2014-02-20  Richard Henderson  <rth@redhat.com>

	PR c++/60272
	* builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
	on failure the store back into EXPECT.  Always make a new pseudo for
	OLDVAL.

2014-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/57896
	* config/i386/i386.c (expand_vec_perm_interleave2): Don't call
	gen_reg_rtx if d->testing_p.
	(expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1,
	expand_vec_perm_broadcast_1): Return early if d->testing_p and
	we will certainly return true.

2014-02-20  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (replace_uses_by): Mark altered BBs before
	doing the substitution.

2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60207
	* config/i386/i386.c (construct_container): Remove TFmode check
	for X86_64_INTEGER_CLASS.

2014-02-19  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-02-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59794
	* config/i386/i386.c (type_natural_mode): Warn for ABI changes
	only when -Wpsabi is enabled.

2014-02-19  Terry Guo  <terry.guo@arm.com>

	Backport from mainline
	2014-02-08  Terry Guo  <terry.guo@arm.com>

	* doc/invoke.texi: Document ARM -march=armv7e-m.

2014-02-18  Kai Tietz  <ktietz@redhat.com>

	Backport from mainline
	2014-02-18  Kai Tietz  <ktietz@redhat.com>

	PR target/60193
	* config/i386/i386.c (ix86_expand_prologue): Use
	rax register as displacement for restoring %r10, %rax.
	Additional fix wrong offset for restoring both-registers.

2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
	assertion with conditional return.

2014-02-18  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR driver/60233
	* config/i386/driver-i386.c (host_detect_local_cpu): If
	YMM state is not saved by the OS, also clear has_f16c.  Move
	CPUID 0x80000001 handling before YMM state saving checking.

2014-02-14  Roland McGrath  <mcgrathr@google.com>

	* configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
	* configure: Regenerated.
	* config.in: Regenerated.
	* config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
	instead of ASM_SHORT.

2014-02-13  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-02-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
	operands[2], not operands[3].

2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_asm_output_function_label): Fix crash
	caused by bad second argument to warning_at() with -mhotpatch and
	nested functions (e.g. with gfortran).

2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
		    Uros Bizjak  <ubizjak@gmail.com>

	PR target/60151
	* configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.

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

	PR rtl-optimization/60116
	* combine.c (try_combine): Also remove dangling REG_DEAD notes on the
	other_insn once the combination has been validated.

2014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>

	* config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
	* config/microblaze/predicates.md: Add reg_or_mem_operand predicate.

2014-02-10  Nagaraju Mekala <nagaraju.mekala@xilinx.com>

	* config/microblaze/microblaze.c: Extend mcpu version format

2014-02-10  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.

2014-02-10  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59903
	* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
	check properly.

	2014-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60115
	* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
	MEM_REF handling.  Properly verify that the accesses are not
	out of the objects bound.

2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline.
	2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>

	PR target/59718
	* doc/invoke.texi (-march): Clarify documentation for ARM.
	(-mtune): Likewise.
	(-mcpu): Likewise.

2014-02-04  John David Anglin  <danglin@gcc.gnu.org>

	PR target/59777
	* config/pa/pa.c (legitimize_tls_address): Return original address
	if not passed a SYMBOL_REF rtx.
	(hppa_legitimize_address): Call legitimize_tls_address for all TLS
	addresses.
	(pa_emit_move_sequence): Simplify TLS source operands.
	(pa_legitimate_constant_p): Reject all TLS constants.
	* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
	(CONSTANT_ADDRESS_P): Reject TLS CONST addresses.

2014-02-04  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-02-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/60017
	* config/i386/i386.c (classify_argument): Fix handling of bit_offset
	when calculating size of integer atomic types.

2014-02-02  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-01-30  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.

2014-01-31  Richard Henderson  <rth@redhat.com>

	PR middle-end/60004
	* tree-eh.c (lower_try_finally_switch): Delay lowering finally block
	until after else_eh is processed.

2014-01-30  David Holsgrove <david.holsgrove@xilinx.com>

	Backport from mainline
	* config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
	comparison_operator with ordered_comparison_operator.

2014-01-25  Walter Lee  <walt@tilera.com>

	Backport from mainline
	2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
	avoid clobbering a live register.

2014-01-25  Walter Lee  <walt@tilera.com>

	Backport from mainline
	2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
	Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
	* config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
	Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.

2014-01-25  Walter Lee  <walt@tilera.com>

	Backport from mainline
	2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
	insns before bundling.
	* config/tilegx/tilegx.md (tile_network_barrier): Update comment.

2014-01-25  Walter Lee  <walt@tilera.com>

	Backport from mainline
	2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_expand_builtin): Set
	PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
	* config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.

2014-01-25  Walter Lee  <walt@tilera.com>

	Backport from mainline
	2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilepro/tilepro.md (ctzdi2): Use register_operand
	predicate.
	(clzdi2): Ditto.
	(ffsdi2): Ditto.

2014-01-25  Walter Lee  <walt@tilera.com>

	Backport from mainline
	2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
	(TARGET_EXPAND_TO_RTL_HOOK): Define.

2014-01-24  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59929
	* config/i386/i386.md (pushsf splitter): Get stack adjustment
	from push operand if code of push isn't PRE_DEC.

2014-01-23  David Holsgrove <david.holsgrove@xilinx.com>

	Backport from mainline.
	* config/microblaze/microblaze.md: Add trap insn and attribute

2014-01-23  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2013-10-21  Marek Polacek  <polacek@redhat.com>

	PR middle-end/58809
	* fold-const.c (fold_range_test): Return 0 if the type is not
	an integral type.

2014-01-22  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Correct bswaphi2 insn.

2014-01-22  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-01-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
	for SImode_address_operand operands, having only a REG argument.

	2014-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/59880
	* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
	if operands[1] is a REG or ZERO_EXTEND of a REG.

	2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
		    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59379
	* config/i386/i386.md (*lea<mode>): Zero-extend return register
	to DImode for zero-extended addresses.

2014-01-21  Andrew Pinski <apinski@cavium.com>
	    Steve Ellcey  <sellcey@mips.com>

	PR target/59462
	* config/mips/mips.c (mips_print_operand): Check operand mode instead
	of operator mode.

2014-01-21  Andrey Belevantsev  <abel@ispras.ru>

	Backport from mainline
	2013-12-23  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/57422
	* sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling
	add_to_hard_reg_set.

2014-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59860
	* tree.h (fold_builtin_strcat): New prototype.
	* builtins.c (fold_builtin_strcat): No longer static.  Add len
	argument, if non-NULL, don't call c_strlen.  Optimize
	directly into __builtin_memcpy instead of __builtin_strcpy.
	(fold_builtin_2): Adjust fold_builtin_strcat caller.
	* gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.

2014-01-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/59860
	* builtins.c (fold_builtin_strcat): Remove case better handled
	by tree-ssa-strlen.c.

2014-01-19  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
	long non-pic millicode calls.

2014-01-17  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
	call to $$dyncall when TARGET_LONG_CALLS is true.

2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59794
	* config/i386/i386.c (type_natural_mode): Add a bool parameter
	to indicate if type is used for function return value.  Warn
	ABI change if the vector mode isn't available for function
	return value.
	(ix86_function_arg_advance): Pass false to type_natural_mode.
	(ix86_function_arg): Likewise.
	(ix86_gimplify_va_arg): Likewise.
	(function_arg_32): Don't warn ABI change.
	(ix86_function_value): Pass true to type_natural_mode.
	(ix86_return_in_memory): Likewise.
	(ix86_struct_value_rtx): Removed.
	(TARGET_STRUCT_VALUE_RTX): Likewise.

2014-01-17  Charles Baylis  <charles.baylis@linaro.org>

	Backport from mainline
	2013-12-19  Charles Baylis  <charles.baylis@linaro.org>

	PR target/59142
	* config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
	patterns.
	* config/arm/ldmstm.md: Regenerate.

	2013-12-19  Charles Baylis  <charles.baylis@linaro.org>

	PR target/59142
	* config/arm/predicates.md (arm_hard_general_register_operand):
	New predicate.
	(arm_hard_register_operand): Remove.
	* config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
	for all patterns.
	* config/arm/ldmstm.md: Regenerate.

	2013-12-19  Charles Baylis  <charles.baylis@linaro.org>

	PR target/59142
	* config/arm/predicates.md (vfp_hard_register_operand): New predicate.
	* config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
	vfp_hard_register_operand.

2014-01-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	Backport from mainline
	2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
	    Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/59695
	* config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
	truncation.

2014-01-17  Terry Guo  <terry.guo@arm.com>

	PR target/59826
	* config/arm/arm.md (prefetch): Set insn type attribute to load1.

2014-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/59839
	* config/i386/i386.c (ix86_expand_builtin): If target doesn't
	satisfy operand 0 predicate for gathers, use a new pseudo as
	subtarget.

2014-01-16  Richard Henderson <rth@redhat.com>

	PR debug/54694
	* reginfo.c (global_regs_decl): Globalize.
	* rtl.h (global_regs_decl): Declare.
	* ira.c (do_reload): Diagnose frame_pointer_needed and it
	reserved via global_regs.

2014-01-16  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	2014-01-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_hard_regno_mode_ok): Use
	VALID_AVX256_REG_OR_OI_MODE.

	2013-09-05  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/58139
	* reginfo.c (choose_hard_reg_mode): Scan through all mode classes
	looking for widest mode.

2014-01-16  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2014-01-16  Marek Polacek  <polacek@redhat.com>

	PR middle-end/59827
	* gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
	it is error_mark_node.

2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/59803
	* config/s390/s390.c (s390_preferred_reload_class): Don't return
	ADDR_REGS for invalid symrefs in non-PIC code.

2014-01-14  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2014-01-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_data_alignment): Calculate max_align
	from prefetch_block tune setting.

2014-01-13  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2014-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59745
	* tree-predcom.c (tree_predictive_commoning_loop): Call
	free_affine_expand_cache if giving up because components is NULL.

2014-01-10  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/arm/arm.c (arm_expand_neon_args): Call expand_expr
	with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
	rtx is const0_rtx or not.

2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
	extraction in good case.

2014-01-10  Huacai Chen  <chenhc@lemote.com>

	* config/mips/driver-native.c (host_detect_local_cpu): Handle new
	kernel strings for Loongson-2E/2F/3A.

2014-01-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59715
	* tree-flow.h (split_critical_edges): Declare.
	* tree-cfg.c (split_critical_edges): Export.
	* tree-ssa-sink.c (execute_sink_code): Split critical edges.

2014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (ISA_HAS_WSBH): Define.
	* config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
	constants.
	(bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.

2014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/59137
	* reorg.c (steal_delay_list_from_target): Call update_block for
	elided insns.
	(steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.

2014-01-09  Richard Sandiford  <rdsandiford@googlemail.com>

	Revert:
	2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_truncated_op_cost): New function.
	(mips_rtx_costs): Adjust test for BADDU.
	* config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.

	2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
	(*baddu_si): ...this new pattern.

2014-01-09  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59125
	PR tree-optimization/54570
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
	is not complete do not treat component-references with offset zero
	but different fields as equal.
	* tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
	(compute_object_sizes): Apply TLC.  Propagate the constant
	results into all uses and fold their stmts.
	* passes.def (pass_all_optimizations): Move pass_object_sizes
	after the first pass_forwprop and before pass_fre.

	2013-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59362
	* tree-object-size.c (object_sizes): Change into array of
	vec<unsigned HOST_WIDE_INT>.
	(compute_builtin_object_size): Check computed bitmap for
	non-NULL instead of object_sizes.  Call safe_grow on object_sizes
	vector if new SSA_NAMEs appeared.
	(init_object_sizes): Check computed bitmap for non-NULL.
	Call safe_grow on object_sizes elements instead of initializing
	it with XNEWVEC.
	(fini_object_sizes): Call release on object_sizes elements, don't
	set it to NULL.

2014-01-09  Richard Earnshaw  <rearnsha@arm.com>

	PR rtl-optimization/54300
	* regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
	outputs in a single-set are killed from the value chains.

2014-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/59724
	* ifcvt.c (cond_exec_process_if_block): Don't call
	flow_find_head_matching_sequence with 0 longest_match.
	* cfgcleanup.c (flow_find_head_matching_sequence): Count even
	non-active insns if !stop_after.
	(try_head_merge_bb): Revert 2014-01-07 changes.

2014-01-09  Hans-Peter Nilsson  <hp@axis.com>

	Backport from mainline
	2013-12-23  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/59584
	* config/cris/predicates.md (cris_nonsp_register_operand):
	New define_predicate.
	* config/cris/cris.md: Replace register_operand with
	cris_nonsp_register_operand for destinations in all
	define_splits where a register is set more than once.

2014-01-08   H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2013-12-25   H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59587
	* config/i386/i386.c (struct ptt): Add a field for processor name.
	(processor_target_table): Sync with processor_type.  Add
	processor names.
	(cpu_names): Removed.
	(ix86_option_override_internal): Default x_ix86_tune_string
	to processor_target_table[TARGET_CPU_DEFAULT].name.
	(ix86_function_specific_print): Assert arch and tune <
	PROCESSOR_max.  Use processor_target_table to print arch and
	tune names.
	* config/i386/i386.h (TARGET_CPU_DEFAULT): Default to
	PROCESSOR_GENERIC32.
	(target_cpu_default): Removed.
	(processor_type): Reordered.

2014-01-08  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2014-01-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_data_alignment): Calculate max_align
	from prefetch_block tune setting.
	(nocona_cost): Correct size of prefetch block to 64.

2014-01-08  Martin Jambor  <mjambor@suse.cz>

	PR ipa/59610
	* ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing.
	(parm_preserved_before_stmt_p): Assume modification present when not
	optimizing.

2014-01-07  John David Anglin  <danglin@gcc.gnu.org>

	PR target/59652
	* config/pa/pa.c (pa_legitimate_address_p): Return false before reload
	for 14-bit register offsets when INT14_OK_STRICT is false.

2014-01-07  Roland Stigge  <stigge@antcom.de>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR 57386/target
	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
	Only check TFmode for SPE constants.  Don't check TImode or TDmode.

2014-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/58668
	* cfgcleanup.c (flow_find_cross_jump): Don't count
	any jumps if dir_p is NULL.  Remove p1 variable and make USE/CLOBBER
	check consistent with other places.
	(flow_find_head_matching_sequence): Don't count USE or CLOBBER insns.
	(try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
	counting change.
	* ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns.

2014-01-07  Mike Stump  <mikestump@comcast.net>
	    Jakub Jelinek  <jakub@redhat.com>

	PR pch/59436
	* tree.h (struct tree_optimization_option): Change optabs
	type from unsigned char * to void *.
	* optabs.c (init_tree_optimization_optabs): Adjust
	TREE_OPTIMIZATION_OPTABS initialization.

2014-01-07  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2013-12-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/58956
	PR middle-end/59470
	* gimple.h (walk_stmt_load_store_addr_fn): New typedef.
	(walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
	for callback params.
	* gimple.c (walk_stmt_load_store_ops): Likewise.
	(walk_stmt_load_store_addr_ops): Likewise.  Adjust all callback
	calls to supply the gimple operand containing the base tree
	as an extra argument.
	* tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper
	functions.
	(find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
	same_root_var if USE is used somewhere in the stores of the stmt.
	* ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
	argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
	* ipa-pure-const.c (check_load, check_store, check_ipa_load,
	check_ipa_store): Likewise.
	* gimple.c (gimple_ior_addresses_taken_1): Likewise.
	* ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
	(verify_non_ssa_vars, visit_bb): Adjust their callers.
	* cfgexpand.c (add_scope_conflicts_1): Use
	walk_stmt_load_store_addr_fn type for visit variable.
	(visit_op, visit_conflict): Remove name of the stmt
	argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
	* tree-sra.c (asm_visit_addr): Likewise.  Remove name of the data
	argument and ATTRIBUTE_UNUSED.
	* cgraphbuild.c (mark_address, mark_load, mark_store): Add another
	unnamed tree argument.

2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.c (handle_move_double): Handle pushes with
	overlapping registers also for registers other than the stack
	pointer.

2014-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/59625
	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
	asm goto as jump.

2014-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/59647
	* cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
	new_rtx into UNSIGNED_FLOAT rtxes.

2013-12-28  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (output file options): Document -fada-spec-parent.

2013-12-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/driver-i386.c (decode_caches_intel): Add missing entries.

2013-12-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/59255
	Backported from mainline
	2013-08-19  Dehao Chen  <dehao@google.com>

	* value-prof.c (gimple_ic): Fix the bug of adding EH edge.

2013-12-19  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from Mainline.
	2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
	(cmgeu): ...This.
	(cmhi): Rename to...
	(cmgtu): ...This.
	* config/aarch64/aarch64-simd.md
	(simd_mode): Add SF.
	(aarch64_vcond_internal): Use new names for unsigned comparison insns.
	(aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
	* config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
	(cstore<mode>_neg): ...This.
	* config/aarch64/iterators.md
	(VALLF): new.
	(unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
	(COMPARISONS): New.
	(UCOMPARISONS): Likewise.
	(optab): Add missing comparisons.
	(n_optab): New.
	(cmp_1): Likewise.
	(cmp_2): Likewise.
	(CMP): Likewise.
	(cmp): Remove.
	(VCMP_S): Likewise.
	(VCMP_U): Likewise.
	(V_cmp_result): Add DF, SF modes.
	(v_cmp_result): Likewise.
	(v): Likewise.
	(vmtype): Likewise.
	* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.

	Partial Backport from mainline.
	2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h
	(vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap
	to builtins or C as appropriate.

2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
	    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	Backport from mainline
	2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
	* config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
	constant
	(s390_hotpatch_trampoline_halfwords_max): New constant
	(s390_hotpatch_trampoline_halfwords): New static variable
	(get_hotpatch_attribute): New function
	(s390_handle_hotpatch_attribute): New function
	(s390_attribute_table): New target specific attribute table to implement
	the hotpatch attribute
	(s390_option_override): Parse hotpatch options
	(s390_function_num_hotpatch_trampoline_halfwords): New function
	(s390_can_inline_p): Implement target hook to
	suppress hotpatching for explicitly inlined functions
	(s390_asm_output_function_label): Generate hotpatch prologue
	(TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
	(TARGET_CAN_INLINE_P): Define to implement target hook
	* config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
	* config/s390/s390-protos.h (s390_asm_output_function_label): Add
	prototype
	* config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
	function label generation for hotpatching
	(FUNCTION_BOUNDARY): Align functions to eight bytes
	* doc/extend.texi: Document hotpatch attribute
	* doc/invoke.texi: Document -mhotpatch option

2013-12-18  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.

2013-12-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/59470
	* lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
	values if necessary.

2013-12-12  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/59467
	* gimplify.c (omp_check_private): Add copyprivate argument, if it
	is true, don't check omp_privatize_by_reference.
	(gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
	decl is private in outer context.  Adjust omp_check_private caller.

2013-12-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/58295
	* simplify-rtx.c (simplify_truncation): Restrict the distribution for
	WORD_REGISTER_OPERATIONS targets.

2013-12-10  Kai Tietz  <ktietz@redhat.com>

	PR target/56807
	* config/i386/i386.c (ix86_expand_prologue): Address saved
	registers stack-relative, not via frame-pointer.

2013-12-09  Alan Modra  <amodra@gmail.com>

	Apply from mainline
	2013-12-05  Alan Modra  <amodra@gmail.com>
	* configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
	build != host.
	<recursive call for build != host>: Clear GMPINC.  Don't bother
	saving CFLAGS.
	* configure: Regenerate.

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

	Backport from mainline
	2013-12-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59405
	* config/i386/i386.c (type_natural_mode): Properly handle
	size 8 for !TARGET_64BIT.

2013-12-07  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.

2013-12-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59388
	* tree-ssa-reassoc.c (update_range_test): If op == range->exp,
	gimplify tem after stmt rather than before it.

2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2013-11-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/58314
	PR target/50751
	* config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
	Prefix function names with 'sh_'.  Make them non-static.
	* config/sh/sh-protos.h (sh_disp_addr_displacement,
	sh_max_mov_insn_displacement): Add declarations.
	* config/sh/constraints.md (Q): Reject QImode.
	(Sdd): Use match_code "mem".
	(Snd): Fix erroneous matching of non-memory operands.
	* config/sh/predicates.md (short_displacement_mem_operand): New
	predicate.
	(general_movsrc_operand): Disallow PC relative QImode loads.
	* config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
	(*movqi, *movhi): Merge both insns into...
	(*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
	'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
	on the operand types.

2013-12-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59334
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
	in previous commit.

	2013-11-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59330
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
	and fix delayed marking of free calls not necessary.

2013-12-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59288
	* tree-vect-loop.c (get_initial_def_for_induction): Do not
	re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.

	2013-11-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59164
	* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
	check whether we can create an epilogue loop to reflect the
	cases where we create one.

	2013-09-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58137
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
	Do not create vectors of pointers.
	* tree-vect-loop.c (get_initial_def_for_induction): Use proper
	types for the components of the vector initializer.
	* tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
	allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.

2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	PR target/59343
	* config/sh/sh.md (*cbranch_t): Check that there are no labels between
	the s1 insn and the testing insn.  Remove REG_DEAD note	from s1 insn.

2013-12-05  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/58956
	* tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
	loads into stmts that may clobber it.

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

	PR rtl-optimization/58726
	* combine.c (force_to_mode): Fix comment typo.  Don't destructively
	modify x for ROTATE, ROTATERT and IF_THEN_ELSE.

2013-12-04  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/59163
	* config/i386/i386.c (ix86_legitimate_combined_insn): If for
	!TARGET_AVX there is misaligned MEM operand with vector mode
	and get_attr_ssememalign is 0, return false.
	(ix86_expand_special_args_builtin): Add get_pointer_alignment
	computed alignment and for non-temporal loads/stores also
	at least GET_MODE_ALIGNMENT as MEM_ALIGN.
	* config/i386/sse.md
	(<sse>_loadu<ssemodesuffix><avxsizesuffix>,
	<sse>_storeu<ssemodesuffix><avxsizesuffix>,
	<sse2>_loaddqu<avxsizesuffix>,
	<sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>,
	sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
	sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
	*vec_interleave_highv2df, *vec_interleave_lowv2df,
	*vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd,
	sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2,
	sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2,
	sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr,
	*sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm,
	sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned,
	sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add
	ssememalign attribute.
	* config/i386/i386.md (ssememalign): New define_attr.

2013-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59011
	* gimplify.c (nonlocal_vla_vars): New variable.
	(gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
	nonlocal_vla_vars chain.
	(gimplify_body): Call declare_vars on nonlocal_vla_vars chain
	if outer_bind has DECL_INITIAL (current_function_decl) block.

	PR target/58864
	* optabs.c (emit_conditional_move): Save and restore
	pending_stack_adjust and stack_pointer_delta if cmove can't be used.

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

	PR tree-optimization/59358
	* tree-vrp.c (union_ranges): To check for the partially
	overlapping ranges or adjacent ranges, also compare *vr0max
	with vr1max.

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

	PR tree-optimization/59139
	* tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
	code in get_val_for.
	(get_val_for): Use gcc_checking_asserts.

2013-11-27  Tom de Vries  <tom@codesourcery.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/59037
	* fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
	BIT_FIELD_REF.
	* gimplify.c (gimple_fold_indirect_ref): Same.

2013-12-01  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
	identifier node.

2013-12-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.

2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/iterators.md (vrint_conds): New int attribute.
	* config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
	(smax<mode>3): Likewise.
	(smin<mode>3): Likewise.

2013-11-28  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-11-27  Uros Bizjak  <ubizjak@gmail.com>
		    Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	PR target/56788
	* gcc.target/i386/xop-frczX.c: New test.

2013-11-28  Terry Guo  <terry.guo@arm.com>

	Backport mainline r205391
	2013-11-26  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (require_pic_register): Handle high pic base
	register for thumb-1.
	(arm_load_pic_register): Also initialize high pic base register.
	* doc/invoke.texi: Update documentation for option -mpic-register.

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

	Backported from mainline
	2013-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59014
	* tree-vrp.c (register_edge_assert_for_1): Don't look
	through conversions from non-integral types or through
	narrowing conversions.

2013-11-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/59138
	* expr.c (emit_group_store): Don't write past the end of the structure.
	(store_bit_field): Fix formatting.

2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2013-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/sparc/t-rtems: Add leon3 multilibs.

2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2013-08-09  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac: Add GAS check for LEON instructions on SPARC.
	* configure: Regenerate.
	* config.in: Likewise.
	* config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
	sparc*-*-* block.
	* config/sparc/sparc.opt (LEON, LEON3): New masks.
	* config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
	for LEON or LEON3.
	(ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
	(AS_LEON_FLAG): New macro.
	* config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
	and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
	Deal with LEON and LEON3 for the memory model.
	* config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
	(atomic_compare_and_swap<mode>_1): Likewise.
	(*atomic_compare_and_swap<mode>_1): Likewise.

2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2013-07-23  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (SPARC Options): Document new leon3 processor value.

2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc (sparc*-*-*): Accept leon3 processor.
	(sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
	* doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
	* config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
	* config/sparc/sparc.opt (enum processor_type): Add leon3.
	(mfix-ut699): Adjust comment.
	* config/sparc/sparc.h (TARGET_CPU_leon3): New define.
	(CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
	(CPP_CPU_SPEC): Likewise.
	(ASM_CPU_SPEC): Likewise.
	* config/sparc/sparc.c (leon3_cost): New constant.
	(sparc_option_override): Add leon3 support.
	(mem_ref): New function.
	(sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
	(sparc_do_work_around_errata): Look into the instruction in the delay
	slot and adjust accordingly.  Add fix for the data cache nullify issues
	of the UT699.  Change insertion position for the NOP.
	* config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
	(leon3_load): New reservation.
	(leon_store): Bump latency to 2.
	(grfpu): New automaton.
	(grfpu_alu): New unit.
	(grfpu_ds): Likewise.
	(leon_fp_alu): Adjust.
	(leon_fp_mult): Delete.
	(leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
	(leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
	* config/sparc/sparc.md (cpu): Add leon3.
	* config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
	(swapsi): Likewise.
	(atomic_test_and_set): Likewise.
	(ldstub): Likewise.

2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>

	* config/sparc/sparc.c: Include tree-pass.h.
	(TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
	(sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
	head of file.  Change return type.  Split off gate function.
	(sparc_gate_work_around_errata): New function.
	(pass_work_around_errata): New pass definition.
	(insert_pass_work_around_errata) New pass insert definition to
	insert pass_work_around_errata just after delayed-branch scheduling.
	(sparc_option_override): Insert the pass.
	* config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.

2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (SPARC Options): Document -mfix-ut699.
	* builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
	mode if the instruction isn't available in the original mode.
	* config/sparc/sparc.opt (mfix-ut699): New option.
	* config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
	(divdf3): Turn into expander.
	(divdf3_nofix): New insn.
	(divdf3_fix): Likewise.
	(divsf3): Disable if -mfix-ut699.
	(sqrtdf2): Turn into expander.
	(sqrtdf2_nofix): New insn.
	(sqrtdf2_fix): Likewise.
	(sqrtsf2): Disable if -mfix-ut699.

2013-11-22  Eric Botcazou  <ebotcazou@adacore.com>

	* print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.

2013-11-21  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	PR bootstrap/57683
	Backport from mainline: r197467 and r198999.
	2013-04-03  Jeff Law  <law@redhat.com>

	* Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
	(lra-eliminations.o): Likewise.

	2013-05-16  Jeff Law  <law@redhat.com>

	* Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).

2013-11-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/59207
	* config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
	Make sure neg2_ovf is set before being used.

2013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
	    Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	* config/s390/s390.c (s390_canonicalize_comparison): Don't fold
	int comparisons with an out of range condition code.
	(s390_optimize_nonescaping_tx): Skip empty BBs.
	Generate the new tbegin RTX when removing the FPR clobbers (with
	two SETs).
	(s390_expand_tbegin): Fix the retry loop counter.  Copy CC to the
	result before doing the retry calculations.
	(s390_init_builtins): Make tbegin "returns_twice" and tabort
	"noreturn".
	* config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
	the TDB setting part of an tbegin.
	("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
	("tx_assist"): Set unused argument to an immediate zero instead of
	loading zero into a GPR and pass it as argument.
	* config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
	Remove inline and related attributes.
	(__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
	(__TM_is_illegal, __TM_is_footprint_exceeded)
	(__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
	check.

2013-11-19  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-11-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
	ix86_address_subreg_operand.  Move subreg checks to
	ix86_validate_address_register.  Move address override check to
	ix86_legitimate_address_p.
	(ix86_validate_address_register): New function.
	(ix86_legitimate_address_p): Call ix86_validate_address_register
	to validate base and index registers.  Add address override check
	from ix86_decompose_address.
	(ix86_decompose_address): Remove.

	Backport from mainline
	2013-11-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59153
	* config/i386/i386.c (ix86_address_subreg_operand): Do not
	reject non-integer subregs.
	(ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
	Move check for invalid x32 constant addresses ...
	(ix86_legitimate_address_p): ... here.

2013-11-19  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-07  Richard Biener  <rguenther@suse.de>

	* tree-dfa.c (get_ref_base_and_extent): Fix casting.

2013-11-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57517
	* tree-predcom.c (combinable_refs_p): Verify the combination
	is always executed when the refs are.

2013-11-19  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/58941
	* tree-dfa.c (get_ref_base_and_extent): Merge common code
	in MEM_REF and TARGET_MEM_REF handling.  Make sure to
	process trailing array detection before diving into the
	view-converted object (and possibly apply some extra offset).

2013-11-18  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-10-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58794
	* fold-const.c (operand_equal_p): Compare FIELD_DECL operand
	of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.

	2013-10-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/58742
	* fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
	to (T) X for sign-changing conversions (or no conversion).

	2013-11-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58653
	* tree-predcom.c (ref_at_iteration): Rewrite to generate
	a MEM_REF.
	(prepare_initializers_chain): Adjust.

	PR tree-optimization/59047
	* tree-predcom.c (ref_at_iteration): Handle bitfield accesses
	properly.

	2013-10-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58143
	* tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
	New function.
	(rewrite_to_defined_overflow): Likewise.
	(move_computations_dom_walker::before_dom): Rewrite stmts
	with undefined signed overflow that are not always executed
	into unsigned arithmetic.

2013-11-14  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-11-10  Uros Bizjak  <ubizjak@gmail.com>

	* mode-switching.c (optimize_mode_switching): Mark block as
	nontransparent, if last_mode at block exit is different from no_mode.

	Backport from mainline
	2013-11-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59021
	* config/i386/i386.c (ix86_avx_u128_mode_needed): Require
	AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
	(ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
	RTXes that return in AVX256 register.

2013-11-14  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/59101
	* config/i386/i386.md (*anddi_2): Only allow CCZmode if
	operands[2] satisfies_constraint_Z that might have bit 31 set.

2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>

	Backported from mainline
	2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59088
	* config/i386/i386.c (initial_ix86_tune_features): Set
	X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
	X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.

2013-11-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	Backported from mainline
	2013-10-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/58854
	* config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage

2013-11-11  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2013-11-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/58970
	* expr.c (get_bit_range): Handle *offset == NULL_TREE.
	(expand_assignment): If *bitpos is negative, set *offset
	and adjust *bitpos, so that it is not negative.

	2013-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/58997
	* loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
	get_iv_value to be in iv->mode rather than iv->extend_mode.
	(iv_extend): Likewise.  Otherwise, if iv->extend != extend,
	use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
	* loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
	mode.

2013-11-10  Karlson2k  <k2k@narod.ru>
	    Kai Tietz  <ktietz@redhat.com>

	Merged from trunk
	PR plugins/52872
	* configure.ac: Adding for exported symbols check
	and for rdynamic-check executable-extension.
	* configure: Regenerated.

2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59034
	* config/i386/i386.md (push peepholer/splitter): Use Pmode
	with stack_pointer_rtx.

2013-11-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.

2013-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58984
	* ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
	set *SIZE_P if non-NULL on success.
	(ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
	callers.
	(ipcp_transform_function): Likewise.  Punt if size of access
	is different from TYPE_SIZE on v->value's type.

2013-11-03  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/58690
	* config/i386/i386.c (ix86_copy_addr_to_reg): New function.
	(ix86_expand_movmem): Replace copy_addr_to_reg with
	ix86_copy_addr_to_reg.
	(ix86_expand_setmem): Likewise.

2013-10-29  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/58079
	* combine.c (combine_simplify_rtx): Avoid using SUBST if
	simplify_comparison has widened a comparison with an integer.

2013-10-29  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/58789
	Backport from mainline
	2013-05-09  Martin Jambor  <mjambor@suse.cz>

	PR lto/57084
	* gimple-fold.c (canonicalize_constructor_val): Call
	cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.

	Backport from mainline
	2013-03-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_get_create_real_symbol_node): Declare.
	* cgraph.c (cgraph_get_create_real_symbol_node): New function.
	* cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
	of cgraph_get_create_node.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.

2013-10-28  Tom de Vries  <tom@codesourcery.com>

	* cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
	Don't commit insertions after NOTE_INSN_FUNCTION_BEG.

2013-10-26  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-10-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/58779
	* config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
	Remove CCCmode handling.
	<case LTU>: Return 'c' suffix for CCCmode.
	<case GEU>: Return 'nc' suffix for CCCmode.
	(ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
	* config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
	(*sub<mode>3_cc_overflow): Ditto.
	(*subsi3_zext_cc_overflow): Ditto.

2013-10-26  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-10-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/58792
	* config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
	ST1_REG and XMM1_REG for 32bit and 64bit targets.  Also add DI_REG
	and SI_REG for 64bit SYSV ABI targets.

2013-08-25  Richard Henderson  <rth@twiddle.net>

	PR rtl/58542
	* optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
	instead of create_convert_operand_to.
	(maybe_emit_sync_lock_test_and_set): Likewise.
	(expand_atomic_compare_and_swap): Likewise.
	(maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.

2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/58831
	* alias.c (init_alias_analysis): At the beginning of each iteration, set
	the reg_seen[N] bit if static_reg_base_value[N] is non-null.

2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>

	* recog.c (search_ofs): New static variable moved from...
	(peep2_find_free_register): ...here.
	(peephole2_optimize): Initialize it.

2013-10-24  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline
	2013-10-23  David Edelsohn  <dje.gcc@gmail.com>

	PR target/58838
	* config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
	TARGET_32BIT final condition.
	(mulsi3_internal2 and splitter): Same.

2013-10-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/58805
	* tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.

2013-10-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-06-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57488
	* tree-ssa-pre.c (insert): Clear NEW sets before each iteration.

2013-10-16  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	Backport from mainline
	2013-10-16  Ganesh Gopalasubramanian
	            <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/i386.c (ix86_option_override_internal): Enable FMA4
	for AMD bdver3.

2013-10-16  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 4.8.3.
	* DEV-PHASE: Set to prerelease.

2013-10-16  Release Manager

	* GCC 4.8.2 released.

2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline.
	2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h
	(vtbx<1,3>_<psu>8): Fix register constriants.

2013-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/58670
	* stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
	if any labels are in FALLTHRU_BB, use a special label emitted
	immediately after the asm goto insn rather than label_rtx
	of the LABEL_DECL.
	(expand_asm_stmt): Adjust caller.
	* cfgrtl.c (commit_one_edge_insertion): Force splitting of
	edge if the last insn in predecessor is a jump with single successor,
	but it isn't simplejump_p.

2013-10-09  Jakub Jelinek  <jakub@redhat.com>

	Backport from mainline
	2013-09-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58539
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
	the fact that debug statements are not taking part in loop-closed
	SSA construction.

2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_register_info): Make the call-saved FPR
	loop to work also for 31bit ABI.
	Save the stack pointer for frame_size > 0.

2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
	("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
	constraint letters from expanders.
	("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
	retry count to general_operand.
	("tabort"): Give operand 0 a mode.
	("tabort_1"): Add mode and constraint letter for operand 0.
	* doc/extend.texi: Fix protoype of __builtin_non_tx_store.

2013-10-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	Backport from mainline.

	PR target/58460
	* config/aarch64/aarch64.md (*add_<shift>_<mode>)
	(*add_<shift>_si_uxtw,*add_mul_imm_<mode>)
	(*sub_<shift>_<mode>)
	(*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
	Remove k constraint.

2013-10-02  John David Anglin  <danglin@gcc.gnu.org>

	* config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.

2013-10-01  Jakub Jelinek  <jakub@redhat.com>
	    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/58574
	* config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first,
	continue when done, for other jumps look through PARALLEL
	unconditionally.

2013-09-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/58564
	* fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
	optimization, punt if sign_bit_p looked through any zero extension.

2013-09-27  Paulo Matos  <pmatos@broadcom.com>

	Backport from mainline.

	PR middle-end/58463
	2013-03-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56716
	* tree-ssa-structalias.c (perform_var_substitution): Adjust
	dumping for ref nodes.

2013-09-27  Paulo Matos  <pmatos@broadcom.com>

	Backport from mainline.

	2013-09-27  Paulo Matos  <pmatos@broadcom.com>
	PR middle-end/58463
	* gcc.dg/pr58463.c: New test.

2013-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
	assignment statements.

2013-09-23  Alan Modra  <amodra@gmail.com>

	PR target/58330
	* config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.

2013-09-23  Alan Modra  <amodra@gmail.com>

	* config/rs6000/predicates.md (add_cint_operand): New.
	(reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
	* config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
	using add_cint_operand.
	(largetoc_high_plus_aix): Likewise.
	* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.

2013-09-20  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/56791
	* config/pa/pa.c (pa_option_override): Disable auto increment and
	decrement instructions until reload is completed.

	* config/pa/pa.md: In "scc" insn patterns, change output template to
	handle const0_rtx in reg_or_0_operand operands.

2013-09-19  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_sections): Always pass len - 1 to
	GOMP_sections_start, even if !exit_reachable.

2013-09-18  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_expand_prologue): Validate architecture supports
	LDRD/STRD before accepting tuning preferences.
	(arm_expand_epilogue): Likewise.

2013-09-18  Daniel Morris  <danielm@ecoscentric.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58458
	* doc/implement-cxx.texi: Fix references to the C++ standards.

2013-09-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR tree-optimization/58088
	* fold-const.c (mask_with_trailing_zeros): New function.
	(fold_binary_loc): Make sure we don't recurse infinitely
	when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
	Use mask_with_trailing_zeros where appropriate.

2013-09-14  John David Anglin  <danglin@gcc.gnu.org>

	PR target/58382
	* config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
	calls to word_mode.

2013-09-13  Christian Bruel  <christian.bruel@st.com>

	PR target/58314
	* config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.

2013-09-11  Andi Kleen  <ak@linux.intel.com>

	Backport from mainline
	* doc/extend.texi: Use __atomic_store_n instead of
	__atomic_store in HLE example.

2013-09-11  Andi Kleen  <ak@linux.intel.com>

	Backport from mainline
	* doc/extend.texi: Dont use __atomic_clear in HLE
	example.  Fix typo.

2013-09-11  Andi Kleen  <ak@linux.intel.com>

	Backport from mainline
	* doc/extend.texi: Document that __atomic_clear and
	  __atomic_test_and_set should only be used with bool.

2013-09-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/58377
	* passes.c (init_optimization_passes): Split critical edges
	before late uninit warning pass in the -Og pipeline.

2013-09-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58385
	* fold-const.c (build_range_check): If both low and high are NULL,
	use omit_one_operand_loc to preserve exp side-effects.

2013-09-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/58361
	* arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
	support conditional execution.
	(combine_vcvt_f64_<FCVTI32typename>): Likewise.

2013-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/58365
	* cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
	resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
	it differs.

2013-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58364
	* tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
	BOOLEAN_TYPE, only invert in_p and continue with arg0 if
	the current range can't be an unconditional true or false.

2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/57735
	Backport from mainline
	2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
	Use gen_int_mode rather than GEN_INT.

2013-09-09  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-08-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57521
	* tree-if-conv.c (if_convertible_bb_p): Verify that at least
	one edge is non-critical.
	(find_phi_replacement_condition): Make sure to use a non-critical
	edge.  Cleanup and remove old bug workarounds.
	(bb_postdominates_preds): Remove.
	(if_convertible_loop_p_1): Do not compute post-dominators.
	(combine_blocks): Do not free post-dominators.
	(main_tree_if_conversion): Likewise.

2013-09-09  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-09-03  Richard Biener  <rguenther@suse.de>

	PR middle-end/57656
	* fold-const.c (negate_expr_p): Fix division case.
	(negate_expr): Likewise.

2013-09-09  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-08-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57685
	* tree-vrp.c (register_edge_assert_for_1): Recurse only for
	single-use operands to avoid exponential complexity.

2013-09-09  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58223
	* tree-loop-distribution.c (has_anti_dependence): Rename to ...
	(has_anti_or_output_dependence): ... this and adjust to also
	look for output dependences.
	(mark_nodes_having_upstream_mem_writes): Adjust.
	(rdg_flag_uses): Likewise.

2013-09-03  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-08-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58246
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
	handle the dominance check inside a basic-block.

2013-09-03  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58228
	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
	allow invariant loads in nested loop vectorization.

2013-09-03  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58010
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
	assert that we have a loop-closed PHI.

2013-09-01  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-08-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_conditional_move): Update
	"cmp" RTX before signed_comparison_operator check to account
	for "code" changes.

2013-09-01  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.

2013-08-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58277
	* tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
	after seeing too many stmts with vdef in between dombb and current
	bb, invalidate everything.

2013-08-29  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2013-08-05  Oleg Endo  <olegendo@gcc.gnu.org>

	PR other/12081
	* recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with	new
	class insn_gen_fn.
	* expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
	rtx (*) (rtx, ...) with insn_gen_fn.
	* genoutput.c (output_insn_data): Cast gen_? function pointers to
	insn_gen_fn::stored_funcptr.  Add initializer braces.

	Backport from mainline
	2013-08-07  Oleg Endo  <olegendo@gcc.gnu.org>

	PR other/12081
	* config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
	(rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision,
	rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t.

2013-08-29  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2013-05-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/57381
	PR tree-optimization/57417
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
	for unchanged base.
	(set_ssa_val_to): Compare addresses using
	get_addr_base_and_unit_offset.

	PR tree-optimization/57396
	* tree-affine.c (double_int_constant_multiple_p): Properly
	return false for val == 0 and div != 0.

	PR tree-optimization/57343
	* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
	use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
	(number_of_iterations_cond): Do not build the folded tree.

2013-08-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/58257
	* omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.

2013-08-28  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-06-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/56977
	* passes.c (init_optimization_passes): Move pass_fold_builtins
	and pass_dce earlier with -Og.

2013-08-28  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-08-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Update
	Haswell processor detection.

	Backport from mainline
	2013-08-27  Christian Widmer  <shadow@umbrox.de>

	PR target/57927
	* config/i386/driver-i386.c (host_detect_local_cpu): Add detection
	of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
	AVX2 capable processors.

2013-08-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/58218
	* config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
	* config/i386/i386.c (x86_64_elf_section_type_flags): New function.

	PR tree-optimization/58209
	* tree-tailcall.c (find_tail_calls): Give up for pointer result types
	if m or a is non-NULL.

2013-08-21  Richard Earnshaw  <rearnsha@arm.com>

	PR target/56979
	* arm.c (aapcs_vfp_allocate): Decompose the argument if the
	suggested mode for the assignment isn't compatible with the
	registers required.

2013-08-20  Alan Modra  <amodra@gmail.com>

	PR target/57865
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
	(rs6000_emit_epilogue): Likewise.

2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	Backport from mainline
	* config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
	destination and source operands.

2013-08-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58006
	* tree-parloops.c (take_address_of): Don't ICE if get_name
	returns NULL.
	(eliminate_local_variables_stmt): Remove clobber stmts.

2013-08-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58164
	* gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
	walk gimple_goto_dest of GIMPLE_GOTO.

	PR tree-optimization/58165
	* tree-call-cdce.c (shrink_wrap_one_built_in_call): If
	bi_call must be the last stmt in a bb, don't split_block, instead
	use fallthru edge from it and give up if there is none.
	Release conds vector when returning early.

2013-08-15  David Given  <dg@cowlark.com>

	Backport from mainline
	2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable
	instead of #ifdef.

2013-08-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/58145
	* tree-sra.c (build_ref_for_offset): If prev_base has
	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.

2013-08-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/htmxlintrin.h: Add file missing from last commit.
	* config/s390/htmintrin.h: Likewise.
	* config/s390/s390intrin.h: Likewise.

2013-08-14  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-08-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
	when Pmode != word_mode.  Add length_address attribute.
	(sse3_monitor_<mode>): Merge from sse3_monitor and
	sse3_monitor64_<mode> insn patterns.  Emit addr32 prefix when
	Pmode != word_mode.  Update insn length attribute.
	* config/i386/i386.c (ix86_option_override_internal): Update
	ix86_gen_monitor selection for merged sse3_monitor insn.

2013-08-14  Jakub Jelinek  <jakub@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR target/58067
	* config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
	and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
	there also UNSPEC_PLTOFF.

2013-08-13  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/56417
	* asan.c (instrument_strlen_call): Fix typo in comment.
	Use char * type even for the lhs of POINTER_PLUS_EXPR.

2013-08-13  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/57459
	* lra-constraints.c (update_ebb_live_info): Fix typo for operand
	type when setting live regs.

2013-08-13  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57980
	* tree-tailcall.c (process_assignment): Return false
	when not dealing with integers or floats.

2013-08-12  Andrew Haley  <aph@redhat.com>

	Backport from mainline:
	* 2013-07-11  Andreas Schwab  <schwab@suse.de>

	* config/aarch64/aarch64-linux.h (CPP_SPEC): Define.

2013-08-13  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-08-12  Perez Read  <netfirewall@gmail.com>

	PR target/58132
	* config/i386/i386.md (*movabs<mode>_1):  Add <ptrsize> PTR before
	operand 0 for intel asm alternative.
	(*movabs<mode>_2): Ditto for operand 1.

2013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	Backport from mainline:
	2013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/arm/neon.md (vcond): Fix floating-point vector
	comparisons against 0.

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

	Backport from mainline:
	2013-08-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/neon.md (movmisalign<mode>): Disable when we
	don't allow unaligned accesses.
	(*movmisalign<mode>_neon_store): Likewise.
	(*movmisalign<mode>_neon_load): Likewise.
	(*movmisalign<mode>_neon_store): Likewise.
	(*movmisalign<mode>_neon_load): Likewise.

2013-08-06  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/58041
	* gimple-ssa-strength-reduction.c (replace_ref): Make sure built
	MEM_REF has proper alignment information.

2013-08-05  Richard Earnshaw  <rearnsha@arm.com>

	PR rtl-optimization/57708
	* recog.c (peep2_find_free_register): Validate all regs in a
	multi-reg mode.

2013-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
	the implied StoreLoad barrier for atomic operations if before.

2013-08-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	Backports from mainline:
	2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
	(struct machine_function): Add tbegin_p.
	(s390_canonicalize_comparison): Fold CC mode compares to
	conditional jump if possible.
	(s390_emit_jump): Return the emitted jump.
	(s390_branch_condition_mask, s390_branch_condition_mnemonic):
	Handle CCRAWmode compares.
	(s390_option_override): Default to -mhtm if available.
	(s390_reg_clobbered_rtx): Handle floating point regs as well.
	(s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
	FPRs instead of df_regs_ever_live_p.
	(s390_optimize_nonescaping_tx): New function.
	(s390_init_frame_layout): Extend clobbered_regs array to cover
	FPRs as well.
	(s390_emit_prologue): Call s390_optimize_nonescaping_tx.
	(s390_expand_tbegin): New function.
	(enum s390_builtin): New enum definition.
	(code_for_builtin): New array definition.
	(s390_init_builtins): New function.
	(s390_expand_builtin): New function.
	(TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	* common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
	* config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
	(s390_alc_comparison): Likewise.
	* config/s390/s390-modes.def: Add CCRAWmode.
	* config/s390/s390.h (processor_flags): Add PF_TX.
	(TARGET_CPU_HTM): Define macro.
	(TARGET_HTM): Define macro.
	(TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
	* config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
	(UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
	(UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
	values.
	(TBEGIN_MASK, TBEGINC_MASK): New constants.
	("*cc_to_int"): Move up.
	("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
	constants other than 0.
	("*ccraw_to_int"): New insn and splitter definition.
	("tbegin", "tbegin_nofloat", "tbegin_retry")
	("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
	("tx_assist"): New expander.
	("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
	("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
	* config/s390/s390.opt: Add -mhtm option.
	* config/s390/s390-protos.h (s390_emit_jump): Add return type.
	* config/s390/htmxlintrin.h: New file.
	* config/s390/htmintrin.h: New file.
	* config/s390/s390intrin.h: New file.
	* doc/extend.texi: Document htm builtins.
	* config.gcc: Add the new header files to extra_headers.

	2013-07-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
	enabled without -march=zEC12.
	* config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
	flags to be set.

2013-08-01  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	Backport from mainline
	2013-05-13  Ganesh Gopalasubramanian
		    <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/i386.c (processor_target_table): Modified default
	alignment values for AMD BD and BT architectures.

2013-07-31  Sriraman Tallam  <tmsriram@google.com>

	* config/i386/i386.c (dispatch_function_versions): Fix array
	indexing of function_version_info to match actual_versions.

2013-07-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.gcc (*-*-rtems*): Use __cxa_atexit by default.
	* config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.

2013-07-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	Backport from mainline
	2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.

	2013-07-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/linux-unwind.h: Use the proper dwarf to hard reg
	mapping for FPRs when creating the fallback framestate.

	2013-07-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.md ("movcc"): Swap load and store instructions.

2013-07-25  Terry Guo  <terry.guo@arm.com>

	Backport from mainline:
	2013-07-25  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
	shift_add/shift_sub0/shift_sub1 RTXs.

2013-07-22  Iain Sandoe  <iain@codesourcery.com>

	Backport from mainline:
	2013-07-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
	it is not needed after split.

	2013-07-20  Iain Sandoe  <iain@codesourcery.com>

	PR target/51784
	* config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
	second label for nonlocal goto receivers. Don't output pic base labels
	unless we're producing PIC; mark that action unreachable().
	(ix86_save_reg): If the function contains a nonlocal label, save the
	PIC base reg.
	* config/darwin-protos.h (machopic_should_output_picbase_label): New.
	* gcc/config/darwin.c (emitted_pic_label_num): New GTY.
	(update_pic_label_number_if_needed): New.
	(machopic_output_function_base_name): Adjust for nonlocal receiver
	case.
	(machopic_should_output_picbase_label): New.
	* config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
	(nonlocal_goto_receiver): New insn and split.

2013-07-19 Wei Mi  <wmi@google.com>

	Backport from mainline:
	2013-07-18  Vladimir Makarov  <vmakarov@redhat.com>
		    Wei Mi  <wmi@google.com>

	PR rtl-optimization/57878
	* lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
	top. Promote lra_assert to gcc_assert.
	(reload_pseudo_compare_func): Check regs first for reload pseudos.

2013-07-11  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2013-07-19 trunk r201051.

	PR target/57516
	* config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
	* config/avr/avr.md (adjust_len): Add `round'.
	* config/avr/avr-protos.h (avr_out_round): New prototype.
	(avr_out_plus): Add `out_label' argument.
	* config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
	(avr_out_plus): Pass down `out_label' to avr_out_plus_1.
	Handle the case where `insn' is just a pattern.
	(avr_out_bitop): Handle the case where `insn' is just a pattern.
	(avr_out_round): New function.
	(avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.

2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/bmiintrin.h (_bextr_u32): New.
	(_bextr_u64): Ditto.
	(_blsi_u32): New.
	(_blsi_u64): Ditto.
	(_blsr_u32): Ditto.
	(_blsr_u64): Ditto.
	(_blsmsk_u32): Ditto.
	(_blsmsk_u64): Ditto.
	(_tzcnt_u32): Ditto.
	(_tzcnt_u64): Ditto.

2013-07-17  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport From mainline:
	2013-07-03  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
	* config/aarch64/aarch64-simd-builtins.def (ld1): New.
	(st1): Likewise.
	* config/aarch64/aarch64-simd.md
	(aarch64_ld1<VALL:mode>): New.
	(aarch64_st1<VALL:mode>): Likewise.
	* config/aarch64/arm_neon.h
	(vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.

2013-07-11  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2013-07-11 trunk r200901.

	PR target/57631
	* config/avr/avr.c (avr_set_current_function): Sanity-check signal
	name seen by assembler/linker if available.

2013-07-10  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2013-07-10 trunk r200872.

	PR target/57844
	* config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
	of my_fp.

2013-07-10  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2013-07-10 trunk r200870.

	PR target/57506
	* config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
	(atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
	(atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
	Remove duplicate devices.
	* config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
	* config/avr/t-multilib: Regenerate.
	* config/avr/avr-tables.opt: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2013-07-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/56987
	* config/avr/avr.opt (Waddr-space-convert): Fix typo.

2013-07-09  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
	adjust register size for TDmode and TFmode for VSX registers.

2013-07-08  Kai Tietz  <ktietz@redhat.com>

	Backport from mainline
	PR target/56892
	* config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
	hook_bool_const_tree_true.

2013-07-08  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-07-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Do not check
	signature_TM2_ebx, it interferes with signature_INTEL_ebx.

	Backport from mainline
	2013-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse_movlhps): Change alternative 3
	of operand 2 to "m".

2013-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).

2013-07-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/57829
	* simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
	mask bits outside of mode are just sign-extension from mode to HWI.

2013-07-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/57777
	* config/i386/predicates.md (vsib_address_operand): Disallow
	SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.

2013-06-30  Terry Guo  <terry.guo@arm.com>

	Backport from mainline
	2013-03-27  Bin Cheng  <bin.cheng@arm.com>

	PR target/56102
	* config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
	rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
	mult-word mode.

2013-06-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/57736
	* config/i386/i386.c (ix86_expand_builtin): If target == NULL
	and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
	into.

2013-06-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/57623
	* config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
	constraints of operand 1 and 2.

	PR target/57623
	* config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
	to match RTL canonicalization.  Swap predicates and
	constraints of operand 1 and 2.

	* tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
	decl before the loop, initialize to NULL.
	(vectorizable_load): Initialize ptr_incr to NULL.

2013-06-24  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/57358
	* ipa-prop.c (parm_ref_data_preserved_p): Always return true when
	not optimizing.

2013-06-24  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
	(gen_easy_altivec_constant): Likewise.
	* config/rs6000/predicates.md (easy_vector_constant_add_self,
	easy_vector_constant_msb): Likewise.

2013-06-21  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-06-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57655
	* config/i386/i386.c (construct_container): Report error if
	long double is used with disabled x87 float returns.

2013-06-20  Wei Mi  <wmi@google.com>

	Backport from mainline
	2013-06-19  Wei Mi  <wmi@google.com>

	PR rtl-optimization/57518
	* ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
	if regno is used in paradoxical subreg.
	(update_equiv_regs): Check pdx_subregs[regno] before
	set a reg to be equivalent with a mem.


2013-06-20  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline
	2013-06-19  David Edelsohn  <dje.gcc@gmail.com>

	PR driver/57652
	* collect2.c (collect_atexit): New.
	(collect_exit): Delete.
	(main): Register collect_atexit with atexit.
	(collect_wait): Change collect_exit to exit.
	(do_wait): Same.
	* collect2.h (collect_exit): Delete.
	* tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.

2013-06-19  Matthias Klose  <doko@ubuntu.com>

	PR driver/57651
	* file-find.h (find_a_file): Add a mode parameter.
	* file-find.c (find_a_file): Likewise.
	* gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
	with X_OK for the executables.
	* collect2.c (main): Call find_a_file with X_OK.

2013-06-19  Igor Zamyatin  <igor.zamyatin@intel.com>

	* doc/invoke.texi (core-avx2): Document.
	(atom): Updated with MOVBE.

2013-06-19  Jakub Jelinek  <jakub@redhat.com>

	PR driver/57651
	* gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
	PERSONALITY in $PATH derived prefixes.

2013-06-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56544
	* doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
	that now in C++ the value is correct per the C++ standards.

2013-06-19  Alan Modra  <amodra@gmail.com>

	Apply mainline patches
	2013-06-13  Alan Modra  <amodra@gmail.com>
	* config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
	* config/rs6000/rs6000.md (signbittf2): New insn.
	(extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
	(abstf2_internal, cmptf_internal2): Likewise.
	* config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.

	2013-06-11  Anton Blanchard  <anton@samba.org>
	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
	correct shift value in little-endian mode.

	2013-06-07  Alan Modra  <amodra@gmail.com>
	* config/rs6000/rs6000.c (setup_incoming_varargs): Round up
	va_list_gpr_size.

	2013-06-04  Alan Modra  <amodra@gmail.com>
	* config/rs6000/rs6000.c (output_toc): Correct little-endian float
	constant output.

	2013-05-10  Alan Modra  <amodra@gmail.com>
	* configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
	(HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
	* configure: Regenerate.

	2013-05-09  Alan Modra  <amodra@gmail.com>
	* configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
	powerpc64le.
	* configure: Regenerate.

	2013-05-07  Anton Blanchard  <anton@samba.org>
	* configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation
	for powerpc64 little endian.
	* configure: Regenerate.

	2013-05-06  Alan Modra  <amodra@gmail.com>
	* config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
	(LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
	* config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
	* config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
	(LINK_TARGET_SPEC): Use ENDIAN_SELECT.
	* config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.

	2013-05-06  Alan Modra  <amodra@gmail.com>
	* config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
	(ASM_SPEC): ..here.  Emit DEFAULT_ASM_ENDIAN too.
	(DEFAULT_ASM_ENDIAN): Define.
	(CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
	* config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
	Update -K PIC clause from sysv4.h.
	(ASM_SPEC_COMMON): Use ENDIAN_SELECT.
	(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.

	2013-05-06  Alan Modra  <amodra@gmail.com>
	* config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
	twice for little-endian.
	(ashrdi3_no_power, ashrdi3): Support little-endian.

	2013-04-25  Alan Modra  <amodra@gmail.com>
	* config.gcc: Support little-endian powerpc-linux targets.
	* config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
	(LINK_OS_LINUX_SPEC): Define.
	* config/rs6000/linuxspe.h (TARGET_DEFAULT):
	Preserve MASK_LITTLE_ENDIAN.
	* config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
	* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
	* config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
	(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
	(LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
	* config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
	Correct fp word order for little-endian.  Don't shift toc entries
	smaller than a word for little-endian.
	* config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
	(bswapdi2 splits): Correct low-part subreg for little-endian.
	Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
	low/high where such is correct only for be.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
	little-endian for -mcall-aixdesc.

2013-06-12  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
	within bounds at the beginning of the function.

2013-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57537
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
	vect_handle_widen_op_by_const, convert oprnd1 to half_type1.

2013-06-10  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-06-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
	cmp_code to construct REG_EQUAL note.

2013-06-10  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2013-05-20  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/56547
	* config/sh/sh.md (fmasf4): Remove empty constraints strings.
	(*fmasf4, *fmasf4_media): New insns.

2013-06-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/57568
	* config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
	that operands[2] doesn't overlap with operands[0].

2013-06-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* recog.c (offsettable_address_addr_space_p): Fix calculation of
	address mode.  Move pointer mode initialization to the same place.

2013-06-07  Sofiane Naci  <sofiane.naci@arm.com>

	Backport from mainline
	* config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.

2013-06-07  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-06-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
	GE, GT, GEU and GTU compares, modulo DImode compares with zero.

	Backport from mainline
	2013-05-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57379
	* config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
	* config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
	REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.

2013-06-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline.
	2013-05-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.

2013-06-03  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline.
	2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
	format specifier in 'X' case.

2013-05-31  Richard Henderson  <rth@redhat.com>

	PR target/56742
	* config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
	(ix86_reorg): Call it.

2012-05-31  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 4.8.2.
	* DEV-PHASE: Set to prerelease.

2013-05-31  Release Manager

	* GCC 4.8.1 released.

2013-05-24  Greta Yorsh  <Greta.Yorsh@arm.com>

	Backport from mainline
	2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>

	PR target/56732
	* config/arm/arm.c (arm_expand_epilogue): Check really_return before
	generating simple_return for naked functions.

2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>

	PR tree-ssa/57385
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
	that index is not negative.

2013-05-23  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/57347
	* tree.h (contains_bitfld_component_ref_p): Declare.
	* tree-sra.c (contains_bitfld_comp_ref_p): Move...
	* tree.c (contains_bitfld_component_ref_p): ...here.  Adjust its caller.
	* ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
	not access a bit-field.  Assert all final offsets are byte-aligned.

2013-05-23  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/57341
	* ira.c (validate_equiv_mem_from_store): Use anti_dependence
	instead of true_dependence.

2013-05-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/57344
	* expmed.c (store_split_bit_field): If op0 is a REG or
	SUBREG of a REG, don't lower unit.  Handle unit not being
	always BITS_PER_WORD.

2013-05-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57356
	* config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
	for non-sse2 targets.
	(*movti_internal): Simplify mode attribute calculation.

2013-05-22  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-05-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57318
	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
	estimate stmts with side-effects as likely eliminated.

	2013-05-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57330
	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
	preserve the call stmts fntype.

	2013-05-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57303
	* tree-ssa-sink.c (statement_sink_location): Properly handle
	self-assignments.

2013-05-21  Magnus Granberg  <baldrick@free.fr>

	PR plugins/56754
	* Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).

2013-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	Backport from mainline
	2013-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
	* config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.

2013-05-17  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/57281
	PR rtl-optimization/57300
	* config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
	(extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
	what the other splitter did if the registers are dead.

2013-05-17  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-05-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Determine
	cache parameters using detect_caches_amd also for CYRIX,
	NSC and TM2 signatures.

	2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
		    Dzianis Kahanovich  <mahatma@eu.by>

	PR target/45359
	PR target/46396
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	VIA/Centaur processors and determine their cache parameters
	using detect_caches_amd.

	2013-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_option_override_internal): Update
	processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags.  Add
	PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
	non-SSE 3dNow! targets.  Enable TARGET_PRFCHW for TARGET_3DNOW targets.
	* config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
	of TARGET_3DNOW.
	(*prefetch_3dnow): Enable for TARGET_PRFCHW only.

2013-05-17  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
	linking.

	PR tree-optimization/57051
	* fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
	case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.

2013-05-16  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (extract_omp_for_data): For collapsed loops,
	if at least one of the loops is known at compile time to
	iterate zero times, set count to 0.
	(expand_omp_regimplify_p): New function.
	(expand_omp_for_generic): For collapsed loops, if at least
	one of the loops isn't known to iterate at least once,
	add runtime check with setting count to 0.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
	For unsigned types if it isn't known at compile time that
	the loop will iterate at least once, add runtime check to bypass
	the whole loop if initial condition isn't true.

2013-05-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/57251
	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
	the case when both op0 and op1 have VOIDmode.

2013-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57230
	* tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
	check.

2013-05-12  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_init): Check size of
	NUM_MODES_FOR_MODE_SWITCHING.
	(epiphany_expand_prologue):
	Remove CONFIG_REGNUM initial value handling code.
	(epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
	(epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
	(emit_set_fp_mode, epiphany_mode_after): Likewise.
	(epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
	Don't return 1 for FP_MODE_NONE.
	* config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
	Add value for EPIPHANY_MSW_ENTITY_CONFIG.
	(EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
	* config/epiphany/epiphany.md (save_config): New pattern.

2013-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
	Add mthumb/march=armv7-a multilib.
	Add mthumb/march=armv7-r multilib.
	Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.

2013-05-10  Ralf Corsépius  <ralf.corsepius@rtems.org>

	PR target/57237
	* config/v850/t-rtems: Add more multilibs.

2013-05-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57214
	* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
	not propagate from SSA names that occur in abnormal PHI nodes.

2013-05-10  Alan Modra  <amodra@gmail.com>

	PR target/55033
	* varasm.c (default_elf_select_section): Move !DECL_P check..
	(get_named_section): ..to here before calling get_section_name.
	Adjust assertion.
	(default_section_type_flags): Add DECL_P check.
	* config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
	* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.

2013-05-09  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_expand_prologue):
	When using gen_stack_adjust_str with a register offset, add a
	REG_FRAME_RELATED_EXPR note.

2013-05-09  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/56988
	* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
	* ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the
	by_ref flag of ipa_agg_replacement_value structures.
	(known_aggs_to_agg_replacement_list): Likewise.
	* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
	(read_agg_replacement_chain): Likewise.
	(ipcp_transform_function): Also check that by_ref flags match.

2013-05-08  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54659

	Revert:

	2012-08-17  Diego Novillo  <dnovillo@google.com>

		PR bootstrap/54281
		* configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
		* config.in: Regenerate.
		* configure: Regenerate.
		* intl.h: Always include libintl.h if HAVE_LIBINTL_H is
		set.

2013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR tree-optimization/57200
	* tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
	Only call inform if the preceding warning_at returns true.

2013-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57149
	* tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
	(can_skip_redundant_opnd, compute_uninit_opnds_pos,
	collect_phi_def_edges, execute_late_warn_uninitialized): Use
	uninit_undefined_value_p instead of ssa_undefined_value_p.

	PR debug/57184
	* expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
	for modifier == EXPAND_INITIALIZER.

2013-05-07  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57185
	* tree-parloops.c (add_field_for_reduction): Handle anonymous
	SSA names properly.

	2013-04-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57000
	* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.

2013-05-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport from trunk
	2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/57150
	* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
	to save TFmode registers and DImode to save TImode registers for
	caller save operations.
	(HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
	mark being partially clobbered since they only use the first
	double word.

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
	and TDmode only use the upper 64-bits of each VSX register.

2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/57108
	* config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.

2013-05-06  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-05-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57106
	* config/i386/i386.c (add_parameter_dependencies): Add dependence
	between "first_arg" and "insn", not "last" and "insn".

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

	PR rtl-optimization/57130
	* combine.c (make_compound_operation) <case SUBREG>: Pass
	SET instead of COMPARE as in_code to the recursive call
	if needed.

	Backported from mainline
	2013-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57051
	* fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
	and VEC_RSHIFT_EXPR if shift count is a multiple of element
	bitsize.

	2013-04-12  Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_binary_loc): Call const_binop also for mixed
	vector-scalar operations.

2013-05-03  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2013-04-25  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/57066
	* builtins.c (fold_builtin_logb): Return +Inf for -Inf.

2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (process_alt_operands): Add checking alt
	number to choose the best alternative.

	2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57091
	* lra-constraints.c (best_small_class_operands_num): Remove.
	(process_alt_operands): Remove small_class_operands_num.  Take
	small classes operands into losers and only if the operand is not
	matched.  Modify debugging output.
	(curr_insn_transform): Remove best_small_class_operands_num.
	Print insn name.

2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57097
	* lra-constraints.c (process_alt_operands): Discourage a bit more
	using memory for pseudos.  Print cost dump for alternatives.
	Modify cost values for conflicts with early clobbers.
	(curr_insn_transform): Spill pseudos reassigned to NO_REGS.

2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimizations/57046
	* lra-constraints (split_reg): Set up lra_risky_transformations_p
	for multi-reg splits.

2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57018
	* lra-eliminations.c (mark_not_eliminable): Prevent elimination of
	a set sp if no stack realignment.

2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56999
	* lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
	related code.
	(lra_coalesce): Remove split_origin_bitmap and related code.
	* lra.c (lra): Coalesce after undoing inheritance. Recreate live
	ranges if necessary.

2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56847
	* lra-constraints.c (process_alt_operands): Discourage alternative
	with non-matche doffsettable memory constraint fro memory with
	known offset.

2013-05-02  Ian Bolton  <ian.bolton@arm.com>

	Backport from mainline
	2013-03-28  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
	record only when desired or required.

2013-04-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57104
	* tsan.c (instrument_expr): Don't instrument accesses to
	DECL_HARD_REGISTER VAR_DECLs.

2013-04-30  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2013-04-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/44578
	* config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y
	alternative.
	(*zero_extendsidi2): Ditto.

	Backport from mainline
	2013-04-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57098
	* config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.

2013-04-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/57103
	* tree-cfg.c (move_stmt_op): Fix condition under which to update
	TREE_BLOCK.
	(move_stmt_r): Remove redundant checking.

2013-04-29  Christian Bruel  <christian.bruel@st.com>

	PR target/57108
	* sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.

2013-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57083
	* tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
	non-singleton shift count range, zero extend low_bound for uns case.

2013-04-28  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	* stor-layout.c (finalize_size_functions): Allocate a structure and
	reset cfun before dumping the functions.

2013-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/56866
	* config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
	use xop_pmacsdqh if uns_p.
	* config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
	the immediate rotate count.

2013-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/57003
	* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
	call note_stores with kill_clobbered_value callback again after
	killing regs_invalidated_by_call.

2013-04-25  Ian Bolton  <ian.bolton@arm.com>

	Backported from mainline.
	2013-03-22  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.c (aarch64_print_operand): New
	format specifier for printing a constant in hex.
	* config/aarch64/aarch64.md (insv_imm<mode>): Use the X
	format specifier for printing second operand.

2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>

	Backported from mainline.
	2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
	(vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
	(vld1<q>_<sufp><8, 16, 32, 64>): Likewise.

2013-04-24  Greta Yorsh  <Greta.Yorsh@arm.com>

	Backported from mainline.
	PR target/56797
	* config/arm/arm.c (load_multiple_sequence): Require SP
	as base register for loads if SP is in the register list.

2013-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Steven Bosscher <steven@gcc.gnu.org>

	Backported from mainline.
	PR rtl-optimization/56605
	* loop-iv.c (implies_p): Handle equal RTXs and subregs.

2013-04-22  Marek Polacek  <polacek@redhat.com>

	Backported from mainline.
	2013-04-22  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/56990
	* tsan.c (instrument_expr): Don't instrument expression
	in case its size is zero.

2013-04-22  Yufeng Zhang  <yufeng.zhang@arm.com>

	Backported from mainline.
	2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
	* config/aarch64/aarch64.c (aarch64_print_extension): New function.
	(aarch64_start_file): Use the new function.

2013-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56984
	* tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
	and (x >> M) >= N don't register any assertion if N << M is the
	minimum value.

2013-04-17  David Edelsohn  <dje.gcc@gmail.com>

	PR target/56948
	* config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.

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

	PR tree-optimization/56962
	* gimple-ssa-strength-reduction.c (record_increment): Only set
	initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
	either rhs1 or rhs2 is equal to c->base_expr.

2013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* emit-rtl.c (reset_all_used_flags): New function.
	(verify_rtl_sharing): Call reset_all_used_flags before and after
	performing the checks.

2013-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/56890
	* config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
	(S_MODES): Set H_MODE bit.
	(SF_MODES): Set only S_MODE and SF_MODE bits.
	(DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
	(sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
	<MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
	<MODE_FLOAT>: Likewise.

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

	PR target/56903
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Add
	lra_in_progress for return.

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

	PR tree-optimization/56918
	PR tree-optimization/56920
	* fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
	instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
	argument to rshift method.

2013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as
	well.

2013-04-11  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/48184
	* params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum
	value to 1.

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

	Backported from mainline.
	2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
	floating-point vector comparisons against 0.

2013-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56899
	* fold-const.c (extract_muldiv_1): Apply distributive law
	only if TYPE_OVERFLOW_WRAPS (ctype).

2013-04-10  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
	or -mcpu=hypersparc.

2013-04-10  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2013-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56883
	* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk): Use simple_p = true in
	force_gimple_operand_gsi calls when assigning to addressable decls.

2013-04-09  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/48762
	* params.def (PARAM_MAX_CSE_INSNS): Increase the minimum
	value to 1.

2013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_insv): Only accept insertions
	within mode size.

2013-04-08  Marek Polacek  <polacek@redhat.com>

	PR rtl-optimization/48182
	* params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
	value to 1.

2013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/55487
	* config/pa/pa.c (legitimize_pic_address): Before incrementing label
	nuses, make sure we have a label.

2013-04-04  Ian Lance Taylor  <iant@google.com>

	Backport from mainline:
	* doc/standards.texi (Standards): The Go frontend supports the Go
	1 language standard.

2013-04-04  Marek Polacek  <polacek@redhat.com>

	Backport from mainline:
	2013-04-04  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/48186
	* predict.c (maybe_hot_frequency_p): Return false if
	HOT_BB_FREQUENCY_FRACTION is 0.
	(cgraph_maybe_hot_edge_p): Likewise.

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

	Backport from mainline:
	2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/56720
	* config/arm/iterators.md (v_cmp_result): New mode attribute.
	* config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.

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

	PR tree-optimization/56837
	* tree-loop-distribution.c (classify_partition): For non-zero
	values require that the value has the same precision as its
	mode to be useful as memset value.

2013-04-03  Roland McGrath  <mcgrathr@google.com>

	Backport from mainline:
	2013-03-26  Roland McGrath  <mcgrathr@google.com>

	* config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
	than fprintf with a non-constant, non-format string.

2013-04-03  Marek Polacek  <polacek@redhat.com>

	Backport from mainline:
	2013-04-03  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/55702
	* tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
	functions.

2013-04-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56817
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
	Split out ...
	(tree_unroll_loops_completely_1): ... new function to manually
	walk the loop tree, properly defering outer loops of unrolled
	loops to later iterations.

2013-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/56745
	* ifcvt.c (cond_exec_find_if_block): Don't try to optimize
	if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.

2013-04-02  Wei Mi  <wmi@google.com>

	* config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
	ashl<mode>3_mask, *<shift_insn><mode>3_mask and
	*<rotate_insn><mode>3_mask in i386.md.

2013-04-01  Wei Mi  <wmi@google.com>

	* config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
	Truncate operand 2 using %b asm operand modifier.
	(*<shift_insn><mode>3_mask): Ditto.
	(*<rotate_insn><mode>3_mask): Ditto.

2013-04-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movsf_internal): Change type of
	alternatives 3,4 to imov.

2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR lto/56777
	* doc/invoke.texi ([-fwhole-program]): Fix typo.

2013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
	Fix declaration name.

2013-03-28  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
	* doc/extend.texi (Named Address Spaces): Ditto.
	(Variable Attributes): Ditto.

2013-03-28  Eric Botcazou  <ebotcazou@adacore.com>

	* toplev.c (process_options): Do not disable -fomit-frame-pointer on a
	general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
	is not enabled.

2013-03-27  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
	double-decrement of next_scratch_regno.

2013-03-27  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
	input operands.
	(insn_v1mulus): Ditto.
	(insn_v2muls): Ditto.

2013-03-27  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete
	extra tab.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.

2013-03-27  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
	(*sibcall_value): Ditto.

2013-03-27  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
	(insn_mnz_v8qi): ... this ...
	(insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
	vector equivalent.
	(insn_v<n>mnz): Replaced by ...
	(insn_v1mnz): ... this ...
	(insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
	equivalent.
	(insn_mz_<mode>): Replaced by ...
	(insn_mz_v8qi): ... this ...
	(insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
	vector equivalent.
	(insn_v<n>mz): Replaced by ...
	(insn_v1mz): ... this ...
	(insn_v2mz): ... and this.  Replace (const_int 0) with the vector
	equivalent.

2013-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (SPARC options): Remove -mlittle-endian.

2013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rtems.opt: Add -pthread option.

2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>

	* config/aarch64/aarch64.c (aarch64_classify_address): Support
	PC-relative load in SI modes and above only.

2013-03-26  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-26  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
	* config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.

2013-03-26  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
	TILEGX_INSN_SHUFFLEBYTES1.
	* config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
	shufflebytes1.
	(tilegx_builtins): Ditto.
	* config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.

2013-03-26  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
	tests for constraint J, K, N, P.

2013-03-26  Walter Lee  <walt@tilera.com>

	Backport from mainline:
	2013-03-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
	Use indirect/pcrel encoding.
	* config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
	Ditto.

2013-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/56694
	* tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
	must-not-throw stmt location.

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

	* BASE-VER: Set to 4.8.1.
	* DEV-PHASE: Set to prerelease.

2013-03-22  Release Manager

	* GCC 4.8.0 released.

2013-03-21  Walter Lee  <walt@tilera.com>

	* config/tilegx/sync.md (atomic_test_and_set): New pattern.

2013-03-21  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.

2013-03-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56661
	* tree-ssa-sccvn.c (visit_use): Only value-number calls if
	the result does not have to be distinct.

2013-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56635
	* tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up
	if lhs of then_assign and else_assign don't have compatible types.

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

	PR target/56640
	* config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
	class names.  Remove trailing comma after "ALL_REGS".

2013-03-16  Jakub Jelinek  <jakub@redhat.com>

	* DEV-PHASE: Set to prerelease.

2013-03-14  Andi Kleen  <ak@linux.intel.com>

	PR target/56619
	* doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
	__ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
	Document _x* TSX intrinsics.

2013-03-14  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
	    David Holsgrove <david.holsgrove@xilinx.com>

	* configure.ac: Add MicroBlaze TLS support detection.
	* configure: Regenerate.
	* config/microblaze/microblaze-protos.h
	(microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
	symbol_mentioned_p, label_mentioned_p): Add prototypes.
	* config/microblaze/microblaze.c (microblaze_address_type): Add
	ADDRESS_TLS and tls_reloc address types.
	(microblaze_address_info): Add tls_reloc.
	(TARGET_HAVE_TLS): Define.
	(get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
	microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
	symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
	load_tls_operand, microblaze_call_tls_get_addr,
	microblaze_legitimize_tls_address): New functions.
	(microblaze_classify_unspec): Handle UNSPEC_TLS.
	(get_base_reg): Use microblaze_tls_symbol_p.
	(microblaze_classify_address): Handle TLS.
	(microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
	label_mentioned_p and microblaze_tls_referenced_p.
	(microblaze_legitimize_address): Handle TLS.
	(microblaze_address_insns): Handle ADDRESS_TLS.
	(pic_address_needs_scratch): Handle TLS.
	(print_operand_address): Handle TLS.
	(microblaze_expand_prologue): Check TLS_NEEDS_GOT.
	(microblaze_expand_move): Handle TLS.
	(microblaze_legitimate_constant_p): Check
	microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
	(TARGET_CANNOT_FORCE_CONST_MEM): Define.
	* config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
	(PIC_OFFSET_TABLE_REGNUM): Set.
	* config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
	* config/microblaze/microblaze.md (UNSPEC_TLS): Define.
	(addsi3, movsi_internal2, movdf_internal): Update constraints
	* config/microblaze/predicates.md (arith_plus_operand): Define
	(move_operand): Redefine as move_src_operand, check
	microblaze_tls_referenced_p.

2013-03-14  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
	(*and_<SHIFT:optab><mode>3nr_compare0): Likewise.

2013-03-14  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
	CC mode for AND.

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

	PR tree-optimization/53265
	* common.opt (Waggressive-loop-optimizations): New option.
	* tree-ssa-loop-niter.c: Include tree-pass.h.
	(do_warn_aggressive_loop_optimizations): New function.
	(record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
	if number_of_latch_executions returned constant.
	(estimate_numbers_of_iterations_loop): Call number_of_latch_executions
	early.  If number_of_latch_executions returned constant, set
	nb_iterations_upper_bound back to it.
	* cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
	field.
	* Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
	* doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.

	* config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
	(MULTILIB_OSDIRNAMES): Set.
	* genmultilib: If defaultosdirname doesn't start with :: , set
	defaultosdirname2 instead, clear it and emit two . multilib_raw
	entries instead of just one.

2013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
	(SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
	* config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
	(SUBTARGET_OVERRIDE_OPTIONS): New.

2013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/49880
	* config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
	(musermode): Convert to Var(TARGET_USERMODE).
	* config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
	MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
	* config/sh/sh.c (sh_option_override): Use
	TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
	* config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
	condition.
	(udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
	TARGET_SH4.
	(udivsi3_i4_single, divsi3_i4_single): Use
	TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.

2013-03-13  Dave Korn  <dave.korn.cygwin@....>

	* config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
	default setting.

2013-03-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56608
	* tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
	calls when vectorizing basic-blocks.

2013-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR plugins/45078
	* config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
	tm_file.

2013-03-12  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.

2013-03-11  Jan Hubicka  <jh@suse.cz>

	PR lto/56557
	* lto-streamer-out.c (output_symbol_p): Skip references from
	constructors of external variables.

2013-03-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/56571
	* valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
	from pseudos.
	* emit-rtl.c (verify_rtx_sharing): Likewise.
	(copy_insn_1): Likewise.
	* rtl.c (copy_rtx): Likewise.

2013-03-11  Georg-Johann Lay  <avr@gjlay.de>

	PR target/56591
	* config/avr/avr.c (avr_print_operand): Add space after '%c' in
	output_operand_lossage message.

2013-03-11  Richard Earnshaw  <rearnsha@arm.com>

	PR target/56470
	* arm.c (shift_op): Validate RTL pattern on the fly.
	(arm_print_operand, case 'S'): Don't use shift_operator to validate
	the RTL.

2013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/56347
	* config/pa/pa.md (call_value): Check for calls to powf and direct to
	new call patterns that clobber %fr12.
	(call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
	split and postreload patterns.
	* config/pa/pa.c (pa_conditional_register_usage): Revert marking
	registers %fr12 and %fr12R as call used.

2013-03-09  Steven Bosscher  <steven@gcc.gnu.org>

	* dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
	(canon_address, record_store, replace_read, check_mem_read_rtx,
	scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
	dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
	rest_of_handle_dse): Likewise.

2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/56524
	* tree.h (tree_optimization_option): Rename target_optabs to optabs.
	Add base_optabs.
	(TREE_OPTIMIZATION_OPTABS): Update after previous field change.
	(TREE_OPTIMIZATION_BASE_OPTABS): New macro.
	(save_optabs_if_changed): Replace with...
	(init_tree_optimization_optabs): ...this.
	* optabs.c (save_optabs_if_changed): Rename to...
	(init_tree_optimization_optabs): ...this.  Take the optimization node
	as argument.  Do nothing if the base optabs are already correct.
	Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
	to recompute optabs.
	* function.h (function): Remove optabs field.
	* function.c (invoke_set_current_function_hook): Call
	init_tree_optimization_optabs.  Use the result to initialize
	this_fn_optabs.

2013-02-27  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
	if GTMA_HAS_NO_INSTRUMENTATION.
	(generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
	(ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
	* gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
	* gimple-pretty-print.c (dump_gimple_transaction): Handle
	GTMA_HAS_NO_INSTRUMENTATION.

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

	* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
	libasan_preinit.o.

2013-03-08  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56478
	* predict.c (is_comparison_with_loop_invariant_p): Change the
	type of loop_step to tree.
	(predict_loops): Adjust.
	(predict_iv_comparison): Perform the computations on double_ints.

2013-03-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56570
	* tree-cfg.c (verify_expr_location_1): Verify locations for
	DECL_DEBUG_EXPR.
	* tree-sra.c (create_access_replacement): Strip locations
	from DECL_DEBUG_EXPRs.

2013-03-08  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (expand_call_inline): Do not associate
	a BLOCK with the location in BLOCK_SOURCE_LOCATION.
	* tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.

2013-03-08  Richard Biener  <rguenther@suse.de>

	* tree-ssa-ter.c (is_replaceable_p): Do not TER across location
	or block changes with -Og.  Fix for location / block encoding
	changes and PHI arguments with locations.

2013-03-07  Steven Bosscher  <steven@gcc.gnu.org>

	* bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
	for all counters.
	(struct output_info): Likewise.
	(register_overhead): Remove bad gcc_assert.
	(bitmap_find_bit): If there is only a single bitmap element, do not
	count a miss as a search.
	(print_statistics): Update for counter type changes.
	(dump_bitmap_statistics): Likewise.  Print headers such that they
	are properly lined up with the printed counters.

2013-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56559
	* tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
	check that it has only a single use.

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

	* doc/invoke.texi (fwhole-program): Discourage use in combination
	with -flto.

2013-03-06  Jakub Jelinek  <jakub@redhat.com>

	* config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.

	PR tree-optimization/56539
	* tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
	instead of GSI_CONTINUE_LINKING as last argument to
	force_gimple_operand_gsi.  Adjust function comment.

	* config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
	aarch64-cores.def.

	PR middle-end/56548
	* expr.c (expand_cond_expr_using_cmove): When expanding cmove in
	promoted mode, convert the result back to the original mode.

2013-03-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/56294
	* tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
	(insert_updated_phi_nodes_compare_uids): New function.
	(update_ssa): Sort symbols_to_rename after UID before
	traversing it to insert PHI nodes.

2013-03-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/50494
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
	Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.

	Revert
	2013-02-13  Richard Biener  <rguenther@suse.de>

	PR lto/50494
	* varasm.c (output_constant_def_1): Get the decl representing
	the constant as argument.
	(output_constant_def): Wrap output_constant_def_1.
	(make_decl_rtl): Use output_constant_def_1 with the decl
	representing the constant.
	(build_constant_desc): Optionally re-use a decl already
	representing the constant.
	(tree_output_constant_def): Adjust.

2013-03-06  Joey Ye  <joey.ye@arm.com>

	PR lto/50293
	* gcc.c (convert_white_space): New function.
	(main): Handles white space in function name.

2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/56529
	* config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
	instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
	to SH_DIV_CALL_TABLE for TARGET_SH2.
	* config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
	list.
	* doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
	call-table options.

2013-03-05  Sterling Augustine  <saugustine@google.com>
	    Cary Coutant  <ccoutant@google.com>

	PR debug/55364
	* dwarf2out.c (resolve_addr): Don't call
	remove_loc_list_addr_table_entries a second time for the same
	expression.

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

	PR debug/56510
	* cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
	(avoid_complex_debug_insns): New function.
	(expand_debug_locations): Call it.

	PR rtl-optimization/56484
	* ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
	lifetimes of hard registers on small register class machines.

2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze-protos.h: Rename
	microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
	* config/microblaze/microblaze.c (microblaze_attribute_table): Add
	fast_interrupt.
	(microblaze_fast_interrupt_function_p): New function.
	(microblaze_is_interrupt_handler): Rename to
	microblaze_is_interrupt_variant and add fast_interrupt check.
	(microblaze_must_save_register): Use microblaze_is_interrupt_variant.
	(save_restore_insns): Likewise.
	(compute_frame_size): Likewise.
	(microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
	(microblaze_globalize_label): Likewise.
	* config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
	* config/microblaze/microblaze.md: Use wrapper
	microblaze_is_interrupt_variant.

2013-03-05  Kai Tietz  <ktietz@redhat.com>

	* sdbout.c (sdbout_one_type): Switch to current function's section
	supporting cold/hot.

2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>

	* doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
	-mxl-reorder.

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

	PR middle-end/56461
	* ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
	if VALGRIND_GET_VBITS is defined, temporarily make object
	memory all defined, and restore previous valgrind addressability
	and definability afterwards.  Free this_object at the end.

	PR middle-end/56461
	* lra.c (lra): Call lra_clear_live_ranges if live_p,
	right before calling lra_create_live_ranges, also call it
	when clearing live_p.  Only call lra_clear_live_ranges
	at the end if live_p.

	PR middle-end/56461
	* sched-deps.c (delete_dep_node): Free DEP_REPLACE.

2013-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56521
	* tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
	value-id.

2013-03-05  Steven Bosscher  <steven@gcc.gnu.org>

	PR c++/55135
	* except.h (remove_unreachable_eh_regions): New prototype.
	* except.c (remove_eh_handler_splicer): New function, split out
	of remove_eh_handler.
	(remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
	warning about running it on many EH regions one at a time.
	(remove_unreachable_eh_regions_worker): New function, walk the
	EH tree in depth-first order and remove non-marked regions.
	(remove_unreachable_eh_regions): New function.
	* tree-eh.c (mark_reachable_handlers): New function, split out
	from remove_unreachable_handlers.
	(remove_unreachable_handlers): Use mark_reachable_handlers and
	remove_unreachable_eh_regions.
	(remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
	and remove_unreachable_eh_regions.

2013-03-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/56525
	* loop-init.c (fix_loop_structure): Remove loops in two stages,
	not freeing them until the end.

2013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.

2013-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56270
	* tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
	of loads after scheduling an SLP instance.

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

	* Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
	tic6x.exp.
	(check_gcc_parallelize): Run guality.exp as a separate job from
	vect.exp with unsorted.exp and $(dg_target_exps) separately from
	struct-layout-1.exp with stackalign.exp.

	* alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.

	PR middle-end/56461
	* tree-vect-slp.c (vect_supported_load_permutation_p): Free
	load_index sbitmap even if some bit in it isn't set.

	PR middle-end/56461
	* tree-ssa-loop-niter.c (bb_queue): Remove typedef.
	(discover_iteration_bound_by_body_walk): Change queues to
	vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
	spelling in comment.  Call safe_push on queues[bound_index] directly.
	Release queues[queue_index] in every iteration unconditionally.
	Release bounds vector.

	PR middle-end/56461
	* tree-vect-stmts.c (free_stmt_vec_info_vec): Call
	free_stmt_vec_info on any left-over stmt_vec_info in the vector.
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Release
	inner_phis vector.

2013-03-05  Richard Biener  <rguenther@suse.de>

	PR lto/56515
	* tree-inline.c (remap_blocks_to_null): New function.
	(expand_call_inline): When expanding a call stmt without
	an associated block inline remap all callee blocks to NULL.

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

	PR rtl-optimization/56494
	* simplify-rtx.c (simplify_truncation): If C is narrower than A,
	optimize (truncate:A (subreg:B (truncate:C X) 0)) into
	(subreg:A (truncate:C X) 0) instead of (truncate:A X).

	PR middle-end/56461
	* sel-sched-ir.c (free_sched_pools): Release
	succs_info_pool.stack[succs_info_pool.max_top] vectors too
	if succs_info_pool.max_top isn't -1.

	PR bootstrap/56509
	* opts.c (opts_obstack, opts_concat): Moved to...
	* opts-common.c (opts_obstack, opts_concat): ... here.

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

	PR middle-end/56461
	* diagnostic.c (diagnostic_append_note): Save and restore old prefix.

2013-03-04  Martin Jambor  <mjambor@suse.cz>

	* tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
	all appropriate places.

2013-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/56424
	* ipa-split.c (split_function): Do not set the RSO flag if result is
	not by reference and its type is a register type.

2013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.c (microblaze_valid_pic_const): New.
	(microblaze_legitimate_pic_operand): Likewise.
	* config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call
	new function microblaze_legitimate_pic_operand.
	* config/microblaze/microblaze-protos.h
	(microblaze_legitimate_pic_operand): Declare.

2013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/predicates.md (call_insn_simple_operand):
	New predicate for supported rtx code types.
	* config/microblaze/microblaze.md (call_internal1): Use
	call_insn_simple_operand predicate.

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

	PR middle-end/56461
	* tree-loop-distribution.c (ldist_gen): Call partition_free after each
	partitions.ordered_remove.

	PR middle-end/56461
	* tree-vect-stmts.c (vectorizable_conversion): Don't call
	vec_oprnds0.create (1) for modifier == NONE.

	PR middle-end/56461
	* tree-vect-stmts.c (vectorizable_shift): Don't call create methods
	on vec_oprnds0 or vec_oprnds1 before loop, only call it on
	vec_oprnds1 right before pushing anything to it for
	scalar_shift_arg.

	PR middle-end/56461
	* tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
	set nbbs to 0 instead of having separate code path.
	(vect_analyze_loop_form): Call destroy_loop_vec_info with true
	instead of false as last argument if returning NULL.

2013-03-03  Sandra Loosemore  <sandra@codesourcery.com>

	* target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
	the attribute is now called "target" instead of "option".
	(TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
	* doc/tm.texi.in (Target Attributes):  Likewise document the correct
	attribute/pragma name for TARGET_OPTION_VALID_P and
	TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
	* doc/tm.texi: Regenerated.

2013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.c:
	Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
	* config/microblaze/microblaze.h: Add -mxl-reorder to
	DRIVER_SELF_SPECS.
	* config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
	instructions emitted if TARGET_REORDER.
	* config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
	or 0 for -m/-mno case, but initialises as 2 to detect default use case
	separately.

2013-03-01  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
	walk length.

2013-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56461
	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
	vector even when returning true.  Fix up function comment formatting.

	PR middle-end/56461
	* ira-build.c (ira_loop_nodes_count): New variable.
	(create_loop_tree_nodes): Initialize it.
	(finish_loop_tree_nodes): Use it instead of looking at current_loops.

	PR middle-end/56461
	* tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
	method on dr_chain and result_chain.
	* tree-vect-stmts.c (vectorizable_store): Only call
	result_chain.create if j == 0.

	PR middle-end/56461
	* tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
	vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
	before overwriting it.

2013-03-01  Tobias Burnus  <burnus@net-b.de>

	* doc/extended.texi (C Extensions): Change order in @menu
	to match @node.
	(Other MIPS Built-in Functions): Move last MIPS entry before
	"picoChip Built-in Functions".
	(SH Built-in Functions): Move after RX Built-in Functions.
	* doc/gcc.texi (Introduction): Change order in @menu to match @node.
	* doc/md.texi (Constraints): Ditto.
	* gty.texi (Type Information): Ditto.
	(User-provided marking routines for template types): Make subsection.
	* doc/invoke.texi (AArch64 Options): Move before
	"Adapteva Epiphany Options".

2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/56454
	* asan.c (gate_asan): Lookup no_sanitize_address instead of
	no_address_safety_analysis attribute.
	* doc/extend.texi (no_address_safety_attribute): Rename to
	no_sanitize_address attribute, mention no_address_safety_analysis
	attribute as deprecated alias.

2013-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56461
	* tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
	type to vec<vec<tree> > *.
	* tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
	to be vec<tree> instead of vec<tree> *, set vec_defs
	to vNULL and call vec_defs.create (number_of_vects), adjust other
	uses of vec_defs.
	* tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
	vectorizable_condition): Adjust vect_get_slp_defs callers.

2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_float_const_representable): Remove unused variable.

2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_mangle_type): Make static.

2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_init_simd_builtins): Make static.

2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_simd_make_constant): Make static.

2013-02-28  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
	with no initialization to the RHS of debug statements.

2013-02-28  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/56294
	* tree-sra.c (analyze_access_subtree): Create replacement declarations.
	Adjust dumping.
	(get_access_replacement): Do not call create_access_replacement.
	Assert a replacement exists.
	(get_repl_default_def_ssa_name): Create the replacement declaration
	itself.

2013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
	final_end_function.

2013-02-28  Marek Polacek  <polacek@redhat.com>

	PR rtl-optimization/56466
	* loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
	if we're changing a loop.
	(peel_loops_completely): Likewise.

2013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55813
	* doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.

2013-02-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/56445
	* config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
	macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
	INTX_FTYPE_FX, FX_FTYPE_INTX.
	* config/avr/builtins.def: Adjust respective DEF_BUILTIN.

2013-02-28  Georg-Johann Lay  <avr@gjlay.de>

	* avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
	(ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
	(atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
	(atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
	(atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
	(atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
	(atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
	(atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
	(atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
	(atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
	(atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
	(atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
	(atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
	(atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
	(atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
	(avrxmega6): Increase max flash segments from 5 to 6.
	* config/avr/t-multilib: Regenerate.
	* config/avr/avr-tables.opt: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2013-02-28  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.h (device_to_arch): Rename to device_to_ld.
	(avr_device_to_arch): Rename to avr_device_to_ld.
	(avr_device_to_as): New prototype.
	(EXTRA_SPEC_FUNCTIONS): Add device_to_as.
	(ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
	* config/avr/driver-avr.c (avr_device_to_as): New.
	(avr_device_to_arch): Rename to avr_device_to_ld.

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

	PR middle-end/56461
	* tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
	method on dr_chain and result_chain.

	PR middle-end/56461
	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
	pointer_set_destroy on not_executed_last_iteration.

	PR middle-end/56461
	* tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.

	PR middle-end/56461
	* ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
	FOR_EACH_DEFINED_FUNCTION when freeing state.

	PR middle-end/56461
	* df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
	pool_free.
	(df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
	overwriting it.

	PR middle-end/56461
	* ipa-cp.c (decide_whether_version_node): Call vec_free on
	known_aggs[i].items and release known_aggs vector.

	PR middle-end/56461
	* ipa-reference.c (propagate): Free node_info even for alias nodes.

2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/microblaze.c (microblaze_emit_compare):
	Use xor for EQ/NE comparisions.
	* config/microblaze/microblaze.md (cstoresf4): Add constraints
	(cbranchsf4): Adjust operator to comparison_operator.

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

	PR middle-end/56461
	* tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
	vector.
	* tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
	vec_safe_push, always update *slot.
	(redirect_edge_var_map_clear): Use vec_free.
	(redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
	(free_var_map_entry): Use vec_free.
	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
	FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.

2013-02-27  Andrey Belevantsev  <abel@ispras.ru>

	PR middle-end/45472
	* sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
	when the may_trap_p bit of the exprs being merged differs.
	Reorder tests for speculativeness in the logical and operator.

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

	* incpath.c (add_standard_paths): Use reconcat instead of concat
	where appropriate and avoid leaking memory.

	* opts.h: Include obstack.h.
	(opts_concat): New prototype.
	(opts_obstack): New declaration.
	* opts.c (opts_concat): New function.
	(opts_obstack): New variable.
	(init_options_struct): Call gcc_init_obstack on opts_obstack.
	(finish_options): Use opts_concat instead of concat
	and XOBNEWVEC instead of XNEWVEC.
	* opts-common.c (generate_canonical_option, decode_cmdline_option,
	generate_option): Likewise.
	* Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
	* lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.

	PR target/56455
	* stmt.c (expand_switch_as_decision_tree_p): If flag_pic
	and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.

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

	PR middle-end/56461
	* lra-spills.c (lra_spill): Free spill_hard_reg at the end.

2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
	(arm_block_move_unaligned_straight): Likewise.
	(arm_adjust_block_mem): Likewise.

2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR target/48901
	* config/lm32/lm32.c (gen_int_relational): Remove unused variables
	temp, cond and label.
	* config/lm32/lm32.md (ashlsi3): Remove unused variable one.

	PR target/52500
	* config/c6x/c6x.c (dbx_register_map): Change to unsigned.
	* config/c6x/c6x.h (dbx_register_map): Update declaration.

	PR target/52501
	* config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
	of prologue/epilogue functions.

	PR target/52550
	* config/tilegx/tilegx.c (tilegx_expand_prologue):
	Remove unused variable cfa_offset.
	* config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.

	PR target/54639
	* config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
	type promotion to unsigned.

	PR target/54640
	* config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
	for HOST_WIDE_INT of 32 bit / same size as int.
	(arm_block_move_unaligned_straight): Likewise.
	(arm_adjust_block_mem): Likewise.

	PR target/54662
	* config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
	ALL_CFLAGS.

2013-02-26  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/56426
	* tree-ssa-loop.c (tree_ssa_loop_init): Always call
	scev_initialize.

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

	PR target/56444
	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
	unused variable loops.

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

	PR tree-optimization/56448
	* fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
	TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
	Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
	later operands of the references, or even first operand for
	INDIRECT_REF, TARGET_MEM_REF or MEM_REF.

	PR tree-optimization/56443
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
	overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
	to type_for_mode langhook.

2013-02-25  Matt Turner  <mattst88@gmail.com>

	* doc/invoke.texi: Document r4700.

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

	PR tree-optimization/56175
	* tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
	split out from ...
	(simplify_bitwise_binary): ... here.  Also guard the conversion
	of (type) X op CST to (type) (X op ((type-x) CST)) with it.

2013-02-25  Catherine Moore  <clm@codesourcery.com>

	Revert:
	2013-02-24  Catherine Moore  <clm@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Iain Sandoe  <iain@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Chao-ying Fu  <fu@mips.com>

	* doc/extend.texi (micromips, nomicromips, nocompression):
	Document new function attributes.
	* doc/invoke.texi (minterlink-compressed, mmicromips,
	m14k, m14ke, m14kec): Document new options.
	(minterlink-mips16): Update documentation.
	* doc/md.texi (ZC, ZD): Document new constraints.
	* configure.ac (gcc_cv_as_micromips): Check if linker
	supports the .set micromips directive.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/micromips.md: New file.
	* constraints.md (ZC, AD): New constraints.
	* config/mips/predicates.md (movep_src_register): New predicate.
	(movep_src_operand): New predicate.
	(non_volatile_mem_operand): New predicate.
	* config/mips/mips.md (multimem): New type.
	(length): Differentiate between 17-bit and 18-bit branch offsets.
	(MOVEP1, MOVEP2): New mode iterator.
	(mov_<load>l): Use ZC constraint.
	(mov_<load>r): Likewise.
	(mov_<store>l): Likewise.
	(mov_<store>r): Likewise.
	(*branch_equality<mode>_inverted): Add microMIPS support.
	(*branch_equality<mode>): Likewise.
	(*jump_absolute): Likewise.
	(indirect_jump_<mode>): Likewise.
	(tablejump_<mode>): Likewise.
	(<optab>_internal): Likewise.
	(sibcall_internal): Likewise.
	(sibcall_value_internal): Likewise.
	(prefetch): Use constraint ZD.
	* config/mips/mips.opt (minterlink-compressed): New option.
	(minterlink-mips16): Now an alias for minterlink-compressed.
	(mmicromips): New option.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
	(compare_and_swap_12): Likewise.
	(sync_add<mode>): Likewise.
	(sync_<optab>_12): Likewise.
	(sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12): Likewise.
	(sync_nand_12): Likewise.
	(sync_old_nand_12): Likewise.
	(sync_new_nand_12): Likewise.
	(sync_sub<mode>): Likewise.
	(sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>): Likewise.
	(sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>): Likewise.
	(sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>): Likewise.
	(sync_new_<optab><mode>): Likewise.
	(sync_nand<mode>): Likewise.
	(sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12): Likewise.
	(atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>_llsc): Likewise.
	(atomic_fetch_add<mode>_llsc): Likewise.
	* config/mips/mips-cpus.def (m14kc, m14k): New processors.
	* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
	(umips_save_restore_pattern_p): Likewise.
	(umips_load_store_pair_p): Likewise.
	(umips_output_load_store_pair): Likewise.
	(umips_movep_target_p): Likewise.
	(umips_12bit_offset_address_p): Likewise.
	* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this. Update all uses.
	(mips_attribute_table): Add micromips, nomicromips and nocompression.
	(mips_mips16_decl_p): Delete.
	(mips_nomips16_decl_p): Delete.
	(mips_get_compress_on_flags): New function.
	(mips_get_compress_off_flags): New function.
	(mips_get_compress_mode): New function.
	(mips_get_compress_on_name): New function.
	(mips_get_compress_off_name): New function.
	(mips_insert_attributes): Support multiple compression types.
	(mips_merge_decl_attributes): Likewise.
	(umips_12bit_offset_address_p): New function.
	(mips_start_function_definition): Emit .set micromips directive.
	(mips_call_may_need_jalx_p): New function.
	(mips_function_ok_for_sibcall): Add microMIPS support.
	(mips_print_operand_punctuation): Support short delay slots and
	compact jumps.
	(umips_swm_mask, umips_swm_encoding): New.
	(umips_build_save_restore): New function.
	(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
	(was_mips16_p): Remove.
	(old_compression_mode): New.
	(mips_set_compression_mode): New function.
	(mips_set_current_function): Add microMIPS support.
	(mips_option_override): Likewise.
	(umips_save_restore_pattern_p): New function.
	(umips_output_save_restore): New function.
	(umips_load_store_pair_p_1): New function.
	(umips_load_store_pair_p): New function.
	(umips_output_load_store_pair_1): New function.
	(umips_output_load_store_pair): New function.
	(umips_movep_target_p) New function.
	(mips_prepare_pch_save): Add microMIPS support.
	* config/mips/mips.h (TARGET_COMPRESSION): New.
	(TARGET_CPU_CPP_BUILTINS): Update macro
	to use new compression flags and to support microMIPS.
	(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
	(MIPS_ARCH_FLOAT_SPEC): Likewise.
	(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
	(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
	(ASM_SPEC): Support mmicromips and mno-micromips.
	(M16STORE_REG_P): New macro.
	(MIPS_CALL): Support TARGET_MICROMIPS.
	(MICROMIPS_J): New macro.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this.
	(UMIPS_12BIT_OFFSET_P): New macro.
	* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
	(MULTILIB_DIRNAMES): Likewise.

2013-02-25  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/56131
	* insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
	* cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
	NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.

2013-02-25  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize=): Move from optimization
	to debugging options.

2013-02-25  Andrey Belevantsev  <abel@ispras.ru>

	* sched-deps.c (sched_analyze_insn): Fix typo in comment.

2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>

	PR middle-end/56077
	* sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
	flush pending lists also on non-jumps.  Adjust comment.

2013-02-24  Catherine Moore  <clm@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Iain Sandoe  <iain@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Chao-ying Fu  <fu@mips.com>

	* doc/extend.texi (micromips, nomicromips, nocompression):
	Document new function attributes.
	* doc/invoke.texi (minterlink-compressed, mmicromips,
	m14k, m14ke, m14kec): Document new options.
	(minterlink-mips16): Update documentation.
	* doc/md.texi (ZC, ZD): Document new constraints.
	* configure.ac (gcc_cv_as_micromips): Check if linker
	supports the .set micromips directive.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/micromips.md: New file.
	* constraints.md (ZC, AD): New constraints.
	* config/mips/predicates.md (movep_src_register): New predicate.
	(movep_src_operand): New predicate.
	(non_volatile_mem_operand): New predicate.
	* config/mips/mips.md (multimem): New type.
	(length): Differentiate between 17-bit and 18-bit branch offsets.
	(MOVEP1, MOVEP2): New mode iterator.
	(mov_<load>l): Use ZC constraint.
	(mov_<load>r): Likewise.
	(mov_<store>l): Likewise.
	(mov_<store>r): Likewise.
	(*branch_equality<mode>_inverted): Add microMIPS support.
	(*branch_equality<mode>): Likewise.
	(*jump_absolute): Likewise.
	(indirect_jump_<mode>): Likewise.
	(tablejump_<mode>): Likewise.
	(<optab>_internal): Likewise.
	(sibcall_internal): Likewise.
	(sibcall_value_internal): Likewise.
	(prefetch): Use constraint ZD.
	* config/mips/mips.opt (minterlink-compressed): New option.
	(minterlink-mips16): Now an alias for minterlink-compressed.
	(mmicromips): New option.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
	(compare_and_swap_12): Likewise.
	(sync_add<mode>): Likewise.
	(sync_<optab>_12): Likewise.
	(sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12): Likewise.
	(sync_nand_12): Likewise.
	(sync_old_nand_12): Likewise.
	(sync_new_nand_12): Likewise.
	(sync_sub<mode>): Likewise.
	(sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>): Likewise.
	(sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>): Likewise.
	(sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>): Likewise.
	(sync_new_<optab><mode>): Likewise.
	(sync_nand<mode>): Likewise.
	(sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12): Likewise.
	(atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>_llsc): Likewise.
	(atomic_fetch_add<mode>_llsc): Likewise.
	* config/mips/mips-cpus.def (m14kc, m14k): New processors.
	* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
	(umips_save_restore_pattern_p): Likewise.
	(umips_load_store_pair_p): Likewise.
	(umips_output_load_store_pair): Likewise.
	(umips_movep_target_p): Likewise.
	(umips_12bit_offset_address_p): Likewise.
	* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this. Update all uses.
	(mips_attribute_table): Add micromips, nomicromips and nocompression.
	(mips_mips16_decl_p): Delete.
	(mips_nomips16_decl_p): Delete.
	(mips_get_compress_on_flags): New function.
	(mips_get_compress_off_flags): New function.
	(mips_get_compress_mode): New function.
	(mips_get_compress_on_name): New function.
	(mips_get_compress_off_name): New function.
	(mips_insert_attributes): Support multiple compression types.
	(mips_merge_decl_attributes): Likewise.
	(umips_12bit_offset_address_p): New function.
	(mips_start_function_definition): Emit .set micromips directive.
	(mips_call_may_need_jalx_p): New function.
	(mips_function_ok_for_sibcall): Add microMIPS support.
	(mips_print_operand_punctuation): Support short delay slots and
	compact jumps.
	(umips_swm_mask, umips_swm_encoding): New.
	(umips_build_save_restore): New function.
	(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
	(was_mips16_p): Remove.
	(old_compression_mode): New.
	(mips_set_compression_mode): New function.
	(mips_set_current_function): Add microMIPS support.
	(mips_option_override): Likewise.
	(umips_save_restore_pattern_p): New function.
	(umips_output_save_restore): New function.
	(umips_load_store_pair_p_1): New function.
	(umips_load_store_pair_p): New function.
	(umips_output_load_store_pair_1): New function.
	(umips_output_load_store_pair): New function.
	(umips_movep_target_p) New function.
	(mips_prepare_pch_save): Add microMIPS support.
	* config/mips/mips.h (TARGET_COMPRESSION): New.
	(TARGET_CPU_CPP_BUILTINS): Update macro
	to use new compression flags and to support microMIPS.
	(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
	(MIPS_ARCH_FLOAT_SPEC): Likewise.
	(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
	(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
	(ASM_SPEC): Support mmicromips and mno-micromips.
	(M16STORE_REG_P): New macro.
	(MIPS_CALL): Support TARGET_MICROMIPS.
	(MICROMIPS_J): New macro.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this.
	(UMIPS_12BIT_OFFSET_P): New macro.
	* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
	(MULTILIB_DIRNAMES): Likewise.

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

	PR target/52555
	* target-globals.c (save_target_globals): For init_reg_sets and
	target_reinit remporarily set this_fn_optabs to this_target_optabs.

2013-02-22  James Grennahlgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add copyright header.
	* config/aarch64/t-aarch64
	(aarch64-builtins.o): Depend on aarch64-simd-builtins.def.

2013-02-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/56148
	* lra-constraints.c (process_alt_operands): Reload operand
	conflicting with earlier clobber only if no more other conflicting
	operands.

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

	PR sanitizer/56393
	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
	if not linking a shared library.

2013-02-22  Seth LaForge  <sethml@google.com>

	* config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.

2013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.md (split for extendsidi): Update condition.
	(zero_extend<mode>di2,extend<mode>di2): Add an alternative.
	* config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
	(qhs_zextenddi_cstr): Likewise.

2013-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56420
	* expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
	avoid signed wrapping.
	(expand_mult): Handle properly multiplication by
	((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
	((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
	in the compiler if coeff is HOST_WIDE_INT_MIN.
	(expand_divmod): Don't make ext_op1 static, change it's type to uhwi.
	Avoid undefined behavior in -INTVAL (op1).

	PR rtl-optimization/50339
	* lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
	field.
	* lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
	(compute_costs): Call compute_splitting_shift also for ASHIFTRT
	into splitting_ashiftrt field.
	(find_decomposable_shift_zext, resolve_shift_zext): Handle also
	ASHIFTRT.
	(dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
	choices.

2013-02-20  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/56108
	* trans-mem.c (execute_tm_mark): Do not expand transactions that
	are sure to go irrevocable.

2013-02-21  Hans-Peter Nilsson  <hp@axis.com>

	* doc/rtl.texi (vec_concat, vec_duplicate): Mention that
	scalars are valid operands.

2013-02-21  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/56310
	* ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
	only matching indices and non-negative final offsets.
	(intersect_aggregates_with_edge): Pass src_idx to
	agg_replacements_to_vector.  Pass src_idx insstead of index to
	intersect_with_agg_replacements.

2013-02-21  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
	instead of hard-wired defaults.

2013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>

	* doc/invoke.texi (MIPS Options): Update documentation of the
	floating-point multiply-accumulate instruction restrictions.

2013-02-21  Kostya Serebryany  <kcc@google.com>

	* config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
	asan_shadow_offset on x86_64 linux.

2013-02-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56415
	Revert
	2013-02-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56273
	* tree-vrp.c (simplify_cond_using_ranges): Disable for the
	first VRP run.

2013-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/56258
	* doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
	instead of @itemx.

	PR inline-asm/56405
	* expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
	use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.

2013-02-20  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/56265
	* ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when
	target is referenced for first time.

2013-02-20  Richard Biener  <rguenther@suse.de>

	* tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
	* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
	not return anything.
	(rename_ssa_copies): Do not remove unused locals.
	* tree-ssa-ccp.c (do_ssa_ccp): Likewise.
	* tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
	* passes.c (execute_function_todo): Do not schedule unused locals
	removal if cleanup_tree_cfg did something.
	* tree-ssa-live.c (remove_unused_locals): Dump statistics
	about the number of removed locals.

2013-02-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56398
	* tree-vect-loop-manip.c (adjust_debug_stmts): Skip
	SSA default defs.

2013-02-20  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55334
	* ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
	restricted pointers to arrays.

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

	PR tree-optimization/56396
	* tree-ssa-ccp.c (n_const_val): New static variable.
	(get_value): Return NULL for SSA names we don't have a lattice
	entry for.
	(ccp_initialize): Initialize n_const_val.
	* tree-ssa-copy.c (n_copy_of): New static variable.
	(init_copy_prop): Initialize n_copy_of.
	(get_value): Return NULL_TREE for SSA names we don't have a
	lattice entry for.

2013-02-20  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (initialize_node_lattices): Fix dumping condition.

2013-02-20  Richard Biener  <rguenther@suse.de>

	* genpreds.c (write_lookup_constraint): Do not compare first
	letter of the constraint again.

2013-02-20  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
	and ceil_log2.
	(get_use_iv_cost): Terminate hashtable walk when coming across
	an empty entry.

2013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>

	* config/i386/i386.c (initial_ix86_tune_features): Turn on fp
	reassociation for avx2 targets.

2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/microblaze.c: microblaze_has_clz = 0
	Add version check for v8.10.a to enable microblaze_has_clz
	* config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
	version and TARGET_PATTERN_COMPARE check
	* config/microblaze/microblaze.md: New clzsi2 instruction

2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/microblaze.md (call_value_intern): Check symbol is
	function before branching.

2012-02-19  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
	DUMP_INSN_RTX_UID.
	(dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.

2012-02-19  Andrey Belevantsev  <abel@ispras.ru>

	PR middle-end/55889
	* sel-sched.c: Include ira.h.
	(implicit_clobber_conflict_p): New function.
	(moveup_expr): Use it.
	* Makefile.in (sel-sched.o): Depend on ira.h.

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

	PR tree-optimization/56384
	* tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
	(vn_hash_type): Split out from ...
	(vn_hash_constant_with_type): ... here.
	* tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
	(vn_phi_eq): Compare types from vn_phi_s structure.
	(vn_phi_lookup): Populate vn_phi_s type.
	(vn_phi_insert): Likewise.

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

	PR tree-optimization/56350
	* tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
	if haven't found reduction or nested cycle operand, rather than
	asserting we must find it.

	PR tree-optimization/56381
	* tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
	to fold_build3.

2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/52555
	* genopinit.c (raw_optab_handler): Use this_fn_optabs.
	(swap_optab_enable): Same.
	(init_all_optabs): Use argument instead of global.
	* tree.h (struct tree_optimization_option): New field target_optabs.
	* expr.h (init_all_optabs): Add argument to prototype.
	(TREE_OPTIMIZATION_OPTABS): New.
	(save_optabs_if_changed): Protoize.
	* optabs.h: Declare this_fn_optabs.
	* optabs.c (save_optabs_if_changed): New.
	Declare this_fn_optabs.
	(init_optabs): Add argument to init_all_optabs() call.
	* function.c (invoke_set_current_function_hook): Handle per
	function optabs.
	* function.h (struct function): New field optabs.
	* config/mips/mips.c (mips_set_mips16_mode): Handle when
	optimization_current_node has changed.
	* target-globals.h (save_target_globals_default_opts): Protoize.
	* target-globals.c (save_target_globals_default_opts): New.

2013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/56347
	* config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
	registers %fr12 and %fr12R as call used.

	PR target/56214
	* config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
	and HImode, require all displacements to be an integer multiple of
	their mode size.
	* config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
	only allow QImode and HImode when reload is in progress and strict is
	true.  Likewise for symbolic addresses.  Use base14_operand to check
	displacements in REG+BASE addresses.

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

	PR tree-optimization/56366
	* tree-vect-loop.c (get_initial_def_for_induction): Properly
	handle sign-conversion of outer-loop initial induction value.

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

	PR middle-end/56349
	* cfghooks.c (merge_blocks): If we merge a latch into another
	block adjust references to it.
	* cfgloop.c (flow_loops_find): Reset latch before recomputing it.
	(verify_loop_structure): Verify that a recorded latch is in fact
	a latch.

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

	PR tree-optimization/56321
	* tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
	order SSA name release and virtual operand unlinking.

2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/microblaze.md (save_stack_block): Define.
	(restore_stack_block): Likewise.

2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
	* config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
	* config/microblaze/microblaze.c (microblaze_option_override):
	Bail out early for PIC modes when target does not support PIC.

2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
	Replace with a microblaze version.
	(microblaze_trampoline_init): Adapt for microblaze.
	* config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
	microblaze.

2013-02-16  Jakub Jelinek  <jakub@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	PR asan/56330
	* asan.c (get_mem_refs_of_builtin_call): White space and style
	cleanup.
	(instrument_mem_region_access): Do not forget to always put
	instrumentation of the of 'base' and 'base + len' in a "if (len !=
	0) statement, even for cases where either 'base' or 'base + len'
	are not instrumented -- because they have been previously
	instrumented.  Simplify the logic by putting all the statements
	instrument 'base + len' inside a sequence, and then insert that
	sequence right before the current insertion point.  Then, to
	instrument 'base + len', just get an iterator on that statement.
	And do not forget to update the pointer to iterator the function
	received as argument.

2013-02-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56348
	* lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.

2013-02-15  Steven Bosscher  <steven@gcc.gnu.org>

	* graph.c (start_graph_dump): Print dumpfile base as digraph label.
	(clean_graph_dump_file): Pass base to start_graph_dump.

2013-02-14  Richard Henderson  <rth@redhat.com>

	PR target/55941
	* lower-subreg.c (simple_move): Check dest mode instead of src mode.

2013-02-14  Steven Bosscher  <steven@gcc.gnu.org>

	* collect2-aix.h: Define F_LOADONLY.

2013-02-14  Richard Biener  <rguenther@suse.de>

	PR lto/50494
	* varasm.c (output_constant_def_1): Get the decl representing
	the constant as argument.
	(output_constant_def): Wrap output_constant_def_1.
	(make_decl_rtl): Use output_constant_def_1 with the decl
	representing the constant.
	(build_constant_desc): Optionally re-use a decl already
	representing the constant.
	(tree_output_constant_def): Adjust.

2013-02-14  Dodji Seketeli  <dodji@redhat.com>

	Fix an asan crash
	* asan.c (instrument_builtin_call):  Really put the length of the
	second source argument into src1_len.

2013-02-13  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (create_cond_insert_point): Add create_then_fallthru_edge
	argument.  If it is false, don't create edge from then_bb to
	fallthru_bb.
	(insert_if_then_before_iter): Pass true to it.
	(build_check_stmt): Pass false to it.
	(transform_statements): Flush hash table only on extended basic
	block boundaries, rather than at the beginning of every bb.
	Don't flush hash table on nonfreeing_call_p calls.
	* tree-flow.h (nonfreeing_call_p): New prototype.
	* tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.

2013-02-13  David S. Miller  <davem@davemloft.net>

	* expmed.c (expand_shift_1): Only strip scalar integer subregs.

2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/56184
	* ira.c (max_regno_before_ira): Move from ...
	(ira): ... here.
	(fix_reg_equiv_init): Use max_regno_before_ira instead of
	vec_safe_length.

2013-02-13  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.

2013-02-13  Richard Biener  <rguenther@suse.de>

	PR lto/56295
	* gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
	globals in MEM_REFs.

2013-02-13  Richard Biener  <rguenther@suse.de>

	* loop-init.c (loop_optimizer_init): Clear loop state when
	re-initializing preserved loops.
	* loop-unswitch.c (unswitch_single_loop): Return whether
	we unswitched the loop.  Do not verify loop state here.
	(unswitch_loops): When we unswitched a loop discover new
	loops.

2013-02-13  Kostya Serebryany  <kcc@google.com>

	* config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64
	linux.
	* sanitizer.def: Rename __asan_init to __asan_init_v1.

2013-02-12  Dodji Seketeli  <dodji@redhat.com>

	Avoid instrumenting duplicated memory access in the same basic block
	* Makefile.in (asan.o): Add new dependency on hash-table.h
	* asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
	(asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
	(has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
	(free_mem_ref_resources, has_mem_ref_been_instrumented)
	(has_stmt_been_instrumented_p, update_mem_ref_hash_table)
	(get_mem_ref_of_assignment): New functions.
	(get_mem_refs_of_builtin_call): Extract from
	instrument_builtin_call and tweak a little bit to make it fit with
	the new signature.
	(instrument_builtin_call): Use the new
	get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
	of is_gimple_builtin_call.
	(instrument_derefs, instrument_mem_region_access): Insert the
	instrumented memory reference into the hash table.
	(maybe_instrument_assignment): Renamed instrument_assignment into
	this, and change it to advance the iterator when instrumentation
	actually happened and return true in that case.  This makes it
	homogeneous with maybe_instrument_assignment, and thus give a
	chance to callers to be more 'regular'.
	(transform_statements): Clear the memory reference hash table
	whenever we enter a new BB, when we cross a function call, or when
	we are done transforming statements.  Use
	maybe_instrument_assignment instead of instrumentation.  No more
	need to special case maybe_instrument_assignment and advance the
	iterator after calling it; it's now handled just like
	maybe_instrument_call.  Update comment.

2013-02-13  Richard Biener  <rguenther@suse.de>

	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
	Fix loop discovery code.

2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/56148
	* lra-constraints.c (process_alt_operands): Match early clobber
	operand with itself.  Check conflicts with earlyclobber only if
	the operand is not reloaded.  Prefer to reload conflicting operand
	if earlyclobber and matching operands are the same.

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

	PR lto/56297
	* lto-streamer-out.c (write_symbol): Do not output symbols
	for hard register variables.

2013-02-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
	(umulsidi3_insn, mulsidi3_insn): New insns.

2013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
	(struct tune_params): Add vec_costs field.
	* config/arm/arm.c (arm_builtin_vectorization_cost)
	(arm_add_stmt_cost): New functions.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
	(TARGET_VECTORIZE_ADD_STMT_COST): Define.
	(arm_default_vec_cost): New struct of type cpu_vec_costs.
	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
	(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
	(arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
	(arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.

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

	PR lto/56295
	* gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
	decls again if possible.

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

	PR middle-end/56288
	* tree-ssa.c (verify_ssa_name): Fix check, move
	SSA_NAME_IN_FREE_LIST check up.

2013-02-12  Jakub Jelinek  <jakub@redhat.com>
	    Steven Bosscher   <steven@gcc.gnu.org>

	PR rtl-optimization/56151
	* optabs.c (add_equal_note): Don't return 0 if target is a MEM,
	equal to op0 or op1, and last_insn pattern is CODE operation
	with MEM dest and one of the operands matches that MEM.

2013-02-11  Sriraman Tallam  <tmsriramgoogle.com>

	* doc/extend.texi: Document Function Multiversioning and "default"
	parameter string to target attribute.
	* config/i386/i386.c (get_builtin_code_for_version): Return 0 if
	target attribute parameter is "default".
	(ix86_compare_version_priority): Remove checks for target attribute.
	(ix86_mangle_function_version_assembler_name): Change error to sorry.
	Remove check for target attribute equal to NULL. Add assert.
	(ix86_generate_version_dispatcher_body): Change error to sorry.

2013-02-11  Iain Sandoe  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/55693
	* config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
	define ENDFILE_SPEC as TM_DESTRUCTOR.
	* config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.

2013-02-11  Alexander Potapenko  <glider@google.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/55617
	* config/darwin.c (cdtor_record): Rename ctor_record.
	(sort_cdtor_records): Rename sort_ctor_records.
	(finalize_dtors): New routine to sort destructors by
	priority before use in assemble_integer.
	(machopic_asm_out_destructor): Use finalize_dtors if needed.

2013-02-11  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/56275
	* simplify-rtx.c (avoid_constant_pool_reference): Check that
	offset is non-negative and less than cmode size before
	calling simplify_subreg.

2013-02-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56264
	* cfgloop.h (fix_loop_structure): Adjust prototype.
	* loop-init.c (fix_loop_structure): Return the number of
	newly discovered loops.
	* tree-cfgcleanup.c (repair_loop_structures): When new loops
	are discovered, do a full loop-closed SSA rewrite.

2013-02-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56273
	* tree-vrp.c (simplify_cond_using_ranges): Disable for the
	first VRP run.
	(check_array_ref): Fix missing newline in dumps.
	(search_for_addr_array): Likewise.

2013-02-09  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.

2013-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/56256
	* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.

2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56246
	* lra-constraints.c (simplify_operand_subreg): Try to reuse
	reload pseudo.
	* lra.c (lra): Clear lra_optional_reload_pseudos only when all
	constraints are satisfied.

2013-02-08  Jeff Law  <law@redhat.com>

	PR debug/53948
	* emit-rtl.c (reg_is_parm_p): New function.
	* regs.h (reg_is_parm_p): New prototype.
	* ira-conflicts.c (ira_build_conflicts): Allow parameters in
	callee-clobbered registers.

2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/56043
	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
	If there is no implicit builtin declaration, just return NULL.

2013-02-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (FMAMODEM): New mode iterator.
	(fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
	mode iterator. Do not use TARGET_SSE_MATH in insn constraint.

2013-02-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
	when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
	* config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.

2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
	(microblaze*-*-elf): Likewise.
	* config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
	LINK_SPEC.
	* config/microblaze/microblaze-c.c: Add builtin defines for
	_LITTLE_ENDIAN and _BIG_ENDIAN.
	* config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
	add to TARGET_DEFAULT flags.
	Expand ASM_SPEC and LINK_SPEC.
	Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
	* config/microblaze/microblaze.md: Update extendsidi2 and
	movdi_internal instructions to use low-order / high-order reg
	print_operands.
	* config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
	options and inversemask / mask of LITTLE_ENDIAN.
	* config/microblaze/t-microblaze: Expand multilib options to
	include mlittle-endian (le) and update exceptions patterns.

2013-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/56195
	* lra-constraints.c (get_reload_reg): Don't reuse regs
	if they have smaller mode than requested, if they have
	wider mode than requested, try to return a SUBREG.

	PR tree-optimization/56250
	* fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
	if type is unsigned and code isn't MULT_EXPR.

2013-02-08  Georg-Johann Lay  <avr@gjlay.de>

	PR tree-optimization/56064
	* fixed-value.c (fixed_from_double_int): Sign/zero extend payload
	bits according to mode.
	* fixed-value.h (fixed_from_double_int)
	(const_fixed_from_double_int): Adjust comments.

2013-02-08  Richard Biener  <rguenther@suse.de>

	PR lto/56231
	* lto-streamer.h (struct data_in): Remove current_file, current_line
	and current_col members.
	* lto-streamer-out.c (lto_output_location): Stream changed bits
	en-block for efficiency.
	* lto-streamer-in.c (clear_line_info): Remove.
	(lto_input_location): Cache current file, line and column
	globally via local statics.  Read changed bits en-block.
	(input_function): Do not call clear_line_info.
	(lto_read_body): Likewise.
	(lto_input_toplevel_asms): Likewise.

2013-02-08  Michael Matz  <matz@suse.de>

	PR tree-optimization/52448
	* tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
	(nt_call_phase): New static.
	(add_or_mark_expr): Only mark accesses with newer phase than any
	call seen.
	(nonfreeing_call_p): New.
	(nt_init_block): Update nt_call_phase, mark blocks as visited.
	(nt_fini_block): Keep blocks marked as visited.
	(get_non_trapping): Initialize nt_call_phase, and reset aux pointer.

2013-02-08  Richard Biener  <rguenther@suse.de>

	* ira.c (ira): Free broken dominator information.

2013-02-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.

2013-02-08  Marek Polacek  <polacek@redhat.com>

	* cfgloop.c (verify_loop_structure): Add more checking of headers.

2013-02-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/56181
	* cfgloop.h (flow_loops_find): Adjust.
	(bb_loop_header_p): Declare.
	* cfgloop.c (bb_loop_header_p): New function split out from ...
	(flow_loops_find): ... here.  Adjust function signature,
	support incremental loop structure update.
	(verify_loop_structure): Cleanup.  Verify a loop is a loop.
	* cfgloopmanip.c (fix_loop_structure): Move ...
	* loop-init.c (fix_loop_structure): ... here.
	(apply_loop_flags): Split out from ...
	(loop_optimizer_init): ... here.
	(fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
	in incremental mode, only remove dead loops here.

2013-02-08  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
	* config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
	(round<mode>3, round<mode>3_const): New expanders for fixed-mode.
	(*round<mode>3.libgcc): New insns for fixed-modes.
	* config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
	(ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
	(ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
	* config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
	implementations.  Define to __builtin_avr_absFX,
	__builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
	(roundFX, countlsFX): Define to __builtin_avr_roundFX,
	__builtin_avr_countlsFX, respectively.
	* config/avr/avr-c.c (target.h): Include it.
	(enum avr_builtin_id): New enum.
	(avr_resolve_overloaded_builtin): New static function.
	(avr_register_target_pragmas): Use it to set
	targetm.resolve_overloaded_builtin.
	* config/avr/avr.c (avr_init_builtins): Supply myriads of local
	tree nodes used by DEF_BUILTIN.
	(avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
	(avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
	<AVR_BUILTIN_xxBITS>: Same.

2013-02-08  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (verify_loop_structure): Properly handle
	a loop exiting to another loop header.
	* ira-int.h (ira_loops): Remove.
	* ira.c (ira_loops): Remove.
	(ira): Use loop_optimizer_init and loop_optimizer_finalize.
	(do_reload): Use loop_optimizer_finalize.
	* ira-build.c (create_loop_tree_nodes): Use get_loops and
	number_of_loops to access the loop tree.
	(more_one_region_p): Likewise.
	(finish_loop_tree_nodes): Likewise.
	(rebuild_regno_allocno_maps): Likewise.
	(mark_loops_for_removal): Likewise.
	(mark_all_loops_for_removal): Likewise.
	(remove_unnecessary_regions): Likewise.
	(ira_build): Likewise.
	* ira-emit.c (setup_entered_from_non_parent_p): Likewise.

2013-02-08  Richard Biener  <rguenther@suse.de>

	* Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
	* ipa-pure-const.c (analyze_function): Avoid calling
	mark_irreducible_loops twice.
	* tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.

2013-02-07  David S. Miller  <davem@davemloft.net>

	* dwarf2out.c (based_loc_descr): Perform leaf register remapping
	on 'reg'.
	* var-tracking.c (vt_add_function_parameter): Test the presence of
	HAVE_window_save properly and do not remap argument registers when
	we have a leaf function.

2013-02-07  Uros Bizjak  <ubizjak@gmail.com>

	PR bootstrap/56227
	* ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
	instead of "ll".
	* config/i386/i386.c (ix86_print_operand): Ditto.

2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (process_alt_operands): Fix recently added comment.

2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56225
	* lra-constraints.c (process_alt_operands): Check that reload hard
	reg can hold value for strict_low_part.

2013-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/56154
	* dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
	dwarf2out_end_function.
	(in_first_function_p, maybe_at_text_label_p,
	first_loclabel_num_not_at_text_label): New variables.
	(dwarf2out_var_location): In the first function find out
	lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
	(find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
	functions.

2013-02-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/56178
	* cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
	SUBREG of a register.  Tidy up related block of code.
	* fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
	note if the source is a register or a SUBREG of a register.

2013-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/56228
	* config/rs6000/rs6000.md (ptrm): New mode attr.
	(call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
	call_value_indirect_aix<pttrsize>,
	call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
	m in constraints.

2013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>

	* collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
	if -bnortl. Convert to strcmp and strncmp.

2013-02-07  Alan Modra  <amodra@gmail.com>

	PR target/54009
	* config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
	addresses won't wrap when offsetting.
	(rs6000_secondary_reload): Provide secondary reloads needed for
	wrapping LO_SUM addresses.

2013-02-06  Thomas Schwinge  <thomas@codesourcery.com>

	* config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
	MACH, just __MACH__.

2013-02-06  Richard Biener  <rguenther@suse.de>

	* tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
	instead of calling fix_loop_structure.

2013-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56217
	* omp-low.c (use_pointer_for_field): Return false if
	lower_send_shared_vars doesn't generate any copy-out code.

2013-02-06  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/56131
	* cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
	to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
	of the label is NULL.  Add comment.

2013-02-05  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (struct tree_decl_with_vis): Remove thread_local field.

	PR sanitizer/55374
	* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
	(STATIC_LIBTSAN_LIBS): Likewise.
	* gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
	(LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
	is defined, don't add anything else beyond that.
	(SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
	(LINK_COMMAND_SPEC): Use them.

	PR tree-optimization/56205
	* tree-stdarg.c (check_all_va_list_escapes): Return true if
	there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
	and some va_list_escape_vars SSA_NAME appears in some PHI argument.

2013-02-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/53342
	PR tree-optimization/53185
	* tree-vectorizer.h (vect_check_strided_load): Remove.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
	not disallow peeling for vectorized strided loads.
	(vect_check_strided_load): Make static and simplify.
	(vect_analyze_data_refs): Adjust.
	* tree-vect-stmts.c (vectorizable_load): Handle peeled loops
	correctly when vectorizing strided loads.

2013-02-05  Richard Biener  <rguenther@suse.de>

	* doc/install.texi: Refer to ISL, not PPL.

2013-02-05  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/55789
	* params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.

2013-02-05  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/55789
	* cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
	the dead call anyway.

2013-02-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR sanitizer/55374
	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.

2013-02-04  Alexander Potapenko  <glider@google.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/55617
	* config/darwin.c (sort_ctor_records): Stabilized qsort
	on constructor priority by using original position.
	(finalize_ctors): New routine to sort constructors by
	priority before use in assemble_integer.
	(machopic_asm_out_constructor): Use finalize_ctors if needed.

2013-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/54314
	* config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
	about visibility on artificial decls.
	* config/sol2.c (solaris_assemble_visibility): Likewise.

2013-02-04  Kai Tietz  <ktietz@redhat.com>

	PR target/56186
	* config/i386/i386.c (function_value_ms_64): Add additional valtype
	argument and improve checking of return-argument types for 16-byte
	modes.
	(ix86_function_value_1): Add additional valtype argument on call
	of function_value_64.
	(return_in_memory_ms_64): Sync 16-byte sized mode handling with
	handling infunction_value_64 function.

2013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	* reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.

2013-02-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56188
	* tree-ssa-structalias.c (label_visit): Consider case with
	initially non-empty points-to set.
	(perform_var_substitution): Dump node mapping and clean up.

2013-02-04  Richard Guenther  <rguenther@suse.de>

	PR lto/56168
	* lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
	node prevail as last resort.
	(lto_symtab_merge_decls): Remove guard on LTRANS here.
	(lto_symtab_prevailing_decl): Builtins are their own prevailing decl.

2013-02-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56113
	* tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
	Merge into ...
	(equiv_class_lookup_or_add): ... this.
	(label_visit): Adjust and fix error in previous patch.
	(perform_var_substitution): Adjust.

2013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/divtab.c: Fix formatting and comments throughout the file.
	* config/sh/sh4-300.md: Likewise.
	* config/sh/sh4a.md: Likewise.
	* config/sh/constraints.md: Likewise.
	* config/sh/sh.md: Likewise.
	* config/sh/netbsd-elf.h: Likewise.
	* config/sh/predicates.md: Likewise.
	* config/sh/sh-protos.h: Likewise.
	* config/sh/ushmedia.h: Likewise.
	* config/sh/linux.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/superh.h: Likewise.
	* config/sh/elf.h: Likewise.
	* config/sh/sh4.md: Likewise.
	* config/sh/sh.h: Likewise.

2013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/constraints.md: Adjust unused letters.  Change "T"
	constraint to match_test floating_point_store_memory_operand().
	* config/pa/predicates.md (reg_plus_base_memory_operand): New.
	(base14_operand): New.
	(floating_point_store_memory_operand): New.
	(integer_store_memory_operand): Revise to use base14_operand and
	reg_plus_base_memory_operand.
	(move_dest_operand): Allow symbolic_memory_operands.
	(symbolic_memory_operand): Check for LO_SOM.
	(symbolic_operand): Change default case to break.
	* config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
	CONST_DOUBLE values to be reloaded by putting them into memory when
	the destination is a floating point register.
	(movdf): Remove code to handle CONST_DOUBLE.
	(movsf): Likewise.
	(reload_indf_r1): New.
	(reload_insf_r1): New.
	Consistently use "Q" and "T" constraints with integer and floating
	point move instructions, respectively.
	(movdi): Remove FAIL.
	Change predicate for source operand unamed DImode move from
	general_operand to move_src_operand.
	(umulsidi3): Change predicate for destination operand to
	register_operand.
	Likewise for similar unamed patterns.
	* config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
	* config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
	(hppa_legitimize_address): Simplify mask calculation.
	(pa_emit_move_sequence): Revised handling of secondary reloads from
	REG+D addresses for floating point loads and stores.  Directly handle
	loading CONST0_RTX (mode) to a floating point register.
	(pa_secondary_reload): Handle reloading DF and SFmode constant values
	to floating point registers.  Don't restrict secondary reloads to
	floating point registers to integer modes.  Revise some comments and
	cleanup some code.
	(TARGET_LEGITIMATE_ADDRESS_P): Define.
	(pa_legitimate_address_p): New.
	(pa_legitimize_reload_address): New.
	* config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
	(STRICT_REG_OK_FOR_BASE_P): New.
	(GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
	(LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.

2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
	    Andrew Dixie  <andrewd@gentrack.com>

	* collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
	flag set.

2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (extract_bit_field_1): Pass the full width of the
	structure to get_best_reg_extraction_insn.

2013-02-01  David Edelsohn  <dje.gcc@gmail.com>

	PR target/54601
	* configure.ac (use_cxa_atexit): Add AIX.
	* configure: Regenerate.

	* config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.

2013-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/54793
	* final.c (need_profile_function): New variable.
	(final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
	If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
	is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
	notes, targetm.asm_out.function_prologue doesn't emit anything,
	HAVE_prologue and profiler should be emitted before prologue,
	set need_profile_function instead of emitting it.
	(final_scan_insn): If need_profile_function, emit
	profile_function on the first NOTE_INSN_BASIC_BLOCK or
	NOTE_INSN_FUNCTION_BEG note.

2013-02-01  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.md (smulditi3): New.
	(umulditi3): New.

	* config/alpha/alpha.md (umulditi3): New.

2013-02-01  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
	(ASM_OUTPUT_ALIGNED_LOCAL): New.

2013-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56113
	* tree-ssa-structalias.c (label_visit): Reduce work for
	single-predecessor nodes.

2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
	range isn't testing for zero.

2013-01-31  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/56113
	* fwprop.c (fwprop_init): Set up loops without CFG modifications.

2013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/v850/constraints.md (Q): Define as a memory constraint.
	* config/v850/predicates.md (label_ref_operand): New predicate.
	(e3v5_shift_operand): New predicate.
	(ior_operator): New predicate.
	* config/v850/t-v850: Add e3v5 multilib.
	* config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
	(v850_gen_movdi): Prototype.
	* config/v850/v850.c: Add support for e3v5 architecture.
	Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
	TARGET_V850E_UP.
	(construct_save_jarl): Add e3v5 long JARL support.
	(v850_adjust_insn_length): New function.  Adjust length of call
	insns when using e3v5 instructions.
	(v850_gen_movdi): New function: Generate instructions to move a
	DImode value.
	* config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
	(CPP_SPEC): Define __v850e3v5__ as appropriate.
	(TARGET_USE_FPU): Enable for e3v5.
	(CONST_OK_FOR_W): New macro.
	(ADJUST_INSN_LENGTH): Define.
	* config/v850/v850.md (UNSPEC_LOOP): Define.
	(attr cpu): Add v850e3v5.
	Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
	(movdi): New pattern.
	(movdi_internal): New pattern.
	(cbranchsf4): Conditionalize on TARGET_USE_FPU.
	(cbranchdf4): Conditionalize on TARGET_USE_FPU.
	(cstoresf4): Likewise.
	(cstoredf4): Likewise.
	(insv): New pattern.
	(rotlso3_a): New pattern.
	(rotlsi3_b): New pattern
	(rotlsi3_v850e3v5): New pattern.
	(doloop_begin): New pattern.
	(fix_loop_counter): New pattern.
	(doloop_end): New pattern.
	(branch_normal): Add e3v5 long branch support.
	(branch_invert): Likewise.
	(branch_z_normal): Likewise.
	(branch_z_invert): Likewise.
	(branch_nz_normal): Likewise.
	(branch_nz_invert): Likewise.
	(call_internal_short): Add e3v5 register-indirect JARL support.
	(call_internal_long): Likewise.
	(call_value_internal_short): Likewise.
	(call_value_internal_long): Likewise.
	* config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
	(mloop): New option.
	* config.gcc: Add support for configuring v840e3v5 target.
	* doc/invoke.texi: Document new v850 specific command line options.

2013-01-31  Paul Koning  <ni1d@arrl.net>

	PR debug/55059
	PR debug/54508
	* dwarf2out.c (prune_unused_types_mark): Mark all of parent's
	children if parent is a class.
	(prune_unused_types_prune): Don't add DW_AT_declaration.

2013-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56157
	* tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
	match up operand with SLP child.

2013-01-31  Jason Merrill  <jason@redhat.com>

	PR debug/54410
	* dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
	parameters the first time.
	(gen_scheduled_generic_parms_dies): Check completeness here.

2013-01-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/53073
	* common.opt (faggressive-loop-optimizations): New flag,
	enabled by default.
	* doc/invoke.texi (faggressive-loop-optimizations): Document.
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
	infer_loop_bounds_from_undefined by it.

2013-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56150
	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
	visit virtual operands.
	(find_uses_to_rename_bb): Likewise.

2013-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56150
	* tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
	mixed store non-store stmts.

2013-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/55374
	* gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
	LIBASAN_EARLY_SPEC is defined.
	(LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
	(LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
	before %o.
	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.

	PR c++/55742
	* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
	invalid args instead of ICEing on it.
	(ix86_valid_target_attribute_tree): Return error_mark_node if
	ix86_valid_target_attribute_inner_p failed.
	(ix86_valid_target_attribute_p): Return false only if
	ix86_valid_target_attribute_tree returned error_mark_node.  Allow
	target("default") attribute.
	(sorted_attr_string): Change argument from const char * to tree,
	merge in all target attribute arguments rather than just one.
	Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
	instead of free.  Avoid using strcat.
	(ix86_mangle_function_version_assembler_name): Mangle
	target("default") as if no target attribute is present.  Adjust
	sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
	instead of xmalloc and XDELETEVEC instead of free.
	(ix86_function_versions): Don't return true if one of the decls
	doesn't have target attribute.  If they don't and one of the decls
	is DECL_FUNCTION_VERSIONED, report an error.  Adjust
	sorted_attr_string caller.  Use XDELETEVEC instead of free.
	(ix86_supports_function_versions): Remove.
	(make_name): Fix up formatting.
	(make_dispatcher_decl): Remove resolver_name and its initialization.
	Avoid leaking memory.
	(is_function_default_version): Return true if there is
	target("default") attribute rather than no target attribute at all.
	(make_resolver_func): Avoid leaking memory.
	(ix86_generate_version_dispatcher_body): Likewise.
	(TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
	* target.def (supports_function_versions): Remove.
	* doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
	* doc/tm.texi: Regenerated.

2013-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56144
	* lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
	for values with side effects.

2013-01-30  Richard Biener  <rguenther@suse.de>

	* sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
	(sparseset_pop): Likewise.
	* cfganal.c (compute_idf): Likewise.  Increase work-stack size
	to be able to use quick_push in the worker loop.

2013-01-30  Marek Polacek  <polacek@redhat.com>

	* cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.

2013-01-30  Richard Biener  <rguenther@suse.de>

	PR lto/56147
	* lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.

2013-01-30  Georg-Johann Lay  <avr@gjlay.de>

	PR tree-optimization/56064
	* fixed-value.c (fixed_from_double_int): New function.
	* fixed-value.h (fixed_from_double_int): New prototype.
	(const_fixed_from_double_int): New static inline function.
	* fold-const.c (native_interpret_fixed): New static function.
	(native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
	(can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
	(native_encode_fixed): New static function.
	(native_encode_expr) <FIXED_CST>: Use it.
	(native_interpret_int): Move double_int worker code to...
	* double-int.c (double_int::from_buffer): ...this new static method.
	* double-int.h (double_int::from_buffer): Prototype it.

2013-01-30  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
	New pointer-map and obstack.
	(init_alias_vars): Allocate pointer-map and obstack.
	(delete_points_to_sets): Free them.
	(find_what_var_points_to): Cache result.
	(find_what_p_points_to): Adjust for changed interface of
	find_what_var_points_to.
	(compute_points_to_sets): Likewise.
	(ipa_pta_execute): Likewise.

2013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (HAVE_AS_SPARC_NOBITS): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
	#nobits/#progbits if supported.

2013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/56121
	* config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
	bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
	bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.

2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
	(cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.

2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
	* config/arm/cortex-a7.md (cortex_a7_call): Update required units.

2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
	declaration.
	* config/arm/arm.c (arm_mac_accumulator_is_result): New function.
	* config/arm/cortex-a7.md: New bypasses using
	arm_mac_accumulator_is_result.

2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
	(cortex_a7_neon_mla): Likewise.
	(cortex_a7_fpfmad): New reservation.
	(cortex_a7_fpmacs): Use ffmas and update required units.
	(cortex_a7_fpmuld): Update required units and latency.
	(cortex_a7_fpmacd): Likewise.
	(cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
	(cortex_a7_neon). Likewise.
	(bypass) Update participating units.

2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
	* config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
	from fmac to ffma.
	* config/arm/vfp11.md (vfp_farith): Use ffmas.
	(vfp_fmul): Use ffmad.
	* config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
	(cortex_r4_fmacd): Use ffmad.
	* config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
	* config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
	(cortex_a9_fmacd): Use ffmad.
	* config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
	(cortex_a8_vfp_macd): Use ffmad.
	* config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
	(cortex_a5_fpmacd): Use ffmad.
	* config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
	(cortex_a15_vfp_macd): Use ffmad.
	* config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.

2013-01-29  Jason Merrill  <jason@redhat.com>

	PR libstdc++/54314
	* varasm.c (default_assemble_visibility): Don't warn about
	visibility on artificial decls.

2013-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56113
	* tree-ssa-structalias.c (equiv_class_lookup): Also return
	the bitmap leader.
	(label_visit): Free duplicate bitmaps and record the leader instead.
	(perform_var_substitution): Adjust.

2013-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55270
	* tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
	the CFG, schedule loops for fixup.

2013-01-29  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
	SP_REG.

2013-01-28  Leif Ekblad  <leif@rdos.net>

	* config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
	* config/i386/i386.h (TARGET_RDOS): New macro.
	(DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
	* config/i386/i386.c (ix86_option_override_internal): For 64bit
	TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
	* config/i386/i386.opt (mlarge-data-threshold): Initialize to
	DEFAULT_LARGE_SECTION_THRESHOLD.
	* config/i386/i386.md (R14_REG, R15_REG): New constants.
	* config/i386/rdos.h: New file.
	* config/i386/rdos64.h: New file.

2013-01-28  Bernd Schmidt  <bernds@codesourcery.com>

	PR other/54814
	* reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
	TEST_HARD_REG_BIT.

2013-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/56117
	* sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
	call cselib_lookup_from_insn on the MEM before calling
	add_insn_mem_dependence.

2013-01-28  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
	to a stmt that didn't have one.
	(copy_phis_for_bb): Likewise for PHI arguments.
	(copy_debug_stmt): Likewise for debug stmts.

2013-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56034
	* tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
	(partition_builtin_p): Adjust.
	(generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
	it is the last partition.
	(rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
	up the vertex for the definition.
	(classify_partition): Classify whether a partition is a
	PKIND_REDUCTION, thus has uses outside of the loop.
	(ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
	Merge all PKIND_REDUCTION partitions into the last partition.
	(tree_loop_distribution): Seed partitions from reductions as well.

2013-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56125
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
	pow(x,c) into sqrt(x) * powi(x, n/2) or
	1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
	optimizing for size.
	Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
	1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
	integer.

	PR tree-optimization/56094
	* gimplify.c (force_gimple_operand_1): Temporarily set input_location
	to UNKNOWN_LOCATION while gimplifying expr.

2013-01-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/56114
	* config/i386/i386.md (*movabs<mode>_1): Add square brackets around
	operand 0 in movabs insn template for -masm=intel asm alternative.
	(*movabs<mode>_2): Ditto for operand 1.

2013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>

	PR target/54663
	* config.gcc (microblaze*-linux*): Add tmake_file to allow building
	of microblaze-c.o

2013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
	tm_file.

2013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
	Undef to avoid warning.

2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>

	* configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
	* configure: Regenerate.

2013-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56098
	* tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
	for stmts with volatile ops.
	(cond_store_replacement): Don't optimize if assign has volatile ops.
	(cond_if_else_store_replacement_1): Don't optimize if either
	then_assign or else_assign have volatile ops.
	(hoist_adjacent_loads): Don't optimize if either def1 or def2 have
	volatile ops.

2013-01-25  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.

2013-01-25  Georg-Johann Lay  <avr@gjlay.de>

	* doc/extend.texi (Example of asm with clobbered asm reg): Fix
	missing ':' in asm example.

2013-01-25  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
	entries into lane and laneq entries.
	* config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
	Remove AdvSIMD scalar modes.
	(aarch64_sq<r>dmulh_laneq<mode>): New.
	(aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
	modes.
	* config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
	builtin implementations to relfect changes in RTL in aarch64-simd.md.
	* config/aarch64/iterators.md (VCOND): New.
	(VCONQ): New.

2013-01-25  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
	Add NULL LIBNAME argument to existing definitions.
	(ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
	* config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
	* config/avr/avr.c (DEF_BUILTIN): Same.
	(avr_init_builtins): Pass down LIBNAME to add_builtin_function.
	(avr_expand_builtin): Expand to a vanilla call if a libgcc
	implementation is available (DECL_ASSEMBLER_NAME is set).
	(avr_fold_absfx): New static function.
	(avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
	AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
	AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
	AVR_BUILTIN_ABSLLK.
	* config/avr/stdfix.h (abshr, absr, abslr, absllr)
	(abshk, absk, abslk, absllk): Provide as static inline functions.

2013-01-25  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/56035
	* cfgloopmanip.c (fix_loop_structure): Remove redundant condition.

2012-01-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
	(*movtf_internal_rex64): Add (!o,C) alternative
	(*movxf_internal_rex64): Ditto.
	(*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.

2013-01-24  Shenghou Ma  <minux.ma@gmail.com>

	* doc/invoke.texi: fix typo.
	* doc/objc.texi: fix typo.

2013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
	for the first two alternatives.

2013-01-24  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
	(ggc-zone.o): Remove.
	* configure.ac: Remove option --with-gc.
	* configure: Re-generate.
	* doc/install.texi: Remove documentation for --with-gc.
	* gengtype.c (write_enum_defn): Remove.  Update all users.
	(write_Types_process_field): Remove generation of gt_e_* argument.
	(output_type_enum): Remove.  Update all users.
	(write_enum_defn): Remove.  Update all users.
	(enum alloc_zone): Remove.  Update all users.
	(write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
	* ggc-common.c (ggc_splay_alloc): Remove first argument.
	Update all callers.
	(struct ptr_data): Remove field TYPE.  Update all users.
	(gt_pch_note_object): Remove argument TYPE.  Update all users.
	* ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
	Update all users.
	* ggc-none.c (ggc_alloc_typed_stat): Remove.
	(struct alloc_zone): Remove.
	(ggc_internal_alloc_zone_stat): Remove.
	(ggc_internal_cleared_alloc_zone_stat): Remove.
	* ggc-page.c (ggc_alloc_typed_stat): Remove.
	(ggc_pch_count_object): Remove last argument.  Update all users.
	(ggc_pch_alloc_object): Remove last argument.  Update all users.
	(struct alloc_zone): Remove.
	* ggc-zone.c: Remove.
	* ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
	(struct alloc_zone): Remove.
	(ggc_alloc_typed_stat): Remove.
	(ggc_alloc_typed): Remove.
	(ggc_splay_alloc): Remove first argument.
	(rtl_zone): Remove.  Update all users.
	(tree_zone): Remove.  Update all users.
	(tree_id_zone): Remove.  Update all users.
	(ggc_internal_zone_alloc_stat): Remove.  Update all users.
	(ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
	(ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
	* tree-ssanames.c: Remove references to zone allocator in comments.

2013-01-24  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_out_fract): Make register numbers that
	might be outside of source operand signed.

2013-01-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Yf): New constraint.
	* config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
	of f constraint to conditionaly disable x87 register preferences.
	(*movdf_internal): Ditto.
	(*movsf_internal): Ditto.

2013-01-24  Steven Bosscher  <steven@gcc.gnu.org>

	PR inline-asm/55934
	* lra-assigns.c (assign_by_spills): Throw away the pattern of asms
	that have operands with impossible constraints.
	Add a FIXME for a speed-up opportunity.
	* lra-constraints.c (process_alt_operands): Verify that a class
	selected from constraints on asms is valid for the operand mode.
	(curr_insn_transform): Remove incorrect comment.

2013-01-23  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
	TOC operand is a valid symbol ref in the constant pool.

2013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>

	* config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS

2013-01-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* config/avr/stdfix.h: New file.
	* t-avr (stdfix-gcc.h): New rule to build it.
	(EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.

2013-01-23  Kostya Serebryany  <kcc@google.com>

	* config/darwin.h: remove dependency on
	CoreFoundation (asan on Mac OS).

2013-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/49069
	* config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
	instead of cmpdi_operand for first comparison operand.
	Don't assert that comparison operands aren't both constants.

2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/install.texi (Downloading the Source): Update references to
	downloading separate components.

2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (__int128): Improve grammar.

2013-01-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/56028
	* config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
	alternative to (o,r).
	(*movdi_internal_rex64): Remove (!o,n) alternative.
	(DImode immediate->memory splitter): Remove.
	(DImode immediate->memory peephole2): Remove.
	(movtf): Enable for TARGET_64BIT || TARGET_SSE.
	(*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
	alternative to (!o,*r).
	(*movtf_internal_sse): New pattern.
	(*movxf_internal_rex64): New pattern.
	(*movxf_internal): Disable for TARGET_64BIT.
	(*movdf_internal_rex64): Remove (!o,F) alternative.

2013-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56074
	* dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
	isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
	* tree-vect-loop-manip.c (find_loop_location): Also ignore
	stmt locations where LOCATION_LOCUS of the stmt location is
	UNKNOWN_LOCATION or BUILTINS_LOCATION.

	PR target/55686
	* config/i386/i386.md (UNSPEC_STOS): New.
	(strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
	*strsetqi_1): Add UNSPEC_STOS.

2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56067
	* doc/invoke.texi: Remove left over -Wsynth example.

2013-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56051
	* fold-const.c (fold_binary_loc): Don't fold
	X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
	a narrowing conversion, or widening conversion from signed
	to unsigned.

2013-01-21  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/56023
	* haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
	dependent on debug instruction.

2013-01-21  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/56022
	* function.c (allocate_struct_function): Call
	invoke_set_current_function_hook earlier.

2013-01-21  Jakub Jelinek  <jakub@redhat.com>

	* reload1.c (init_reload): Only initialize reload_obstack
	during the first call.

2013-01-21  Marek Polacek  <polacek@redhat.com>

	* cfgloop.c (verify_loop_structure): Fix up grammar.

2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>

	* config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
	pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.

2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/56058
	* config/arm/marvell-pj4.md: Update copyright year.
	Fix up use of alu to alu_reg and simple_alu_imm.

2013-01-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.

2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55433
	* lra-constraints.c (curr_insn_transform): Don't reuse original
	insn for secondary memory move when memory mode should be different.

2013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
	atomic_storedi_1): New patterns.

2013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	btver2 pipeline descriptions.
	* config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
	descriptions.
	* config/i386/i386.md (btver2_decode): New type attributes.
	* config/i386/sse.md (btver2_decode, btver2_sse_attr): New
	type attributes.
	* config/i386/btver2.md: New file describing btver2 pipelines.

2013-01-19  Andrew Pinski  <apinski@cavium.com>

	PR tree-optimization/52631
	* tree-ssa-sccvn (visit_use): Before looking up the original
	statement, try looking up the simplified expression.

2013-01-19  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_expand_prologue): Set
	current_function_static_stack_size.

2013-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56029
	* tree-phinodes.c (reserve_phi_args_for_new_edge): Set
	gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.

2013-01-18  Sharad Singhai  <singhai@google.com>

	PR tree-optimization/55995
	* dumpfile.c (dump_loc): Print location only if available.
	* tree-vectorizer.c (increase_alignment): Intialize vect_location.

2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55433
	* lra-constraints.c (curr_insn_transform): Reuse original insn for
	secondary memory move.
	(inherit_reload_reg): Use rclass instead of cl for
	check_secondary_memory_needed_p.

2013-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56015
	* expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
	the case where writing real complex part of target modifies op1.

2013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_vcond_internal<mode>): Handle unordered cases.
	* config/aarch64/iterators.md (v_cmp_result): New.

2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/marvell-pj4.md: New file.
	* config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
	* config/arm/arm.md (generic_sched): Add marvell_pj4.
	(generic_vfp): Likewise.
	* config/arm/arm-cores.def: Add marvell-pj4.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
	* doc/invoke.texi: Document marvell-pj4.

2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/arm_neon.h: Map scalar types to standard types.

2013-01-18  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/54114
	PR debug/54402
	PR debug/49888
	* var-tracking.c (negative_power_of_two_p): New.
	(global_get_addr_cache, local_get_addr_cache): New.
	(get_addr_from_global_cache, get_addr_from_local_cache): New.
	(vt_canonicalize_addr): Rewrite using the above.  Adjust the
	heading comment.
	(vt_stack_offset_p): Remove.
	(vt_canon_true_dep): Always canonicalize loc's address.
	(clobber_overlapping_mems): Make sure we have a MEM.
	(local_get_addr_clear_given_value): New.
	(val_reset): Clear local cached entries.
	(compute_bb_dataflow): Create and release the local cache.
	Disable duplicate MEMs clobbering.
	(emit_notes_in_bb): Clobber MEMs likewise.
	(vt_emit_notes): Create and release the local cache.
	(vt_initialize, vt_finalize): Create and release the global
	cache, respectively.
	* alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.

2013-01-18  Alexandre Oliva  <aoliva@redhat.com>

	PR libmudflap/53359
	* tree-mudflap.c (mudflap_finish_file): Skip deferred decls
	not found in the symtab.

2013-01-18  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/56006
	PR rtl-optimization/55547
	PR rtl-optimization/53827
	PR debug/53671
	PR debug/49888
	* alias.c (offset_overlap_p): New, factored out of...
	(memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
	the conservative special case for symbolic constants.  Don't
	adjust zero sizes on alignment.

2013-01-18  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/52573
	* regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
	REG_UNUSED for the same register.

2013-01-17  Richard Biener  <rguenther@suse.de>
	    Marek Polacek  <polacek@redhat.com>

	PR rtl-optimization/55833
	* loop-unswitch.c (unswitch_loops): Move loop verification...
	(unswitch_single_loop): ...here.  Call mark_irreducible_loops.
	* cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
	Set it to true when we're removing a loop from hierarchy tree in
	an irreducible region.
	(fix_bb_placements): Adjust caller.
	(fix_loop_placements): Likewise.

2013-01-17  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/builtins.def (DEF_BUILTIN): Factor out
	"__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
	Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
	Remove ID.  Adjust comments.
	* config/avr/avr-c.c (avr_builtin_name): Remove.
	(avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
	* config/avr/avr.c (avr_tolower): New static function.
	(DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
	Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
	(avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
	default expansion.

2013-01-17  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/55273
	* loop-iv.c (iv_number_of_iterations): Consider zero iteration case.

2013-01-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/55981
	* config/i386/sync.md (atomic_store<mode>): Always generate SWImode
	store through atomic_store<mode>_1.
	(atomic_store<mode>_1): Macroize insn using SWI mode iterator.

2013-01-17  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimizations/55264
	* ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
	for virtual methods.
	* ipa.c (symtab_remove_unreachable_nodes): Never return true for
	virtual methods before inlining is over.
	* cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
	virtual functions.
	* cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
	non-virtual.

2013-01-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/56005
	* sched-deps.c (sched_analyze_2): Check deps->readonly for adding
	pending reads for prefetch.

2013-01-16  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.md
	(*cstoresi_neg_uxtw): New pattern.
	(*cmovsi_insn_uxtw): New pattern.
	(*<optab>si3_uxtw): New pattern.
	(*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
	(*<optab>si3_insn_uxtw): New pattern.
	(*bswapsi2_uxtw): New pattern.

2013-01-16  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (tree_function_versioning): Remove set but
	never used variable.

2013-01-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55964
	* tree-flow.h (rename_variables_in_loop): Remove.
	(rename_variables_in_bb): Likewise.
	* tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
	(copy_loop_before): Adjust and delete update-ssa status.
	* tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
	(rename_variables_in_bb): Likewise.  Properly walk over predecessors.
	(rename_variables_in_loop): Remove.
	(slpeel_update_phis_for_duplicate_loop): Likewise.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
	use available cfg machinery instead of duplicating it.
	Update PHI nodes and perform poor-mans SSA update here.
	(slpeel_tree_peel_loop_to_edge): Adjust.

2013-01-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54767
	PR tree-optimization/53465
	* tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
	(vrp_visit_phi_node): For PHI arguments coming via backedges
	drop all symbolical range information.
	(execute_vrp): Compute backedges.

2013-01-16  Richard Biener  <rguenther@suse.de>

	* doc/install.texi: Update CLooG and ISL requirements to
	0.18.0 and 0.11.1.

2013-01-16  Christian Bruel  <christian.bruel@st.com>

	PR target/55301
	* config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
	(broken_move): Handle UNSPECV_SP_SWITCH_B.
	* config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).

2013-01-16  DJ Delorie  <dj@redhat.com>

	* config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
	(UNSPECV_SP_SWITCH_E): New.
	(sp_switch_1): Change to an unspec.
	(sp_switch_2): Change to an unspec.  Don't use post-inc when we
	replace $r15.

2013-01-16  Uros Bizjak  <ubizjak@gmail.com>

	* emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
	with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
	* optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
	(expand_mem_thread_fence): Ditto.
	(expand_mem_signal_fence): Ditto.
	(expand_atomic_load): Ditto.
	(expand_atomic_store): Ditto.

2013-01-16  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/55547
	PR rtl-optimization/53827
	PR debug/53671
	PR debug/49888
	* alias.c (memrefs_conflict_p): Set sizes to negative after
	AND adjustments.

2013-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/55940
	* function.c (thread_prologue_and_epilogue_insns): Always
	add crtl->drap_reg to set_up_by_prologue.set, even if
	stack_realign_drap is false.

2013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
	and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
	*call): Fix indention.

2013-01-15  Tom de Vries  <tom@codesourcery.com>

	PR target/55876
	* optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
	Update comment.

2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55153
	* sched-deps.c (sched_analyze_2): Add pending reads for prefetch.

2013-01-15  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55920
	* tree-sra.c (analyze_access_subtree): Do not mark non-removable
	accesses as grp_to_be_debug_replaced.

2013-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55920
	* tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
	there is non-useless type conversion needed from debug rhs to lhs,
	use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.

2013-01-15  Joseph Myers  <joseph@codesourcery.com>
	    Mikael Pettersson  <mikpe@it.uu.se>

	PR target/43961
	* config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
	Thumb.
	(ASM_OUTPUT_CASE_LABEL): Remove.
	(ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
	* final.c (shorten_branches): Update alignment of labels before
	jump tables if CASE_VECTOR_SHORTEN_MODE.

2013-01-15  Richard Biener  <rguenther@suse.de>

	PR bootstrap/55961
	* system.h: Do not include gmp.h for building host tools.

2013-01-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/55882
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
	account for bitpos when computing alignment.

2013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>

	* config/i386/i386-c.c (ix86_target_macros_internal): New case.
	(ix86_target_macros_internal): Likewise.

	* config/i386/i386.c (m_CORE2I7): Removed.
	(m_CORE_HASWELL): New macro.
	(m_CORE_ALL): Likewise.
	(initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
	(initial_ix86_arch_features): Likewise.
	(processor_target_table): Initializations for Core avx2.
	(cpu_names): New names "core-avx2".
	(ix86_option_override_internal): Changed PROCESSOR_COREI7 by
	PROCESSOR_CORE_HASWELL.
	(ix86_issue_rate): New case.
	(ia32_multipass_dfa_lookahead): Likewise.
	(ix86_sched_init_global): Likewise.

	* config/i386/i386.h (TARGET_HASWELL): New macro.
	(target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
	(processor_type): New PROCESSOR_HASWELL.

2013-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55955
	* tree-vect-loop.c (vectorizable_reduction): Give up early on
	*SHIFT_EXPR and *ROTATE_EXPR codes.

	PR tree-optimization/48766
	* opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
	-ftrapv disable -fwrapv.

2013-01-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/55974
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
	etc. to 1 and not to __flash.
	Use LL suffix for __INT24_MAX__ with -mint8.
	Use ULL suffix for __UINT24_MAX__ with -mint8.

2013-01-14  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-arch.h
	(struct base_arch_s): Use typedef avr_arch_t instead.
	(struct arch_info_s): Use typedef avr_arch_info_t instead.
	(struct mcu_type_s): Use typedef avr_mcu_t instead.
	* config/avr/avr.c: Same.
	* config/avr/avr-devices.c: Same.
	* config/avr/driver-avr.c: Same.
	* config/avr/gen-avr-mmcu-texi.c: Same.
	* config/avr/avr-mcus.def: Adjust comment.

2013-01-14  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
	* config/aarch64/iterators.md (VALLDI): New.

2013-01-14  Uros Bizjak  <ubizjak@gmail.com>
	    Andi Kleen  <ak@linux.intel.com>

	PR target/55948
	* config/i386/sync.md (atomic_store<mode>_1): New pattern.
	(atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
	memmodel flag.

2013-01-14  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-stdint.h: Remove trailing blanks.
	* config/avr/avr-log.h: Same.
	* config/avr/avr-arch.h: Same.
	* config/avr/avr-devices.c: Same.
	* config/avr/avr-dimode.md: Same.
	* config/avr/predicates.md: Same.
	* config/avr/avr-c.c: Same.  And fix typo.

	* config/avr/avr-protos.h: Same.  And:
	(function_arg_regno_p): Rename to avr_function_arg_regno_p.
	(init_cumulative_args): Rename to avr_init_cumulative_args.
	(expand_prologue): Rename to avr_expand_prologue.
	(expand_epilogue): Rename to avr_expand_epilogue.
	(adjust_insn_length): Rename to avr_adjust_insn_length.
	(notice_update_cc): Rename to avr_notice_update_cc.
	(final_prescan_insn): Rename to avr_final_prescan_insn.
	* config/avr/avr.c: Same.
	* config/avr/avr.h: Same.
	* config/avr/avr.md: Remove trailing blanks.
	(prologue): Use avr_expand_prologue.
	(epilogue, sibcall_epilogue): Use avr_expand_epilogue.

2013-01-14  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_expr_location, verify_expr_location_1,
	verify_location, collect_subblocks): New functions.
	(verify_gimple_in_cfg): Verify that locations only reference
	BLOCKs in the functions BLOCK tree.

2013-01-14  Richard Biener  <rguenther@suse.de>

	* tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
	PHI argument.
	* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
	unshare reference.
	(insert_out_of_ssa_copy_on_edge): Likewise.
	(rewrite_close_phi_out_of_ssa): Likewise.
	* tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
	debug expressions.
	* tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
	propagated constants.
	* tree-cfg.c (tree_node_can_be_shared): Handled component-refs
	can not be shared.

2013-01-14  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-modes.def: Add GPL copyright notice.

2013-01-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (mem_thread_fence): Mask operands[0] with
	MEMMODEL_MASK to determine memory model.
	(atomic_store<mode>): Ditto from operands[2].
	* config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.

2013-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/55935
	* gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
	(fold_gimple_assign): Don't call unshare_expr here.
	(fold_ctor_reference): Call unshare_expr.

2013-01-13  Terry Guo  <terry.guo@arm.com>

	* Makefile.in (s-mlib): New argument MULTILIB_REUSE.
	* doc/fragments.texi: Document MULTILIB_REUSE.
	* gcc.c (multilib_reuse): New internal spec.
	(set_multilib_dir): Also search multilib from multilib_reuse.
	* genmultilib (tmpmultilib3): Refactor code.
	(tmpmultilib4): Ditto.
	(multilib_reuse): New multilib argument.

2013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in: Update copyright.

2013-01-12  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/55890
	* calls.c (expand_call): Check if arg_nr is valid.

2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (X86 Built-in Functions): Add whitespace in
	__builtin_ia32_paddb256 and __builtin_ia32_pavgb256
	documentation.  Add missing '__' in front of
	__builtin_ia32_packssdw256.

2013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/55719
	* config/s390/s390.c (s390_preferred_reload_class): Do not return
	NO_REGS for larl operands.
	(s390_reload_larl_operand): Use s390_load_address instead of
	emit_move_insn.

2013-01-11  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_node_sharing_1): Split out from ...
	(verify_node_sharing): ... here.
	(verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.

2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
	Substitute TREECHECKING.
	* configure: Regenerate.
	* Makefile.in (TREECHECKING): New.

2013-01-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44061
	* tree-vrp.c (extract_range_basic): Compute zero as
	value-range for __builtin_constant_p of function parameters.

2013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years.

2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55672
	* lra-eliminations.c (mark_not_eliminable): Permit addition with
	const to be eliminable.

2013-01-10  David Edelsohn  <dje.gcc@gmail.com>

	* configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
	* configure: Regenerate.

2013-01-10  Richard Biener  <rguenther@suse.de>

	* builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.

2013-01-10  Richard Biener  <rguenther@suse.de>

	PR bootstrap/55792
	* tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
	locations for virtual PHI arguments.
	(rewrite_update_phi_arguments): Likewise.

2013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>

	* config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
	on to assembler.

2013-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55921
	* tree-complex.c (expand_complex_asm): New function.
	(expand_complex_operations_1): Call it for GIMPLE_ASM.

2013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/55718
	* config/s390/s390.c (s390_symref_operand_p)
	(s390_loadrelative_operand_p): Merge the two functions.
	(s390_check_qrst_address, print_operand_address): Add parameters
	to s390_loadrelative_operand_p invokation.
	(s390_check_symref_alignment): Use s390_loadrelative_operand_p.
	(s390_reload_larl_operand, s390_secondary_reload): Use
	s390_loadrelative_operand_p instead of s390_symref_operand_p.
	(legitimize_pic_address): Handle @GOTENT and @PLT + addend.

2013-01-09  Mike Stump  <mikestump@comcast.net>

	* dse.c (record_store): Remove unnecessary assert.

2013-01-09  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/55569
	* cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
	* cfgloop.h (scale_loop_profile): Likewise.

2013-01-09  Jan Hubicka  <jh@suse.cz>

	PR lto/45375
	* ipa-inline.c (ipa_inline): Remove extern inlines and virtual
	functions.
	* cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.

2013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/55114
	* expr.h (maybe_emit_group_store): Declare.
	* expr.c (maybe_emit_group_store): New function.
	* builtins.c (expand_builtin_int_roundingfn): Call it.
	(expand_builtin_int_roundingfn_2): Likewise.

2013-01-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55829
	* lra-constraints.c (match_reload): Add code for absent output.
	(curr_insn_transform): Add code for reloads of matched inputs
	without output.

2013-01-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_interleave_highv2df): Change mode
	attribute of movddup insn to DF.
	(*vec_interleave_lowv2df): Ditto.
	(vec_dupv2df): Ditto.

2013-01-09  Jan Hubicka  <jh@suse.cz>

	PR tree-optimiation/55875
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Add
	EVERY_ITERATION parameter.
	(number_of_iterations_exit): Check if exit is executed every iteration.
	(idx_infer_loop_bounds): Similarly here.
	(n_of_executions_at_most): Simplify
	to only test for cases where statement is dominated by the
	particular bound; handle correctly the "postdominance" test.
	(scev_probably_wraps_p): Use max loop iterations info
	as a global bound first.

2013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.md (cbranchsf4): New pattern.
	(cstoresf4): New pattern.
	(cbranchdf4): New pattern.
	(cstoredf4): New pattern.
	(movsicc): Disallow floating point comparisons.
	(cmpsf_le_insn): Fix order of operators.
	(cmpsf_lt_insn): Likewise.
	(cmpsf_eq_insn): Likewise.
	(cmpdf_le_insn): Likewise.
	(cmpdf_lt_insn): Likewise.
	(cmpdf_eq_insn): Likewise.
	(cmpsf_ge_insn): Use LE comparison.
	(cmpdf_ge_insn): Likewise.
	(cmpsf_gt_insn): Use LT comparison.
	(cmpdf_gt_insn): Likewise.
	(cmpsf_ne_insn): Delete pattern.
	(cmpdf_ne_insn): Delete pattern.
	* config/v850/v850.c (v850_gen_float_compare): Use
	gen_cmpdf_eq_insn for NE comparison.
	(v850_float_z_comparison_operator)
	(v850_float_nz_comparison_operator): Move from here ...
	* config/v850/predicates.md: ... to here.  Move GT and GE
	comparisons into v850_float_z_comparison_operator.
	* config/v850/v850-protos.h (v850_float_z_comparison_operator):
	Delete prototype.
	(v850_float_nz_comparison_operator): Likewise.

2013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
	with calls to gen_insvsi/gen_insvdi.

2013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/i386.c (initial_ix86_tune_features): Set up
	X86_TUNE_AVX128_OPTIMAL for m_BTVER2.

2013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48189
	* predict.c (predict_loops): If max is 0, don't call compare_tree_int.
	If nitercst is 0, don't predict the exit edge.

2013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
	in asm_fprintf with reg_names.
	(aarch64_print_operand_address): Likewise.
	(aarch64_return_addr): Likewise.
	* config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.

2013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.h (VAL_U6_BITS_P): Define.
	(INT_U6_BITS): Likewise.
	* config/pa/predicates.md (uint6_operand): New predicate.
	(shift5_operand, shift6_operand): Likewise.
	* config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
	arith32_operand.
	(lshrdi3): Use shift6_operand.
	(shrpsi4, shrpdi4): New insn patterns.
	(extzv): Delete expander.
	(extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
	predicates in unamed zero extract patterns.  Tighten common constraint.
	(extv): Delete expander.
	(extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
	predicates in unamed sign extract patterns.  Tighten common constraint.
	(insv): Delete expander.
	(insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
	predicates in unamed insert patterns.  Tighten common constraint.
	Change uint32_operand predicate to uint6_operand predicate in unamed
	DImode pattern to insert constant values of type 1...1xxxx.

2013-01-04  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/55823
	* ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
	issue.

2013-01-08  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/55845
	* df-problems.c (can_move_insns_across): Stop scanning at
	volatile_insn_p source instruction or give up if
	across_from .. across_to range contains any volatile_insn_p
	instructions.

2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-simd.md (vec_init<mode>): New.
	* config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
	Declare.
	* config/aarch64/aarch64.c (aarch64_simd_dup_constant,
	aarch64_simd_make_constant, aarch64_expand_vector_init): New.

2013-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/55341
	* asan.c (asan_clear_shadow): New function.
	(asan_emit_stack_protection): Use it.

2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
	aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
	with tab instead of space.

2013-01-08  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_expand_prologue): Always select
	register bank 0 at the start of an interrupt handler.
	* config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
	MDBH registers.

2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_simd_bsl<mode>_internal): Add floating-point modes.
	(aarch64_simd_bsl): Likewise.
	(aarch64_vcond_internal<mode>): Likewise.
	(vcond<mode><mode>): Likewise.
	(aarch64_cm<cmp><mode>): Fix constraints, add new modes.
	* config/aarch64/iterators.md (V_cmp_result): Add V2DF.

2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.

2013-01-08  Martin Jambor  <mjambor@suse.cz>

	PR debug/55579
	* tree-sra.c (analyze_access_subtree): Return true also after
	potentially creating a debug-only replacement.

2013-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/55890
	* tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.

	PR tree-optimization/54120
	* tree-vrp.c (range_fits_type_p): Don't allow
	src_precision < precision from signed vr to unsigned_p
	if vr->min or vr->max is negative.
	(simplify_float_conversion_using_ranges): Test can_float_p
	against CODE_FOR_nothing.

2013-01-08  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenther@suse.de>

	PR middle-end/55851
	* fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
	types instead of just INTEGER_TYPE types.

2013-01-07  Mark Kettenis  <kettenis@openbsd.org>

	* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
	TF_SIZE): Define.

2013-01-07  Steve Ellcey  <sellcey@mips.com>

	PR target/42661
	* config/mips/mips.opt: Change mad to mmad to match documentation.

2013-01-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/55897
	* doc/extend.texi (AVR Named Address Spaces): __memx goes into
	.progmemx.data now.

2013-01-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/55897
	* config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
	(avr_addrspace_t): Add .section_name field.
	* config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
	array size.
	(avr_addrspace): Same.  Initialize .section_name.  Remove last
	NULL entry.  Put __memx into .progmemx.data.
	(progmem_section_prefix): Remove.
	(avr_asm_init_sections): No need to initialize progmem_section.
	(avr_asm_named_section): Use avr_addrspace[].section_name to get
	section name prefix.
	(avr_asm_select_section): Ditto.  And use get_unnamed_section to
	retrieve the progmem section.
	* avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
	boundary to run over avr_addrspace[].
	(avr_register_target_pragmas): Ditto.

2013-01-06  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (output_constant_def_contents): For asan_protect_global
	protected strings, adjust DECL_ALIGN if needed, before testing for
	anchored symbols.
	(place_block_symbol): Adjust size for asan protected STRING_CSTs if
	TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
	normal decls.
	(output_object_block): For asan protected decls, emit asan padding
	after their contents.
	* asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
	(asan_finish_file): Test it here instead.

2013-01-07  Nick Clifton  <nickc@redhat.com>
	    Matthias Klose  <doko@debian.org>
	    Doug Kwan  <dougkwan@google.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/55470
	* collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.

	* common.opt: Add fuse-ld=bfd and fuse-ld=gold.

	* gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.

	* opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.

	* doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.

2013-01-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54461
	* doc/install.texi (Cross-Compiler-Specific Options): Document
	--with-avrlibc.

2013-01-07  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
	vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
	vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
	vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
	vqmovun_high_s64): Fix source operand number and update copyright.

2013-01-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/55890
	* gimple.h (gimple_call_builtin_p): New overload.
	* gimple.c (validate_call): New function.
	(gimple_call_builtin_p): Likewise.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	Use gimple_call_builtin_p.
	(find_func_clobbers): Likewise.
	* tree-ssa-strlen.c (adjust_last_stmt): Likewise.
	(strlen_optimize_stmt): Likewise.

2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
	(vld1q_dup_*): Likewise.
	(vld1_*): Likewise.
	(vld1q_*): Likewise.
	(vld1_lane_*): Likewise.
	(vld1q_lane_*): Likewise.

2013-01-07  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_minor_version): Bump to 2.

2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_const_double_zero_rtx_p): Rename to...
	(aarch64_float_const_zero_rtx_p): ...this.
	(aarch64_float_const_representable_p): New.
	(aarch64_output_simd_mov_immediate): Likewise.
	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
	move immediate case.
	* config/aarch64/aarch64.c
	(aarch64_const_double_zero_rtx_p): Rename to...
	(aarch64_float_const_zero_rtx_p): ...this.
	(aarch64_print_operand): Allow printing of new constants.
	(aarch64_valid_floating_const): New.
	(aarch64_legitimate_constant_p): Check for valid floating-point
	constants.
	(aarch64_simd_valid_immediate): Likewise.
	(aarch64_vect_float_const_representable_p): New.
	(aarch64_float_const_representable_p): Likewise.
	(aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
	(aarch64_output_simd_mov_immediate): New.
	* config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
	(*movdf_aarch64): Likewise.
	* config/aarch64/constraints.md (Ufc): New.
	(Y): call aarch64_float_const_zero_rtx.
	* config/aarch64/predicates.md (aarch64_fp_compare_operand): New.

2013-01-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55888
	PR tree-optimization/55862
	* tree-ssa-pre.c (phi_translate_1): Revert previous change.
	(valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
	not if it is contained therein.

2013-01-07  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr: Typo.

2013-01-07  Georg-Johann Lay  <avr@gjlay.de>

	PR55243
	* config/avr/t-avr: Don't automatically rebuild
	$(srcdir)/config/avr/t-multilib
	$(srcdir)/config/avr/avr-tables.opt
	$(srcdir)/doc/avr-mmcu.texi
	(avr-mcus): New phony target to build them on request.
	(s-avr-mlib, s-avr-mmcu-texi): Remove.
	* avr/avr-mcus.def: Adjust comments.

2013-01-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.

2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.

2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/tilepro/gen-mul-tables.cc: Put copyright on one line.

2013-01-05  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
	to generate profiling.
	* config/rs6000/aix64.h (LIB_SPEC): Same.

2013-01-04  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
	New function.
	(TARGET_FIXED_CONDITION_CODE_REGS): Define.

2013-01-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
	unconditionally.
	(ix86_expand_move): Ditto.
	(ix86_zero_extend_to_Pmode): Ditto.
	(ix86_expand_call): Ditto.
	(ix86_expand_special_args_builtin): Ditto.
	(ix86_expand_builtin): Ditto.

2013-01-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55862
	* tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
	translating them through PHI nodes.

2013-01-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55755
	* tree-sra.c (sra_modify_assign): Do not check that an access has no
	children when trying to avoid producing a VIEW_CONVERT_EXPR.

2013-01-04  Marek Polacek  <polacek@redhat.com>

	PR middle-end/55859
	* opts.c (default_options_optimization): Clarify error message.

2013-01-04  Richard Biener  <rguenther@suse.de>

	PR middle-end/55863
	* fold-const.c (split_tree): Undo -X - 1 to ~X folding for
	reassociation.

2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/53789
	* config/pa/pa.md (movsi): Revert previous change.
	* config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
	references.

2013-01-03  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_move): Always assign to op1
	after eliminating TLS symbols.

2013-01-03  Marc Glisse  <marc.glisse@inria.fr>

	PR bootstrap/50167
	* graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
	* graphite-poly.c (debug_gmp_value): Likewise.

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

	PR target/55712
	* config/i386/i386-c.c (ix86_target_macros_internal): Depending on
	selected code model, define __code_mode_small__, __code_model_medium__,
	__code_model_large__, __code_model_32__ or __code_model_kernel__.
	* config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
	xchg temporary register with %k.  Declare temporary register as
	early clobbered.
	[__x86_64__]: For medium and large code models, preserve %rbx register.

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

	* tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
	(dump_subscript): Adjust.
	(finalize_ddr_dependent): Do not dump redundant info.
	(analyze_siv_subscript): Adjust.
	(subscript_dependence_tester): Likewise.
	(compute_affine_dependence): Likewise.

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

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

	PR tree-optimization/55857
	* tree-vect-stmts.c (vectorizable_load): Do not setup
	re-alignment for invariant loads.

	2013-01-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): When vectorizing an
	invariant load do not generate a vector load from the scalar location.

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

	* tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
	for not vectorizing.
	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
	not build INDIRECT_REFs, call get_name once only.
	(vect_create_data_ref_ptr): Likewise.  Dump base object kind
	based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.

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

	PR tree-optimization/55857
	* tree-vect-stmts.c (vectorizable_load): Do not setup
	re-alignment for invariant loads.

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

	PR lto/55848
	* lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
	prefer a built-in decl.

2013-01-03  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (process_command): Update copyright notice dates.
	* gcov.c (print_version): Likewise.
	* gcov-dump.c (print_version): Likewise.

	PR rtl-optimization/55838
	* loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
	iv0.step, iv1.step and step.

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

	PR tree-optimization/55832
	* fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
	ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
	integer_{one,zero}_node.

2013-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/54402
	* params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
	* var-tracking.c (reverse_op): Don't add reverse ops to
	VALUEs that have already
	PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.

2013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi: Note years as release manager for Mark Mitchell.

2013-01-02  Teresa Johnson  <tejohnson@google.com>

	* dumpfile.c (dump_loc): Print filename with location.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
	new location_t parameter to emit complete unroll message with
	new dump framework.
	(canonicalize_loop_induction_variables): Compute loops location
	and pass to try_unroll_loop_completely.
	* loop-unroll.c (report_unroll_peel): New function.
	(peel_loops_completely): Use new dump format with location
	for main dumpfile message, and invoke report_unroll_peel on success.
	(decide_unrolling_and_peeling): Ditto.
	(decide_peel_once_rolling): Remove old dumpfile message subsumed
	by report_unroll_peel.
	(decide_peel_completely): Ditto.
	(decide_unroll_constant_iterations): Ditto.
	(decide_unroll_runtime_iterations): Ditto.
	(decide_peel_simple): Ditto.
	(decide_unroll_stupid): Ditto.
	* cfgloop.c (get_loop_location): New function.
	* cfgloop.h (get_loop_location): Declare.

2013-01-02  Sriraman Tallam  <tmsriram@google.com>

	* config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
	NULL.

2013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/55198
	* expr.c (expand_expr_real_1): Don't use bitfield extraction for non
	BLKmode objects when EXPAND_MEMORY is specified.

2013-01-02  Sriraman Tallam  <tmsriram@google.com>

	* config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
	in loop predicate.
	(fold_builtin_cpu): Do not share cpu model decls across statements.

2013-01-02  Jason Merrill  <jason@redhat.com>

	PR c++/55804
	* tree.c (build_array_type_1): Revert earlier change.

2013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
	"cortex-a57".
	* config/aarch64/aarch64-tune.md: Re-generate.

2013-01-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): When vectorizing an
	invariant load do not generate a vector load from the scalar location.

2013-01-02  Richard Biener  <rguenther@suse.de>

	PR bootstrap/55784
	* configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
	* configure: Regenerate.

2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
	(expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
	(expand_builtin_int_roundingfn_2): Keep the original target around
	for the fallback case.

2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
	to be clear for sign changes.

2013-01-01  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c: Fix formatting.

2013-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55831
	* tree-vect-loop.c (get_initial_def_for_induction): Use
	gsi_after_labels instead of gsi_start_bb.

Copyright (C) 2013 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
