1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */
3 int p;
4 int r;
5
6 __attribute__ ((noinline))
a(void)7 static int a(void)
8 {
9 return p;
10 }
foo(int argc)11 int foo(int argc)
12 {
13 int q;
14 q = a();
15
16 /* We should be able to move the call to a into the if path.
17 in a perfect world, we'd actually decide that it can't touch
18 r, and not recompute it at all!. */
19 if (argc)
20 r = 9;
21 return q + a();
22 }
23 /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
24