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

	* tree-sra.c (sra_modify_expr): Generate new memory accesses with
	same alias type as the original statement.
	(subreplacement_assignment_data): New type.
	(handle_unscalarized_data_in_subtree): New type of parameter,
	generate new memory accesses with same alias type as the original
	statement.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_constructor_assign): Generate new memory accesses with
	same alias type as the original statement.

testsuite/
        * gcc.dg/tree-ssa/sra-14.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209868 138bc75d-0d04-0410-961f-82ee72b054a4
Enable ada for aarch64-linux

        * gcc-interface/Makefile.in: Support aarch64-linux.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209871 138bc75d-0d04-0410-961f-82ee72b054a4
	* 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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209873 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Relax modes_tieable_p and cannot_change_mode_class

gcc/

	* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.c
	(aarch64_cannot_change_mode_class): Weaken conditions.
	(aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209878 138bc75d-0d04-0410-961f-82ee72b054a4
Add a class hierarchy diagram to gimple.texi

2014-04-28  David Malcolm  <dmalcolm@redhat.com>

	* doc/gimple.texi: Replace the description of the now-defunct
	union gimple_statement_d with a diagram showing the
	gimple_statement_base class hierarchy and its relationships to
	the GSS_ and GIMPLE_ enums.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209879 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Improve vst4_lane intrinsics

gcc/

	* config/aarch64/aarch64-builtins.c
	(aarch64_types_storestruct_lane_qualifiers): New.
	(TYPES_STORESTRUCT_LANE): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
	(st3_lane): Likewise.
	(st4_lane): Likewise.
	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
	(vec_store_lanesci_lane<mode>): Likewise.
	(vec_store_lanesxi_lane<mode>): Likewise.
	(aarch64_st2_lane<VQ:mode>): Likewise.
	(aarch64_st3_lane<VQ:mode>): Likewise.
	(aarch64_st4_lane<VQ:mode>): Likewise.
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
	* config/aarch64/arm_neon.h
	(__ST2_LANE_FUNC): Rewrite using builtins, update use points to
	use new macro arguments.
	(__ST3_LANE_FUNC): Likewise.
	(__ST4_LANE_FUNC): Likewise.
	* config/aarch64/iterators.md (V_TWO_ELEM): New.
	(V_THREE_ELEM): Likewise.
	(V_FOUR_ELEM): Likewise.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209880 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209887 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/60810
	* gfortran.dg/arrayio_13.f90: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209888 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64.md (mov<mode>cc): New for GPF.

2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* gcc.target/aarch64/fcsel_1.c: New test case.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209889 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>

	* doc/invoke.texi: Fix typo.
	* tree-vrp.c: Fix typos.
	* gimple.c (infer_nonnull_range): Reorder operands of an &&
	condition.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209891 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-29  Richard Biener  <rguenther@suse.de>

	* dominance.c (free_dominance_info): Add overload with
	function parameter.
	(dom_info_state): Likewise.
	(dom_info_available_p): Likewise.
	* basic-block.h (free_dominance_info, dom_info_state,
	dom_info_available_p): Declare overloads.
	* passes.c (execute_function_todo): Verify that verifiers
	don't change dominator info state.  Drop dominator info
	for IPA pass invocations.
	* cgraph.c (release_function_body): Restore asserts that
	dominator information is released.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209892 138bc75d-0d04-0410-961f-82ee72b054a4
Add execution + assembler tests of the AArch64 ZIP Intrinsics.

	* gcc.target/aarch64/simd/simd.exp: New file.
	* gcc.target/aarch64/simd/vzipf32_1.c: New file.
	* gcc.target/aarch64/simd/vzipf32.x: New file.
	* gcc.target/aarch64/simd/vzipp16_1.c: New file.
	* gcc.target/aarch64/simd/vzipp16.x: New file.
	* gcc.target/aarch64/simd/vzipp8_1.c: New file.
	* gcc.target/aarch64/simd/vzipp8.x: New file.
	* gcc.target/aarch64/simd/vzipqf32_1.c: New file.
	* gcc.target/aarch64/simd/vzipqf32.x: New file.
	* gcc.target/aarch64/simd/vzipqp16_1.c: New file.
	* gcc.target/aarch64/simd/vzipqp16.x: New file.
	* gcc.target/aarch64/simd/vzipqp8_1.c: New file.
	* gcc.target/aarch64/simd/vzipqp8.x: New file.
	* gcc.target/aarch64/simd/vzipqs16_1.c: New file.
	* gcc.target/aarch64/simd/vzipqs16.x: New file.
	* gcc.target/aarch64/simd/vzipqs32_1.c: New file.
	* gcc.target/aarch64/simd/vzipqs32.x: New file.
	* gcc.target/aarch64/simd/vzipqs8_1.c: New file.
	* gcc.target/aarch64/simd/vzipqs8.x: New file.
	* gcc.target/aarch64/simd/vzipqu16_1.c: New file.
	* gcc.target/aarch64/simd/vzipqu16.x: New file.
	* gcc.target/aarch64/simd/vzipqu32_1.c: New file.
	* gcc.target/aarch64/simd/vzipqu32.x: New file.
	* gcc.target/aarch64/simd/vzipqu8_1.c: New file.
	* gcc.target/aarch64/simd/vzipqu8.x: New file.
	* gcc.target/aarch64/simd/vzips16_1.c: New file.
	* gcc.target/aarch64/simd/vzips16.x: New file.
	* gcc.target/aarch64/simd/vzips32_1.c: New file.
	* gcc.target/aarch64/simd/vzips32.x: New file.
	* gcc.target/aarch64/simd/vzips8_1.c: New file.
	* gcc.target/aarch64/simd/vzips8.x: New file.
	* gcc.target/aarch64/simd/vzipu16_1.c: New file.
	* gcc.target/aarch64/simd/vzipu16.x: New file.
	* gcc.target/aarch64/simd/vzipu32_1.c: New file.
	* gcc.target/aarch64/simd/vzipu32.x: New file.
	* gcc.target/aarch64/simd/vzipu8_1.c: New file.
	* gcc.target/aarch64/simd/vzipu8.x: New file.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209893 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
	(arc_init_reg_tables): Use a machine_mode enum to iterate over
	available modes.
	* config/m32r/m32r.c (init_reg_tables): Likewise.
	* config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
	enum to hold the modes.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209894 138bc75d-0d04-0410-961f-82ee72b054a4
	* MAINTAINERS (Write After Approval): Add myself.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209895 138bc75d-0d04-0410-961f-82ee72b054a4
	* MAINTAINERS (Write After Approval): Put myself in correct order.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209896 138bc75d-0d04-0410-961f-82ee72b054a4
Remove PUSH_ARGS_REVERSED from the RTL expander.

gcc/

	* calls.c (initialize_argument_information): Always treat
	PUSH_ARGS_REVERSED as 1, simplify code accordingly.
	(expand_call): Likewise.
	(emit_library_call_calue_1): Likewise.
	* expr.c (PUSH_ARGS_REVERSED): Do not define.
	(emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
	code accordingly.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209897 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/msp430/msp430.md (umulsidi): Fix typo.
	(mulhisi3): Enable even inside interrupt handlers.
	* config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
	bigger return address pushed in large mode.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209898 138bc75d-0d04-0410-961f-82ee72b054a4
implement __builtin_assert_no_side_effects

This implements __builtin_assert_no_side_effects, aka PR c/57612.

The idea is to have an easy way to assert that an expression is
side-effect-free.  This can be used in macros that expand their
arguments more than once, to ensure that the macro's user doesn't pass
in a side-effecting expression:

    #define multi_expand(x) (__builtin_assert_no_side_effects(x) + (x))

I considered whether the new error should be suppressed inside typeof,
alignof, and sizeof, but in the end decided that erroring is probably
ok; as I couldn't think of a scenario where I'd reasonably expect the
non-erroring behavior.

Built and regtested on x86-64 Fedora 20.