Merged r157653 through r157895 into branch.
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipacost-2.c
blob6ebd6d374810562af7ba7f44c86b8f96f672e8e7
1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized" } */
3 /* { dg-add-options bind_pic_locally } */
5 int array[100];
7 int t(int);
9 static int
10 i_can_be_propagated_fully (int *a)
12 int i;
13 for (i=0;i<50;i++)
15 t(a[i]);
16 t(a[i+1]);
17 t(a[i+2]);
18 t(a[i+3]);
21 static int
22 i_can_be_propagated_fully2 (int *a)
24 i_can_be_propagated_fully (a);
25 i_can_be_propagated_fully (a);
26 i_can_be_propagated_fully (a);
28 static int
29 i_can_not_be_propagated_fully (int *a)
31 int i;
32 for (i=0;i<50;i++)
34 t(a[i]);
35 t(a[i+1]);
36 t(a[i+2]);
37 t(a[i+3]);
40 int
41 i_can_not_be_propagated_fully2 (int *a)
43 i_can_not_be_propagated_fully (a);
44 i_can_not_be_propagated_fully (a);
45 i_can_not_be_propagated_fully (a);
47 main()
49 int i;
50 i_can_be_propagated_fully2 (array);
51 i_can_be_propagated_fully2 (array);
53 for (i = 0; i < 100; i++)
54 i_can_not_be_propagated_fully2 (array);
55 i_can_not_be_propagated_fully2 (array);
58 /* { dg-final { scan-ipa-dump-times "versioned function i_can_be_propagated_fully2" 1 "cp" } } */
59 /* { dg-final { scan-ipa-dump-times "versioned function i_can_be_propagated_fully " 1 "cp" } } */
60 /* { dg-final { scan-ipa-dump-times "versioned function i_can_not_be_propagated_fully2" 1 "cp" } } */
61 /* { dg-final { scan-ipa-dump-times "versioned function i_can_not_be_propagated_fully " 1 "cp" } } */
62 /* { dg-final { scan-tree-dump-not "i_can_be_propagated_fully \\(" "optimized" } } */
63 /* { dg-final { scan-tree-dump-not "i_can_be_propagated_fully2 \\(" "optimized" } } */
64 /* { dg-final { cleanup-ipa-dump "cp" } } */
65 /* { dg-final { cleanup-tree-dump "optimized" } } */