2012-10-09  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	GCC Linaro 4.7-2012.10 released.

	gcc/
	* LINARO-VERSION: Update.

2012-10-05  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	Merge from fsf gcc arm/aarch64-4.7-branch
	(svn branches/arm/aarch64-4.7-branch 192093).

2012-10-03  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	Merge from fsf gcc arm/aarch64-4.7-branch
	(svn branches/arm/aarch64-4.7-branch 191926).

2012-10-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	LP: #1053348
	Re-merge binary files from GCC 4.7:

	libgo/
	* go/archive/zip/testdata/r.zip: Remove.
	* go/archive/zip/testdata/crc32-not-streamed.zip: New file.
	* go/archive/zip/testdata/go-no-datadesc-sig.zip: Likewise.
	* go/archive/zip/testdata/go-with-datadesc-sig.zip: Likewise.
	* go/debug/dwarf/testdata/typedef.elf: Update.
	* go/debug/dwarf/testdata/typedef.macho: Likewise.

2012-10-01  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	Merge from FSF GCC 4.7.2 (svn branches/gcc-4_7-branch 191881).

2012-09-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Backport from mainline:

	gcc/
	2012-09-17  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set
	patterns.
	* config/arm/arm.md ("vec_set<mode>_internal"): Support memory source
	operands, implemented via vld1 instruction.
	("vec_extract<mode>"): Support memory destination operands, implemented
	via vst1 instruction.
	("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select.
	* config/arm/predicates.md ("neon_lane_number"): Remove.

2012-09-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Backport from mainline:

	gcc/
	2012-09-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
		    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (output_move_neon): Update comment.
	Use vld1.64/vst1.64 instead of vldm/vstm where possible.
	(neon_vector_mem_operand): Support double-word modes.
	* config/arm/neon.md (*neon_mov VD): Call output_move_neon
	instead of output_move_vfp.  Change constraint from Uv to Un.

2012-09-12  Michael Hope  <michael.hope@linaro.org>

	gcc/
	* LINARO-VERSION: Bump version.

2012-09-12  Michael Hope  <michael.hope@linaro.org>

	GCC Linaro 4.7-2012.09 released.

	gcc/
	* LINARO-VERSION: Update.

2012-09-11  Michael Hope  <michael.hope@linaro.org>

	Merge from FSF GCC 4.7.1 (svn branches/gcc-4_7-branch 191123).

2012-09-11  Michael Hope  <michael.hope@linaro.org>

	LP: #1046999
	Revert:

	gcc/
	2012-08-17  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
	* arm.c (thumb2_reorg): Don't convert an ADD instruction that's
	already 16 bits.

	Backport from mainline r190530:

	gcc/testsuite/
	2012-08-20  Richard Earnshaw  <rearnsha@arm.com>

	* gcc.target/arm/thumb-16bit-ops.c (f): This test uses a 16-bit
	add instruction.
	(f2): New test that really does need adds.

2012-09-05  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline r190911:

	2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/
	* config/arm/arm.c (arm_evpc_neon_vext): New function.
        (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext.

        gcc/testsuite/
        * gcc.target/arm/neon-vext.c: New test.
        * gcc.target/arm/neon-vext-execute.c: Ditto.

2012-09-04  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r189610:

	2012-07-18  Andrew Stubbs  <ams@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	gcc/
	* config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
	(*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
	(*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
	(*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
	neon_type.
	* config/arm/arm.md (neon_type): Update comment.

2012-08-27  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r190472:

	gcc/
	2012-08-17  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
	* arm.c (thumb2_reorg): Don't convert an ADD instruction that's
	already 16 bits.

	Backport from mainline r190530:

	gcc/testsuite/
	2012-08-20  Richard Earnshaw  <rearnsha@arm.com>

	* gcc.target/arm/thumb-16bit-ops.c (f): This test uses a 16-bit
	add instruction.
	(f2): New test that really does need adds.

2012-08-06  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r190088:

	gcc/
	2012-08-02  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_gen_constant): Use UBFX for some AND operations when
	available.

	Backport from mainline r190143:

	gcc/
	2012-08-04  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_gen_constant): Use SImode when preparing operands for
	gen_extzv_t2.

2012-08-13  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	gcc/
	* LINARO-VERSION: Bump version.

2012-08-13  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	GCC Linaro 4.7-2012.08 released.

	gcc/
	* LINARO-VERSION: Update.

2012-08-10  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Backport from mainline:

	gcc/
	2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
		    Richard Earnshaw  <rearnsha@arm.com>

	* target.def (vector_alignment): New target hook.
	* doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_vector_alignment): New function.
	* targhooks.h (default_vector_alignment): Add prototype.
	* stor-layout.c (layout_type): Use targetm.vector_alignment.
	* config/arm/arm.c (arm_vector_alignment): New function.
	(TARGET_VECTOR_ALIGNMENT): Define.

	* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
	vector type alignment instead of size.
	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
	element type size directly instead of computing it from alignment.
	Fix variable naming and comment.

	gcc/testsuite/
	2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* lib/target-supports.exp
	(check_effective_target_vect_natural_alignment): New function.
	* gcc.dg/align-2.c: Only run on targets with natural alignment
	of vector types.
	* gcc.dg/vect/slp-25.c: Adjust tests for targets without natural
	alignment of vector types.

2012-08-01  Michael Hope  <michael.hope@linaro.org>

	Merge from FSF GCC 4.7.1 (svn branches/gcc-4_7-branch 189992).

2012-07-26  Ulrich Weigand  <ulrich.weigand@linaro.org>

	LP 1020601

	Backport from mainline:

	2012-07-16  Ulrich Weigand  <ulrich.weigand@linaro.org>

	gcc/
	* tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
	before calling gsi_stmt.

	2012-07-06  Tom de Vries  <tom@codesourcery.com>
		    Richard Guenther  <rguenther@suse.de>

	gcc/
	* tree-ssa-ccp.c (optimize_unreachable): New function.
	(execute_fold_all_builtins): Use optimize_unreachable to optimize
	BUILT_IN_UNREACHABLE.  Don't optimize after BUILT_IN_UNREACHABLE.

	gcc/testsuite/
	* gcc.dg/builtin-unreachable-6.c: New test.
	* gcc.dg/builtin-unreachable-5.c: New test.

2012-05-04  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r189611:

	gcc/
	2012-07-18  Jie Zhang  <jzhang918@gmail.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Adjust cost for
	CONST_VECTOR.
	(arm_size_rtx_costs): Likewise.
	(neon_valid_immediate): Add a case for double 0.0.

	gcc/testsuite/
	2012-07-18  Jie Zhang  <jzhang918@gmail.com>
	    Julian Brown  <julian@codesourcery.com>

	* gcc.target/arm/neon-vdup-1.c: New test case.
	* gcc.target/arm/neon-vdup-2.c: New test case.
	* gcc.target/arm/neon-vdup-3.c: New test case.
	* gcc.target/arm/neon-vdup-4.c: New test case.
	* gcc.target/arm/neon-vdup-5.c: New test case.
	* gcc.target/arm/neon-vdup-6.c: New test case.
	* gcc.target/arm/neon-vdup-7.c: New test case.
	* gcc.target/arm/neon-vdup-8.c: New test case.
	* gcc.target/arm/neon-vdup-9.c: New test case.
	* gcc.target/arm/neon-vdup-10.c: New test case.
	* gcc.target/arm/neon-vdup-11.c: New test case.
	* gcc.target/arm/neon-vdup-12.c: New test case.
	* gcc.target/arm/neon-vdup-13.c: New test case.
	* gcc.target/arm/neon-vdup-14.c: New test case.
	* gcc.target/arm/neon-vdup-15.c: New test case.
	* gcc.target/arm/neon-vdup-16.c: New test case.
	* gcc.target/arm/neon-vdup-17.c: New test case.
	* gcc.target/arm/neon-vdup-18.c: New test case.
	* gcc.target/arm/neon-vdup-19.c: New test case.
	* gcc.target/arm/neon-combine-sub-abs-into-vabd.c: Make intrinsic
	arguments non-constant.

2012-07-24  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r186859:

	gcc/
	2012-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Steven Bosscher  <steven@gcc.gnu.org>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR tree-optimization/38785
	* common.opt (ftree-partial-pre): New option.
	* doc/invoke.texi: Document it.
	* opts.c (default_options_table): Initialize flag_tree_partial_pre.
	* tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
	benefit speed path.
	(execute_pre): Use flag_tree_partial_pre.

2012-07-02  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r189102:

	gcc/
	2012-07-01  Wei Guozhi  <carrot@google.com>

	PR target/53447
	* config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
	* config/arm/arm.c (const_ok_for_dimode_op): New function.
	* config/arm/constraints.md (Dd): New constraint.
	* config/arm/predicates.md (arm_adddi_operand): New predicate.
	* config/arm/arm.md (adddi3): Extend it to handle constants.
	(arm_adddi3): Likewise.
	(addsi3_carryin_<optab>): Extend it to handle sbc case.
	(addsi3_carryin_alt2_<optab>): Likewise.
	* config/arm/neon.md (adddi3_neon): Extend it to handle constants.

	gcc/testsuite/
	2012-07-01  Wei Guozhi  <carrot@google.com>

	PR target/53447
	* gcc.target/arm/pr53447-1.c: New testcase.
	* gcc.target/arm/pr53447-2.c: New testcase.
	* gcc.target/arm/pr53447-3.c: New testcase.
	* gcc.target/arm/pr53447-4.c: New testcase.

2012-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	gcc/
	* LINARO-VERSION: Bump version.

2012-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	GCC Linaro 4.7-2012.07 released.

	gcc/
	* LINARO-VERSION: Update.

2012-07-02  Michael Hope  <michael.hope@linaro.org>

	Merge from FSF (GCC SVN branches/gcc-4_7-branch:189098)

2012-06-29  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Backport from mainline:

	gcc/
	PR tree-optimization/53729
	PR tree-optimization/53636
	* tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
	vect_verify_datarefs_alignment until after statements have
	been marked as relevant/irrelevant.
	* tree-vect-data-refs.c (vect_verify_datarefs_alignment):
	Skip irrelevant statements.
	(vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
	instead of STMT_VINFO_RELEVANT.
	(vect_get_data_access_cost): Do not check for supportable
	alignment before calling vect_get_load_cost/vect_get_store_cost.
	* tree-vect-stmts.c (vect_get_store_cost): Do not abort when
	handling unsupported alignment.
	(vect_get_load_cost): Likewise.

2012-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	gcc/
	* tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
	Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
	USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
	* config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
	(USE_LOAD_POST_INCREMENT): Define.
	(USE_LOAD_PRE_INCREMENT): Define.
	(USE_LOAD_POST_DECREMENT): Define.
	(USE_LOAD_PRE_DECREMENT): Define.
	(USE_STORE_PRE_DECREMENT): Define.
	(USE_STORE_PRE_INCREMENT): Define.
	(USE_STORE_POST_DECREMENT): Define.
	(USE_STORE_POST_INCREMENT): Define.
	(enum arm_auto_incmodes): New.
	* config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
	* config/arm/arm.c (arm_autoinc_modes_ok_p): Define.

2012-06-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	LP 1010826

	Backport from mainline:

	gcc/
	PR tree-optimization/53636
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
	stride when doing basic-block vectorization.

	gcc/testsuite/
	PR tree-optimization/53636
	* gcc.target/arm/pr53636.c: New test.

2012-06-14  Michael Hope  <michael.hope@linaro.org>

	gcc/
	* LINARO-VERSION: Bump version.

2012-06-12  Michael Hope  <michael.hope@linaro.org>

	GCC Linaro 4.7-2012.06 released.

	gcc/
	* LINARO-VERSION: Update.

2012-06-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	For Andrew Stubbs.
        2012-05-31  Andrew Stubbs  <ams@codesourcery.com>
	Merge from FSF (GCC SVN branches/gcc-4_7-branch:188038)

2012-06-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	Backport from mainline:
	gcc/
	2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config.gcc (target_type_format_char): New. Document it. Set it for
        arm*-*-* .

2012-06-04  Zhenqiang Chen <zhenqiang.chen@linaro.org>

	Backport from mainline r187327 and r187323

	gcc/
	2012-05-09  Terry Guo  <terry.guo@arm.com>
	* genmultilib: Update copyright dates.
	* doc/fragments.texi: Ditto.

	2012-05-09  Terry Guo  <terry.guo@arm.com>
	* Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
	* genmultilib (MULTILIB_REQUIRED): New.
	* doc/fragments.texi: Document the MULTILIB_REQUIRED.

2012-05-26  Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>

	gcc/
	* config/arm/arm.c (arm_evpc_neon_vrev): Fix off by one
	error and make sure we generate vrev instructions.
	gcc/testsuite
	* gcc.target/arm/neon-vrev.c: New.

2012-05-23  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	LP:990530
	gcc/
        2012-03-12  Richard Guenther  <rguenther@suse.de>
	* config/arm/arm.c (neon_dereference_pointer): Do not call
	covert during RTL expansion.

2012-05-18  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline:

	2012-05-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
	prototype.
	* config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
	* config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
	(ashrdi3,lshrdi3): Likewise.
	(arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.

2012-05-15  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* LINARO-VERSION: Bump version.

2012-05-15  Andrew Stubbs  <ams@codesourcery.com>

	GCC Linaro 4.7-2012.05 released.

	gcc/
	* LINARO-VERSION: Update.

2012-05-15  Andrew Stubbs  <ams@codesourcery.com>

	Merge from FSF (GCC SVN branches/gcc-4_7-branch:187448)

2012-05-08  Ulrich Weigand  <ulrich.weigand@linaro.org>

	LP 959242

	Backport from mainline:

	gcc/
	PR tree-optimization/52633
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
	vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
	(vect_recog_over_widening_pattern): Remove handling of code that was
	already detected as over-widening pattern.  Remove special handling
	of "unsigned" cases.  Instead, support general case of conversion
	of the shift result to another type.

	gcc/testsuite/
	PR tree-optimization/52633
	* gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be
	recognized as widening shifts instead of over-widening.
	* gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
	* gcc.target/arm/pr52633.c: New test.

	gcc/
	* tree-vect-patterns.c (vect_single_imm_use): New function.
	(vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Likewise.

	gcc/
	* tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
	(vect_handle_widen_op_by_const): Use it instead of open-coding test.
	(vect_recog_widen_mult_pattern): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.

2012-05-04  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r186859:

	gcc/
	2012-04-26  Michael Hope  <michael.hope@linaro.org>
		    Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
	(GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
	(GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
	(GLIBC_DYNAMIC_LINKER):	Redefine to use the hard float path.

	Backport from mainline r187012:

	gcc/
	2012-05-01  Richard Earnshaw  <rearnsha@arm.com>

	* arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
	comparing enumeration values.  Update comments.

2012-04-30  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.md (negdi2): Use gen_negdi2_neon.
	* config/arm/neon.md (negdi2_neon): New insn.
	Also add splitters for core and NEON registers.

2012-04-30  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (neon_valid_immediate): Allow const_int.
	(arm_print_operand): Add 'x' format.
	* config/arm/constraints.md (Dn): Allow const_int.
	* config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
	Use 'x' format to print constants.
	* config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
	* config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
	is enabled.
	(movdi_vfp_cortexa8): Likewise.

2012-04-13  Ulrich Weigand  <ulrich.weigand@linaro.org>

	LP 968766

	Backport from mainline:

	gcc/
	PR tree-optimization/52870
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
	presumed pattern statement is within the same loop or basic block.

	gcc/testsuite/
	PR tree-optimization/52870
	* gcc.dg/vect/pr52870.c: New test.

2012-04-10  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* LINARO-VERSION: Bump version.

2012-04-10  Andrew Stubbs  <ams@codesourcery.com>

	GCC Linaro 4.7-2012.04 released.

	gcc/
	* LINARO-VERSION: New file.
	* configure.ac: Add Linaro version string.
	* configure: Regenerate.

2012-04-05  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline r186167:
	
	2012-04-05  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
	(arch_enabled): Handle new arch types.
	(one_cmpldi2): Add NEON support.

2012-04-02  Andrew Stubbs  <ams@codesourcery.com>

	Merge from FSF (GCC SVN branches/gcc-4_7-branch:186061)

2012-04-04  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline r185855:
	
	2012-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* gcc.target/arm/thumb-ifcvt.c: Only run for -mthumb.
	* gcc.target/arm/thumb-16bit-ops.c: Likewise.

2012-03-26  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r185702:

	libcpp/
	2012-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* lex.c (search_line_fast): Provide Neon-optimized version for ARM.

2012-03-23  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r184957:

	libgcc/
	2012-03-05  Richard Henderson  <rth@redhat.com>

	* longlong.h [ARM] (umul_ppmm): Use umull for arm3m and later.
	[ARM] (count_trailing_zeros): Use the builtin.

	Backport from mainline r185202:

	2012-03-11  Michael Hope  <michael.hope@linaro.org>

	* longlong.h [ARM] (add_ssaaaa, sub_ddmmss, umul_ppmm): Enable
	for Thumb-2.

	Backport from mainline r185698:

	2012-03-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm/lib1funcs.asm (ctzsi2): New function.
	* arm/t-elf (LIB1ASMFUNCS): Add _ctzsi2.
	* arm/t-linux (LIB1ASMFUNCS): Likewise.
	* arm/t-strongarm-elf (LIB1ASMFUNCS): Likewise.
	* arm/t-symbian (LIB1ASMFUNCS): Likewise.
	* arm/t-vxworks (LIB1ASMFUNCS): Likewise.
	* arm/t-wince-pe (LIB1ASMFUNCS): Likewise.

2012-03-23  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r185603:

	gcc/
	2012-03-20  Richard Earnshaw  <rearnsha@arm.com>

	* arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
	* arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
	reg_or_zero_operand predicate.
	(neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.

2012-03-23  Michael Hope  <michael.hope@linaro.org>

	Backport from mainline r185603:

	gcc/
	2012-03-21  Richard Earnshaw  <rearnsha@arm.com>

	* neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
	* config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
	All callers changed.
	(Fixed_core_reg): New feature.
	(Vget_lane [sizes S64 and U64]): Add Fixed_core_reg.  Allow fmrrd in
	disassembly.
	* neon-testgen.ml: Handle Fixed_core_reg.

	gcc/testsuite/
	* gcc.target/arm/neon/vgetQ_laneu64.c: Regenerated.
	* gcc.target/arm/neon/vgetQ_lanes64.c: Likewise.

2012-03-26  Ulrich Weigand  <ulrich.weigand@linaro.org>

	LP 960283
	LP 960274
	LP 960817

	Backport from mainline:

	gcc/
	PR tree-optimization/52686
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
	WIDEN_LSHIFT_EXPR.

	gcc/testsuite/
	PR tree-optimization/52686
	* gcc.target/arm/pr52686.c: New test.

2012-03-21  Andrew Stubbs  <ams@codesourcery.com>

	Backport from FSF mainline:

	2012-03-21  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (thumb2_reorg): Add complete support
	for 16-bit instructions.
	* config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.

	gcc/testsuite/
	* gcc.target/arm/thumb-16bit-ops.c: New file.
	* gcc.target/arm/thumb-ifcvt.c: New file.

2012-03-06  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Backport from mainline:

	gcc/
	* config/arm/arm.c (arm_sat_operator_match): New function.
	* config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
	* config/arm/arm.md ("insn" attribute): Add "sat" value.
	("SAT", "SATrev"): New code iterators.
	("SATlo", "SAThi"): New code iterator attributes.
	("*satsi_<SAT:code>"): New pattern.
	("*satsi_<SAT:code>_shift"): Likewise.
	* config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
	and "shift" attributes.
	("arm_usatsihi"): Add "insn" attribute.
	* config/arm/predicates.md (sat_shift_operator): Allow multiplication
	by powers of two.  Do not allow shift by 32.

	gcc/testsuite/
	* gcc.target/arm/sat-1.c: New test.

2012-02-29  Andrew Stubbs  <ams@codesourcery.com>

	Merge from FSF trunk SVN revision 184662.

2012-02-27  Ulrich Weigand  <ulrich.weigand@linaro.org>

	gcc/
	* combine.c (apply_distributive_law): Do not distribute SUBREG.

2012-02-27  Richard Sandiford  <richard.sandiford@linaro.org>

	gcc/
	* fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.

2012-02-24  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Backport from mainline:

	2012-02-22  Ulrich Weigand  <ulrich.weigand@linaro.org>

	gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_vect_condition):
	Return true for NEON.

2012-02-24  Ulrich Weigand  <ulrich.weigand@linaro.org>

	Merged from Linaro GCC 4.6, still need to be merged upstream:

	2011-11-27  Ira Rosen  <ira.rosen@linaro.org>

	gcc/
	* tree-vectorizer.h (vect_pattern_recog): Add new argument.
	* tree-vect-loop.c (vect_analyze_loop_2): Update call to
	vect_pattern_recog.
	* tree-vect-patterns.c (widened_name_p): Pass basic block
	info to vect_is_simple_use.
	(vect_recog_dot_prod_pattern): Fail for basic blocks.
	(vect_recog_widen_sum_pattern): Likewise.
	(vect_handle_widen_op_by_const): Support basic blocks.
	(vect_operation_fits_smaller_type,
	vect_recog_over_widening_pattern): Likewise.
	(vect_recog_vector_vector_shift_pattern): Support basic blocks.
	Update call to vect_is_simple_use.
	(vect_recog_mixed_size_cond_pattern): Support basic blocks.
	Add printing.
	(check_bool_pattern): Add an argument, update call to
	vect_is_simple_use and the recursive calls.
	(vect_recog_bool_pattern): Update relevant function calls.
	Add printing.
	(vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
	(vect_pattern_recog_1): Check for reduction only in loops.
	(vect_pattern_recog): Add new argument.  Support basic blocks.
	* tree-vect-stmts.c (vectorizable_conversion): Pass basic block
	info to vect_is_simple_use_1.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic
	blocks.
	(vect_slp_analyze_bb_1): Call vect_pattern_recog.

	gcc/testsuite/
	* gcc.dg/vect/bb-slp-pattern-1.c: New test.
	* gcc.dg/vect/bb-slp-pattern-2.c: New test.

	2011-11-27  Ira Rosen  <ira.rosen@linaro.org>

	gcc/
	* tree-vect-patterns.c (widened_name_p): Rename to ...
	(type_conversion_p): ... this.  Add new argument to determine
	if it's a promotion or demotion operation.  Check for
	CONVERT_EXPR_CODE_P instead of NOP_EXPR.
	(vect_recog_dot_prod_pattern): Call type_conversion_p instead
	widened_name_p.
	(vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
	vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
	Likewise.
	(vect_recog_mixed_size_cond_pattern): Likewise and allow
	non-constant then and else clauses.

	gcc/testsuite/
	* gcc.dg/vect/slp-cond-3.c: New test.
	* gcc.dg/vect/slp-cond-4.c: New test.

2012-02-17  Ulrich Weigand  <ulrich.weigand@linaro.org>

	gcc/
	* common/config/arm/arm-common.c (arm_option_optimization_table):
	Enable -fsched-pressure using -fsched-pressure-algorithm=model by
	default when optimizing.

2012-02-17  Richard Sandiford  <richard.sandiford@linaro.org>

	gcc/
	* sched-deps.c (fixup_sched_groups): Rename to...
	(chain_to_prev_insn): ...this.
	(chain_to_prev_insn_p): New function.
	(deps_analyze_insn): Use it instead of SCHED_GROUP_P.

2012-02-17  Richard Sandiford  <richard.sandiford@linaro.org>

	gcc/
	* sched-int.h (_haifa_insn_data): Move priority_status.
	Add model_index.
	(INSN_MODEL_INDEX): New macro.
	* haifa-sched.c (insn_delay): New function.
	(sched_regno_pressure_class): Update commentary.
	(mark_regno_birth_or_death): Pass the liveness bitmap and
	pressure array as arguments, instead of using curr_reg_live and
	curr_reg_pressure.  Only update the pressure if the bit in the
	liveness set has changed.
	(initiate_reg_pressure_info): Always trust the live-in set for
	SCHED_PRESSURE_MODEL.
	(initiate_bb_reg_pressure_info): Update call to
	mark_regno_birth_or_death.
	(dep_list_size): Take the list as argument.
	(calculate_reg_deaths): New function, extracted from...
	(setup_insn_reg_pressure_info): ...here.
	(MODEL_BAR): New macro.
	(model_pressure_data, model_insn_info, model_pressure_limit)
	(model_pressure_group): New structures.
	(model_schedule, model_worklist, model_insns, model_num_insns)
	(model_curr_point, model_before_pressure, model_next_priority):
	New variables.
	(MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
	(MODEL_INSN_INFO, MODEL_INSN): New macros.
	(model_index, model_update_limit_points_in_group): New functions.
	(model_update_limit_points, model_last_use_except): Likewise.
	(model_start_update_pressure, model_update_pressure): Likewise.
	(model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
	(model_excess_cost, model_dump_pressure_points): Likewise.
	(model_set_excess_costs): Likewise.
	(rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
	SCHED_PRIORITY_MODEL.  Use insn_delay.  Use the order in the model
	schedule as an alternative tie-breaker.  Update the call to
	dep_list_size.
	(ready_sort): Call model_set_excess_costs.
	(update_register_pressure): Update call to mark_regno_birth_or_death.
	Rely on that function to check liveness rather than doing it here.
	(model_classify_pressure, model_order_p, model_add_to_worklist_at)
	(model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
	(model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
	(model_record_pressure, model_record_pressures): New functions.
	(model_record_final_pressures, model_add_successors_to_worklist)
	(model_promote_predecessors, model_choose_insn): Likewise.
	(model_reset_queue_indices, model_dump_pressure_summary): Likewise.
	(model_start_schedule, model_finalize_pressure_group): Likewise.
	(model_end_schedule): Likewise.
	(schedule_insn): Say when we're scheduling the next instruction
	in the model schedule.
	(schedule_insn): Handle SCHED_PRESSURE_MODEL.
	(queue_to_ready): Do not add instructions that are
	MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
	Always allow the next instruction in the model schedule to be added.
	(debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
	and delay for SCHED_PRESSURE_MODEL too.
	(prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
	SCHED_PRIORITY_MODEL, but also take the DFA into account.
	(schedule_block): Call model_start_schedule and model_end_schedule.
	Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
	(sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
	to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
	region_ref_regs.
	(sched_finish): Update accordingly.
	(fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
	to SCHED_PRESSURE_MODEL.
	(add_jump_dependencies): Update call to dep_list_size.
	(haifa_finish_h_i_d): Fix leak of max_reg_pressure.
	(haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
	to SCHED_PRESSURE_MODEL.
	* sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
	allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
	(sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
	handling to SCHED_PRESSURE_MODEL.

2012-02-17  Richard Sandiford  <richard.sandiford@linaro.org>

	gcc/
	* common.opt (fsched-pressure-algorithm=): New option.
	* flag-types.h (sched_pressure_algorithm): New enum.
	* sched-int.h (sched_pressure_p): Replace with...
	(sched_pressure): ...this new variable.
	* haifa-sched.c (sched_pressure_p): Replace with...
	(sched_pressure): ...this new variable.
	(sched_regno_pressure_class, rank_for_schedule, ready_sort)
	(update_reg_and_insn_max_reg_pressure, schedule_insn)
	(debug_ready_list, prune_ready_list, schedule_block, sched_init)
	(sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
	* sched-deps.c (init_insn_reg_pressure_info): Likewise.
	(sched_analyze_insn): Likewise.
	* sched-rgn.c (schedule_region): Likewise.
	* config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.

2012-02-15  Andrew Stubbs  <ams@codesourcery.com>

	Merge from FSF trunk SVN revision 184223.

Imported GCC from FSF trunk SVN revision 183796.
