OLD | NEW |
1 /* { dg-do compile } */ | 1 /* { dg-do compile } */ |
2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */ | 2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */ |
3 unsigned long outcnt; | 3 unsigned long outcnt; |
4 extern void flush_outbuf(void); | 4 extern void flush_outbuf(void); |
5 | 5 |
6 void | 6 void |
7 bi_windup(unsigned int *outbuf, unsigned int bi_buf) | 7 bi_windup(unsigned int *outbuf, unsigned int bi_buf) |
8 { | 8 { |
9 unsigned long t1 = outcnt; | 9 unsigned long t1 = outcnt; |
10 outbuf[t1] = bi_buf; | 10 outbuf[t1] = bi_buf; |
11 | 11 |
12 unsigned long t2 = outcnt; | 12 unsigned long t2 = outcnt; |
13 if (t2 == 16384) | 13 if (t2 == 16384) |
14 flush_outbuf(); | 14 flush_outbuf(); |
15 | 15 |
16 unsigned long t3 = outcnt; | 16 unsigned long t3 = outcnt; |
17 outbuf[t3] = bi_buf; | 17 outbuf[t3] = bi_buf; |
18 } | 18 } |
19 /* We should eliminate one load of outcnt, which will in turn let us eliminate | 19 /* We should eliminate one load of outcnt, which will in turn let us eliminate |
20 one multiply of outcnt which will in turn let us eliminate | 20 one multiply of outcnt which will in turn let us eliminate |
21 one add involving outcnt and outbuf. */ | 21 one add involving outcnt and outbuf. */ |
22 /* { dg-final { scan-tree-dump-times "Eliminated: 3" 1 "pre"} } */ | 22 /* { dg-final { scan-tree-dump-times "Eliminated: 3" 1 "pre" {target { ! avr-*-*
} } } } */ |
| 23 /* { dg-final { scan-tree-dump-times "Eliminated: 4" 1 "pre" {target { avr-*-*
} } } } */ |
23 /* { dg-final { cleanup-tree-dump "pre" } } */ | 24 /* { dg-final { cleanup-tree-dump "pre" } } */ |
OLD | NEW |