| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fdump-tree-pre-stats" } */ | |
| int p; | |
| int r; | |
| __attribute__ ((noinline)) | |
| static int a(void) | |
| { | |
| return p; | |
| } | |
| int foo(int argc) | |
| { | |
| int q; | |
| q = a(); | |
| /* We should be able to move the call to a into the if path. | |
| in a perfect world, we'd actually decide that it can't touch | |
| r, and not recompute it at all!. */ | |
| if (argc) | |
| r = 9; | |
| return q + a(); | |
| } | |
| /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */ |