[PR 60580, AArch64] Fix __attribute__ ((optimize("no-omit-frame-pointer")))

The implementation of -m[no-]omit-leaf-frame-pointer and
-f[no-]omit-frame-pointer in the AArch64 target does not behave
correctly in the presence of __attribute__ optimize.

This patch adjusts the implementation to work in a similar fashion to
the same functionality in the i386 target.

The problem occurs because the current implementation uses a global
'faked_omit_frame_pointer' to retain the original value of
flag_omit_frame_pointer.  The global does not form part of the
optimization save state.

This solution removes the global and instead tracks required behaviour
using only flag_omit_frame_pointer and flag_omit_leaf_frame_pointer.
These two form part of the optimziation save state and target save
state respectively.

The additional complication for AArch64 is that the PCS requires that
given -fno-omit-frame-pointer -momit-leave-frame-pointer, a leaf
function that kills LR must create a frame record.  This is readily
handled in aarch64_frame_pointer_required().  I've dropped logic in
aarch64_can_eliminate() that attempts to detect this scenario since it



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208862 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc.dg/torture/pr60092.c: Remove default dg-skip-if arguments.



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208863 138bc75d-0d04-0410-961f-82ee72b054a4
	PR middle-end/60682
	* omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
	if they need regimplification, just drop them instead of
	calling gimple_regimplify_operands on them.

	* g++.dg/gomp/pr60682.C: New test.


git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208864 138bc75d-0d04-0410-961f-82ee72b054a4
	* Makefile.def (dependencies): Make all-ld depend on all-binutils
	for WINDRES_FOR_TARGET in default-manifest.o rule.
	* Makefile.in: Regenerate.


git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208865 138bc75d-0d04-0410-961f-82ee72b054a4
2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_can_use_return_insn): Check for
	call-saved FPRs on 31 bit.

2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.target/s390/20140327-1.c: New testcase.



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208867 138bc75d-0d04-0410-961f-82ee72b054a4
2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config.host: Append t-floattodi to tmake_file depending on
	host_address.



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208868 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/50347
	* doc/extend.texi (ffs Builtins): Change unsigned types to signed
	types.



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208870 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/60612
	* libsupc++/eh_ptr.cc: Assert __cxa_dependent_exception layout is
	compatible with __cxa_exception.
	* libsupc++/unwind-cxx.h (__cxa_dependent_exception): Add padding.
	Fix typos in comments.
	* testsuite/18_support/exception_ptr/60612-terminate.cc: New.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc: New.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208871 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/xml/manual/io.xml (std.io.objects): Additional markup.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208872 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/xml/faq.xml (faq): Refer to clauses instead of chapters.
	* doc/xml/manual/appendix_contributing.xml (contrib.design_notes):
	Likewise.
	* doc/xml/manual/backwards_compatibility.xml (backwards.third):
	Likewise.
	* doc/xml/manual/test.xml (test.organization.layout): Likewise.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208873 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/xml/manual/containers.xml (associative.bitset.size_variable):
	Fix bad s/part/chapter/ substitutions.
	* doc/xml/manual/io.xml (std.io): Likewise.
	* doc/xml/manual/numerics.xml (std.numerics.generalized_ops): Likewise.
	* doc/xml/manual/strings.xml (strings.string.Cstring): Likewise.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208874 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/html/*: Regenerate.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208875 138bc75d-0d04-0410-961f-82ee72b054a4
2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60650
	* lra-asign.c (find_hard_regno_for, spill_for): Add parameter
	first_p.  Use it.
	(find_spills_for): New.
	(assign_by_spills): Pass the new parameter to find_hard_regno_for.
	Spill all pseudos on the second iteration.

2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60650
	* gcc.target/arm/pr60650.c: New.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208876 138bc75d-0d04-0410-961f-82ee72b054a4
[gcc]
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (wD constraint): New constraint to
	match the constant integer to get the top DImode/DFmode out of a
	vector in a VSX register.

	* config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
	match the constant integer to get the top DImode/DFmode out of a
	vector in a VSX register.

	* 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/rs6000.c (rs6000_debug_reg_global): If
	-mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.

	* config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
	Optimize vec_extract of 64-bit values, where the value being
	extracted is in the top word, where we can use scalar
	instructions.  Add direct move and store support.  Combine the big
	endian/little endian vector select load support into a single
	insn.
	(vsx_extract_<mode>_internal1): Likewise.
	(vsx_extract_<mode>_internal2): Likewise.
	(vsx_extract_<mode>_load): Likewise.
	(vsx_extract_<mode>_store): Likewise.
	(vsx_extract_<mode>_zero): Delete, big and little endian insns are
	combined into vsx_extract_<mode>_load.
	(vsx_extract_<mode>_one_le): Likewise.

	* config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
	define the top 64-bit vector element.

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

	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.

[gcc/testsuite]
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/p8vector-vbpermq.c: New test to test the
	vbpermq builtin.

	* gcc.target/powerpc/vsx-extract-1.c: New test to test VSX
	vec_select optimizations.
	* gcc.target/powerpc/vsx-extract-2.c: Likewise.
	* gcc.target/powerpc/vsx-extract-3.c: Likewise.

	PR target/60672
	* gcc.target/powerpc/pr60676.c: New file, make sure xxsldwi and
	xxpermdi builtins are supported.



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208877 138bc75d-0d04-0410-961f-82ee72b054a4
2014-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/58880
        * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
        of nonpointers.

2014-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/58880
        * gfortran.dg/finalize_24.f90: New.



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208879 138bc75d-0d04-0410-961f-82ee72b054a4
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

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



git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208880 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60522
	* frontend-passes.c (cfe_code):  Do not walk subtrees
	for WHERE.

2014-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60522
	* gfortran.dg/where_4.f90:  New test case.



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

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@208886 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'git-svn' into linaro-4.9

Signed-off-by: Hieu Phan <aznrice2k4@gmail.com>