[ARM] Allow any register for DImode values in Thumb2

Ramana commented in the submission email:

    I noticed that for T32 we don't allow any old register for DImode
    values. The restriction of an even register is true only for ARM state
    because the ISA doesn't allow any old register in this place. In a few
    large .i files that I had knocking about, noticed a nice drop in stack
    usage and a generally improved register allocation strategy.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209615 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/60823
	* omp-low.c (ipa_simd_modify_function_body): Go through
	all SSA_NAMEs and for those refering to vector arguments
	which are going to be replaced adjust SSA_NAME_VAR and,
	if it is a default definition, change it into a non-default
	definition assigned at the beginning of function from new_decl.
	(ipa_simd_modify_stmt_ops): Rewritten.
	* tree-dfa.c (set_ssa_default_def): When removing default def,
	check for NULL loc instead of NULL *loc.

	* c-c++-common/gomp/pr60823-1.c: New test.
	* c-c++-common/gomp/pr60823-2.c: New test.
	* c-c++-common/gomp/pr60823-3.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209616 138bc75d-0d04-0410-961f-82ee72b054a4
Re: [AArch64] Fix possible wrong code generation when comparing DImode values.

gcc/

	* config/aarch64/aarch64-simd.md
	(aarch64_cm<optab>di): Always split.
	(*aarch64_cm<optab>di): New.
	(aarch64_cmtstdi): Always split.
	(*aarch64_cmtstdi): New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209617 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add a space to memory asm code between base register and offset.



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

2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>

	* aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
	(floatuns<GPI:mode><GPF:mode>2): Remove.
	(<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
	and floatuns conversions.
	(<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
	and floatuns conversions.
	* iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
	(w1,w2): New mode attributes for inequal width conversions.

gcc/testsuite/ChangeLog:

2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>

	* gcc.target/aarch64/vect_cvtf_1.c: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209620 138bc75d-0d04-0410-961f-82ee72b054a4
Remove obsolete Solaris 9 support

	libstdc++-v3:
	* configure.host: Remove solaris2.9 handling.
	Change os_include_dir to os/solaris/solaris2.10.
	* acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
	* crossconfig.m4: Remove *-solaris2.9 handling, simplify.
	* configure: Regenerate.
	* config/abi/post/solaris2.9: Remove.
	* config/os/solaris/solaris2.9: Rename to ...
	* config/os/solaris/solaris2.10: ... this.
	* config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
	Remove.

	* doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
	Remove Solaris 9 reference.
	* doc/html/manual/configure.html: Regenerate.

	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
	Remove *-*-solaris2.9 xfail.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
	Likewise.

	* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
	xfail.

	libjava:
	* configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9
	handling.
	* configure: Regenerate.

	libgfortran:
	* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
	check.

	libgcc:
	* config/i386/crtfastmath.c (set_fast_math): Remove SSE execution
	check.
	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
	Solaris 9 single-threaded support.
	* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
	Solaris 9 single-threaded support.  Add call_user_handler code
	sequences.
	(sparc_is_sighandler): Likewise.

	libcpp:
	* lex.c: Remove Solaris 9 reference.

	gcc/testsuite:
	* gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if.

	* gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9.
	* gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for
	*-*-solaris2.9.
	* gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9.
	* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling
	from dg-options.
	* gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling
	from dg-additional-options.
	* gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling
	from dg-options.

	* gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2
	execution check.
	* gcc.target/i386/sse-os-support.h [__sun__ && __svr4__]
	(sigill_hdlr): Remove.
	(sse_os_support) [__sun__ && __svr4__]: Remove SSE execution
	check.

	* gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling.
	* gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling.
	* gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling.

	* lib/target-supports.exp (add_options_for_tls): Remove
	*-*-solaris2.9* handling.

	gcc:
	* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
	(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
	(*-*-solaris2*): Simplify.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
	*-*-solaris2.9* handling.

	* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
	as bug.
	(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
	(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
	handling, simplify.
	(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
	* configure: Regenerate.

	* config/i386/sol2-9.h: Remove.

	* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
	(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
	Remove Solaris 9 references.

	fixincludes:
	* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
	(solaris_int_types): Remove.
	(solaris_longjmp_noreturn): Remove.
	(solaris_mutex_init_2): Remove.
	(solaris_once_init_2): Remove.
	(solaris_sys_va_list): Remove.
	* fixincl.x: Regenerate.
	* tests/base/iso/setjmp_iso.h: Remove.
	* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
	[SOLARIS_ONCE_INIT_1_CHECK]: Remove wrapping done by
	solaris_once_init_2.
	[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
	* tests/base/sys/int_types.h: Remove.
	* tests/base/sys/va_list.h: Remove.

	contrib:
	* config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209621 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* machmode.h (bitwise_mode_for_mode): Declare.
	* stor-layout.h (bitwise_type_for_mode): Likewise.
	* stor-layout.c (bitwise_mode_for_mode): New function.
	(bitwise_type_for_mode): Likewise.
	* builtins.c (fold_builtin_memory_op): Use it instead of
	int_mode_for_mode and build_nonstandard_integer_type.

gcc/testsuite/
	* gcc.dg/memcpy-5.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209622 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fix indentation.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209627 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fix aarch64_initial_elimination_offset calculation.

This patch fixes the elimination offset calculation.  This is a latent
bug hidden by the frame alignment calculation.



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

        * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
        computation to the top of the loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209637 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] vqneg and vqabs intrinsics implementation.

This patch implements vqneg_s64, vqnegd_s64, vqabs_s64 and vqabsd_s64
AArch64 intrinsics.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209640 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Vreinterpret re-implemention.

This patch re-implements vreinterpret intrinsics to directly call a
cast. The aim is to forward as much information to front-end as
possible.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209641 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] 64-bit float vreinterpret implemention

This patch introduces vreinterpret implementation for vectors with
64-bit float lanes and adds testcase for those intrinsics.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209642 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Define TARGET_FLAGS_REGNUM

Ramana noted:

This defines TARGET_FLAGS_REGNUM for AArch64 to be CC_REGNUM. Noticed
this turns on the cmpelim pass after reload and in a few examples and
a couple of benchmarks I noticed a number of comparisons getting
deleted.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209643 138bc75d-0d04-0410-961f-82ee72b054a4
	* 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@209644 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fix TLS for ILP32.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209645 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/59073
c/
	* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.
cp/
	* parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.
testsuite/
	* c-c++-common/gomp/pr59073.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209646 138bc75d-0d04-0410-961f-82ee72b054a4
Use counter_mode on count_exp to get mode

gcc/

	PR target/60868
	* config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode 
	on count_exp to get mode.

gcc/testsuite/

	PR target/60868
	* gcc.target/i386/pr60868.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209648 138bc75d-0d04-0410-961f-82ee72b054a4
Merge longlong.h from glibc tree.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209649 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-22  Martin Jambor  <mjambor@suse.cz>

	* cgraphclones.c (cgraph_function_versioning): Copy
	ipa_transforms_to_apply instead of asserting it is empty.



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