| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-pre-stats" } */ |
| /* LLVM LOCAL test not applicable */ |
| /* { dg-require-fdump "" } */ |
| int p; |
| int r; |
| int a(void) |
| { |
| return p; |
| } |
| int main(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"} } */ |
| /* { dg-final { cleanup-tree-dump "pre" } } */ |