| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-pre-stats" } */ |
| /* LLVM LOCAL test not applicable */ |
| /* { dg-require-fdump "" } */ |
| extern int printf (const char *, ...); |
| int main(int argc, char **argv) |
| { |
| int a; |
| int b; |
| int c; |
| b = argc + 1; |
| c = argc + 2; |
| a = b + c; |
| if (argc * 2) |
| { |
| c = argc + 3; |
| } |
| printf ("%d, %d\n", a, b + c); |
| } |
| /* We should eliminate one evaluation of b + c along the main path, |
| causing one reload. */ |
| /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */ |
| /* { dg-final { cleanup-tree-dump "pre" } } */ |