111
|
1 /* { dg-do compile { target { { { i?86-*-* x86_64-*-* } && lp64 } || { { powerpc*-*-* && lp64 } || { arm_nothumb || { aarch64*-*-* && lp64 } } } } } } */
|
|
2 /* { dg-options "-O3 -fdump-rtl-ira -fdump-rtl-pro_and_epilogue -fno-ipa-ra" } */
|
|
3
|
|
4 long __attribute__((noinline, noclone))
|
|
5 foo (long a)
|
|
6 {
|
|
7 return a + 5;
|
|
8 }
|
|
9
|
|
10 static long g;
|
|
11
|
|
12 long __attribute__((noinline, noclone))
|
|
13 bar (long a)
|
|
14 {
|
|
15 long r;
|
|
16
|
|
17 if (a)
|
|
18 {
|
|
19 r = a;
|
|
20 while (r < 500)
|
|
21 if (r % 2)
|
|
22 r = foo (r);
|
|
23 else
|
|
24 r = foo (r+1);
|
|
25 g = r + a;
|
|
26 }
|
|
27 else
|
|
28 r = g+1;
|
|
29 return r;
|
|
30 }
|
|
31
|
|
32 /* { dg-final { scan-rtl-dump "Will split live ranges of parameters" "ira" } } */
|
|
33 /* { dg-final { scan-rtl-dump "Split live-range of register" "ira" } } */
|
|
34 /* XFAIL due to PR70681. */
|
|
35 /* { dg-final { scan-rtl-dump "Performing shrink-wrapping" "pro_and_epilogue" { xfail arm*-*-* powerpc*-*-* } } } */
|