| /* { dg-do compile } */ |
| /* { dg-options "-O -finline-small-functions --param early-inlining-insns=0 -fdump-tree-einline-optimized" } */ |
| |
| int foo0(); |
| void bar0() { foo0(); } |
| void foobar0() { bar0(); } |
| |
| void foo1(); |
| void bar1() { foo1(); } |
| void foobar1() { bar1(); } |
| |
| #if 0 |
| int foo2(); |
| int bar2() { return foo2(); } |
| /* The size estimate fails to see that inlining the call statement in bar2 |
| will make its lhs dead. */ |
| void foobar2() { bar2(); } |
| #endif |
| |
| int foo3(); |
| int bar3() { return foo3(); } |
| int foobar3() { return bar3(); } |
| |
| int bar4() { return 0; } |
| void foobar4() { bar4(); } |
| |
| int bar5() { return 0; } |
| int foobar5() { return bar5(); } |
| |
| /* { dg-final { scan-tree-dump-times "Inlining" 5 "einline" } } */ |