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);
|