summaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99442.patch
blob: 62c44784b6d6331a1fedff47692367efe66bb7bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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);