111
|
1 /* { dg-do compile { target nonpic } } */
|
|
2 /* { dg-options "-O3 -fdump-tree-fnsplit -fdump-tree-optimized --param=builtin-expect-probability=100" } */
|
|
3
|
|
4 struct a {int a,b;};
|
|
5 struct a make_me_big (int a);
|
|
6 struct a split_me (int a)
|
|
7 {
|
|
8 struct a retval;
|
|
9 if (__builtin_expect (a!=0,1))
|
|
10 {
|
|
11 retval.a = 0;
|
|
12 retval.b = 0;
|
|
13 return retval;
|
|
14 }
|
|
15 else
|
|
16 {
|
|
17 struct a retval = make_me_big (a);
|
|
18 retval = make_me_big (a);
|
|
19 retval = make_me_big (a);
|
|
20 retval = make_me_big (a);
|
|
21 retval = make_me_big (a);
|
|
22 retval = make_me_big (a);
|
|
23 retval = make_me_big (a);
|
|
24 retval = make_me_big (a);
|
|
25 retval = make_me_big (a);
|
|
26 retval = make_me_big (a);
|
|
27 retval = make_me_big (a);
|
|
28 retval = make_me_big (a);
|
|
29 retval = make_me_big (a);
|
|
30 retval = make_me_big (a);
|
|
31 retval = make_me_big (a);
|
|
32 retval = make_me_big (a);
|
|
33 retval = make_me_big (a);
|
|
34 retval = make_me_big (a);
|
|
35 retval = make_me_big (a);
|
|
36 retval = make_me_big (a);
|
|
37 retval = make_me_big (a);
|
|
38 retval = make_me_big (a);
|
|
39 retval = make_me_big (a);
|
|
40 return retval;
|
|
41 }
|
|
42 }
|
|
43 int val;
|
|
44 void
|
|
45 test()
|
|
46 {
|
|
47 split_me (val);
|
|
48 split_me (val);
|
|
49 split_me (val);
|
|
50 split_me (val);
|
|
51 }
|
|
52 /* { dg-final { scan-tree-dump-times "Splitting function" 1 "fnsplit"} } */
|
|
53 /* { dg-final { scan-tree-dump "part" "optimized"} } */
|