diff options
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.patch | 23 |
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); + + |