summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-06-12 20:56:57 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-14 14:37:31 +0100
commit3968f33b6542cf20cf63cf49bfbc033bd2486295 (patch)
tree2bdb5e2f692a3bd3ecadbf2b4c7dc9f54485c737 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch
parent022ca1d1357caafdfe23aa9ab82f90ba89b6942b (diff)
downloadopenembedded-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/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch
new file mode 100644
index 000000000..4754ace97
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0259-2011-05-12-Richard-Guenther-rguenther-suse.de.patch
@@ -0,0 +1,100 @@
+From 32e55402bb0fc442831d775a516f2def4f948f93 Mon Sep 17 00:00:00 2001
+From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 12 May 2011 14:08:00 +0000
+Subject: [PATCH] 2011-05-12 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline
+ 2011-05-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48822
+ * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
+ (process_scc): Indicate which iteration we start.
+
+ * gcc.dg/torture/pr48822.c: New testcase.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@173705 138bc75d-0d04-0410-961f-82ee72b054a4
+
+index be253f4..81b52db 100644
+new file mode 100644
+index 0000000..b619f36
+--- /dev/null
++++ b/gcc/testsuite/gcc.dg/torture/pr48822.c
+@@ -0,0 +1,20 @@
++/* { dg-do compile } */
++
++void foo (int *, int *);
++int bar ()
++{
++ int a = 0;
++ int b = 0;
++ if (b != 0)
++ {
++ int ax = a;
++ int bx = b;
++ while (bx != 0)
++ {
++ int tem = ax % bx;
++ ax = bx;
++ bx = tem;
++ }
++ }
++ foo (&a, &b);
++}
+diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
+index 9222cb5..eb88969 100644
+--- a/gcc/tree-ssa-sccvn.c
++++ b/gcc/tree-ssa-sccvn.c
+@@ -2103,12 +2103,26 @@ print_scc (FILE *out, VEC (tree, heap) *scc)
+ static inline bool
+ set_ssa_val_to (tree from, tree to)
+ {
+- tree currval;
++ tree currval = SSA_VAL (from);
+
+- if (from != to
+- && TREE_CODE (to) == SSA_NAME
+- && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
+- to = from;
++ if (from != to)
++ {
++ if (currval == from)
++ {
++ if (dump_file && (dump_flags & TDF_DETAILS))
++ {
++ fprintf (dump_file, "Not changing value number of ");
++ print_generic_expr (dump_file, from, 0);
++ fprintf (dump_file, " from VARYING to ");
++ print_generic_expr (dump_file, to, 0);
++ fprintf (dump_file, "\n");
++ }
++ return false;
++ }
++ else if (TREE_CODE (to) == SSA_NAME
++ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
++ to = from;
++ }
+
+ /* The only thing we allow as value numbers are VN_TOP, ssa_names
+ and invariants. So assert that here. */
+@@ -2125,8 +2139,6 @@ set_ssa_val_to (tree from, tree to)
+ print_generic_expr (dump_file, to, 0);
+ }
+
+- currval = SSA_VAL (from);
+-
+ if (currval != to && !operand_equal_p (currval, to, OEP_PURE_SAME))
+ {
+ VN_INFO (from)->valnum = to;
+@@ -3124,6 +3136,8 @@ process_scc (VEC (tree, heap) *scc)
+ {
+ changed = false;
+ iterations++;
++ if (dump_file && (dump_flags & TDF_DETAILS))
++ fprintf (dump_file, "Starting iteration %d\n", iterations);
+ /* As we are value-numbering optimistically we have to
+ clear the expression tables and the simplified expressions
+ in each iteration until we converge. */
+--
+1.7.0.4
+