aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch
new file mode 100644
index 0000000000..62c44784b6
--- /dev/null
+++ b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch
@@ -0,0 +1,23 @@
+2010-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ gcc/
+ * loop-iv.c (get_biv_step): Workaround loop analysis ICE.
+
+=== modified file 'gcc/loop-iv.c'
+--- old/gcc/loop-iv.c 2009-11-25 10:55:54 +0000
++++ new/gcc/loop-iv.c 2010-12-10 15:32:04 +0000
+@@ -796,6 +796,13 @@
+ outer_step))
+ return false;
+
++ /* CSL local: workaround get_biv_step_1() inability to handle DU
++ chains originating at sets of subregs. Such subregs are introduced
++ by Tom's extension elimination pass. For upstream duscussion see
++ http://gcc.gnu.org/ml/gcc/2010-11/msg00552.html . */
++ if (!((*inner_mode == *outer_mode) != (*extend != UNKNOWN)))
++ return false;
++
+ gcc_assert ((*inner_mode == *outer_mode) != (*extend != UNKNOWN));
+ gcc_assert (*inner_mode != *outer_mode || *outer_step == const0_rtx);
+
+