2014-04-22  Christian Bruel  <christian.bruel@st.com>

        * config/sh/sh.md (mov<mode>): Replace movQIHI.
         Force immediates to SImode.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209671 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/60275
	* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
	New options.
	* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
	if flag_sanitize_undefined_trap_on_error.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
	BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
	BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
	* ubsan.c (ubsan_instrument_unreachable): Return
	__builtin_trap () if flag_sanitize_undefined_trap_on_error.
	(ubsan_expand_null_ifn): Emit __builtin_trap ()
	if flag_sanitize_undefined_trap_on_error and
	__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
	(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
	instrument_bool_enum_load): Emit __builtin_trap () if
	flag_sanitize_undefined_trap_on_error and
	__builtin_handle_*_abort () if !flag_sanitize_recover.
	* doc/invoke.texi (-fsanitize-recover,
	-fsanitize-undefined-trap-on-error): Document.
c-family/
	* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
	if flag_sanitize_undefined_trap_on_error.
	(ubsan_instrument_division, ubsan_instrument_shift,
	ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
	if !flag_sanitize_recover.
testsuite/
	* g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add
	-fno-sanitize-recover to dg-options.
	* g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction,
	add -std=c++11 to dg-options.
	* g++.dg/ubsan/cxx11-shift-2.C: Likewise.
	* g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction,
	add -std=c++1y to dg-options.
	* c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add
	-fno-sanitize-recover to dg-options.
	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
	* c-c++-common/ubsan/vla-4.c: Likewise.
	* c-c++-common/ubsan/pr59503.c: Likewise.
	* c-c++-common/ubsan/vla-3.c: Likewise.
	* c-c++-common/ubsan/save-expr-1.c: Likewise.
	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
	* c-c++-common/ubsan/shift-3.c: Likewise.
	* c-c++-common/ubsan/overflow-1.c: Likewise.
	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
	* c-c++-common/ubsan/vla-2.c: Likewise.
	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
	* c-c++-common/ubsan/pr60613-1.c: Likewise.
	* c-c++-common/ubsan/shift-6.c: Likewise.
	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
	* c-c++-common/ubsan/overflow-add-3.c: New test.
	* c-c++-common/ubsan/overflow-add-4.c: New test.
	* c-c++-common/ubsan/div-by-zero-6.c: New test.
	* c-c++-common/ubsan/div-by-zero-7.c: New test.


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

	PR middle-end/60891
	* loop-init.c (loop_optimizer_init): Make sure to apply
	LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.

	* gcc.dg/torture/pr60891.c: New testcase.


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

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

	* g++.dg/torture/pr60895.C: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209675 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-23  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209678 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/cygwin.h (ENDFILE_SPEC): Include
	default-manifest.o if it can be found in the search path.
	* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209681 138bc75d-0d04-0410-961f-82ee72b054a4
Update libstdc++ baseline symbols for m68k

* config/abi/post/m68k-linux-gnu/baseline_symbols.txt
(CXXABI_1.3.9): New version.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209683 138bc75d-0d04-0410-961f-82ee72b054a4
	Revert
	2014-04-22  Richard Henderson  <rth@redhat.com>

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

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

	* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
	(Error_Msg_N): Likewise.
	(Error_Msg_NE): Likewise.
	(Get_External_Name_With_Suffix): Likewise.
	* types.h (Fat_Pointer): Delete.
	(String_Pointer): New type.
	(DECLARE_STRING_POINTER): New macro.
	* gcc-interface/decl.c (create_concat_name): Adjust.
	* gcc-interface/trans.c (post_error): Likewise.
	(post_error_ne): Likewise.
	* gcc-interface/misc.c (internal_error_function): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209684 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/msp430/msp430.c (msp430_handle_option): Move function
	to msp430-common.c
	(msp430_option_override): Simplify mcu and mcpu option handling.
	(msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
	support for -mhwmult command line option.
	(has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
	-mhwmult command line option.
	(msp430_hwmult_enabled): Delete.
	(msp43o_output_labelref): Add support for -mhwmult command line
	option.
	* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
	(umulsidi3): Likewise.
	* config/msp430/msp430.opt (mmcu): Add Report attribute.
	(mcpu, mlarge, msmall): Likewise.
	(mhwmult): New option.
	* config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
	prototype.
	(msp430_is_f5_mcu): Remove prototype.
	(msp430_use_f5_series_hwmult): Add prototype.
	* config/msp430/msp430-opts.h: New file.
	* common/config/msp430: New directory.
	* common/config/msp430/msp430-common.c: New file.
	* config.gcc (msp430): Remove target_has_targetm_common.
	* doc/invoke.texi: Document -mhwmult command line option.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209685 138bc75d-0d04-0410-961f-82ee72b054a4
	* c-common.c (handle_tm_wrap_attribute): Tweak error message.



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

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

	* gcc.dg/torture/pr60903.c: New testcase.


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

	* Makefile.in (OBJS): Remove loop-unswitch.o.
	* loop-unswitch.c: Delete.
	* tree-pass.h (make_pass_rtl_unswitch): Remove.
	* passes.def (pass_rtl_unswitch): Likewise.
	* loop-init.c (gate_rtl_unswitch): Likewise.
	(rtl_unswitch): Likewise.
	(pass_data_rtl_unswitch): Likewise.
	(pass_rtl_unswitch): Likewise.
	(make_pass_rtl_unswitch): Likewise.
	* rtl.h (reversed_condition): Likewise.
	(compare_and_jump_seq): Likewise.
	* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
	and make static.
	* loop-unroll.c (compare_and_jump_seq): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209698 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM] Handle FMA code in rtx costs.

       * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209701 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM] Cortex-A8 rtx cost table

       * config/arm/arm.c (cortexa8_extra_costs): New table.
       (arm_cortex_a8_tune): New tuning struct.
       * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209702 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM][1/3] Add rev field to rtx cost tables

       * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
       * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
       rev cost.
       (cortex_a53_extra_costs): Likewise.
       (cortex_a57_extra_costs): Likewise.
       * config/arm/arm.c (cortexa9_extra_costs): Likewise.
       (cortexa7_extra_costs): Likewise.
       (cortexa8_extra_costs): Likewise.
       (cortexa12_extra_costs): Likewise.
       (cortexa15_extra_costs): Likewise.
       (v7m_extra_costs): Likewise.
       (arm_new_rtx_costs): Handle BSWAP.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209703 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64][2/3] Recognise rev16 operations on SImode and DImode data

       * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
       (rev16<mode>2_alt): Likewise.
       * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
       * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
       (aarch_rev16_shleft_mask_imm_p): Likewise.
       (aarch_rev16_p_1): Likewise.
       (aarch_rev16_p): Likewise.
       * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
       (aarch_rev16_shright_mask_imm_p): Likewise.
       (aarch_rev16_shleft_mask_imm_p): Likewise.

       * gcc.target/aarch64/rev16_1.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209704 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM][3/3] Recognise bitwise operations leading to SImode rev16

	* config/arm/arm.md (arm_rev16si2): New pattern.
	(arm_rev16si2_alt): Likewise.
	* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.

	* gcc.target/arm/rev16.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209705 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add handling of bswap operations in rtx costs

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209706 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM] Initialize new tune_params values

gcc/

	* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
	(arm_cortex_a12_tune): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209710 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fully support rotate on logical operations.



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