diff options
author | Khem Raj <raj.khem@gmail.com> | 2011-06-12 20:56:57 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-14 14:37:31 +0100 |
commit | 3968f33b6542cf20cf63cf49bfbc033bd2486295 (patch) | |
tree | 2bdb5e2f692a3bd3ecadbf2b4c7dc9f54485c737 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0245-Backported-from-mainline.patch | |
parent | 022ca1d1357caafdfe23aa9ab82f90ba89b6942b (diff) | |
download | openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.tar.gz openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.tar.bz2 openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.tar.xz openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.zip |
gcc-4.6.0: Bring in patches from FSF 4.6 branch
This brings in new patches from 4.6 release branch
updates the comment section of existing branch to not
contain patch numbers.
Tested build on qemu for arm ppc mips x86 and x86_64
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0245-Backported-from-mainline.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0245-Backported-from-mainline.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0245-Backported-from-mainline.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0245-Backported-from-mainline.patch new file mode 100644 index 000000000..8dad95bd9 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0245-Backported-from-mainline.patch @@ -0,0 +1,73 @@ +From 694cb3e1aa0163eba6e8130a5351ba66a0858207 Mon Sep 17 00:00:00 2001 +From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Tue, 10 May 2011 08:45:00 +0000 +Subject: [PATCH] Backported from mainline + 2011-05-07 Zdenek Dvorak <ook@ucw.cz> + + PR tree-optimization/48837 + * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls + when accumulator transformation is performed. + + * gcc.dg/pr48837.c: New testcase. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@173609 138bc75d-0d04-0410-961f-82ee72b054a4 + +index 99b02c2..83f2ff1 100644 +new file mode 100644 +index 0000000..ffc65b9 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/pr48837.c +@@ -0,0 +1,30 @@ ++/* PR tree-optimization/48837 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++void abort (void); ++ ++__attribute__((noinline)) ++int baz(void) ++{ ++ return 1; ++} ++ ++inline const int *bar(const int *a, const int *b) ++{ ++ return *a ? a : b; ++} ++ ++int foo(int a, int b) ++{ ++ return a || b ? baz() : foo(*bar(&a, &b), 1) + foo(1, 0); ++} ++ ++int main(void) ++{ ++ if (foo(0, 0) != 2) ++ abort(); ++ ++ return 0; ++} ++ +diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c +index 85aa82b..e50ecc2 100644 +--- a/gcc/tree-tailcall.c ++++ b/gcc/tree-tailcall.c +@@ -1019,6 +1019,14 @@ tree_optimize_tail_calls_1 (bool opt_tailcalls) + integer_one_node); + } + ++ if (a_acc || m_acc) ++ { ++ /* When the tail call elimination using accumulators is performed, ++ statements adding the accumulated value are inserted at all exits. ++ This turns all other tail calls to non-tail ones. */ ++ opt_tailcalls = false; ++ } ++ + for (; tailcalls; tailcalls = next) + { + next = tailcalls->next; +-- +1.7.0.4 + |