111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -w -fdump-tree-dom2-details" } */
|
|
3
|
|
4 typedef struct rtx_def *rtx;
|
|
5 struct rtx_def
|
|
6 {
|
|
7 int code;
|
|
8 rtx rt_rtx;
|
|
9 };
|
|
10 rtx
|
|
11 try_combine (rtx i1, rtx newpat)
|
|
12 {
|
|
13 rtx temp;
|
|
14 if (i1 && (temp = ((((((newpat->rt_rtx, ((((temp)->code) == 42)))))))))
|
|
15 && ((temp =
|
|
16 (((((((((((newpat)->rt_rtx),
|
|
17 ((((temp)->code) == 42) && arf ())))))))))))))
|
|
18 ;
|
|
19 else if (i1 && foo ());
|
|
20 }
|
|
21
|
131
|
22 /* There should be four tests against i1. One from the hash table
|
|
23 dumps, one from the EVRP analyzer one from EVRP evaluation and one
|
|
24 in the code itself. */
|
|
25 /* { dg-final { scan-tree-dump-times "if .i1_" 4 "dom2"} } */
|
111
|
26
|
|
27 /* There should be no actual jump threads realized by DOM. The
|
|
28 legitimize jump threads are handled in VRP and those discovered
|
|
29 by DOM are subsumed by collapsing a conditional. */
|
|
30 /* { dg-final { scan-tree-dump-not "Threaded" "dom2"} } */
|