| /* { dg-do compile } */ |
| /* { dg-options "-O3 -fdump-tree-fnsplit" } */ |
| int b; |
| int c; |
| int d; |
| void long_function (int); |
| void |
| split_me(int a) |
| { |
| int t = 0; |
| if (d>4) |
| return; |
| do |
| { |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| make_me_irregular: |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| long_function (t); |
| t=b; |
| } |
| while (t); |
| if (c) |
| goto make_me_irregular; |
| } |
| |
| int |
| main() |
| { |
| split_me (1); |
| split_me (2); |
| split_me (3); |
| split_me (4); |
| split_me (5); |
| } |
| /* { dg-final { scan-tree-dump-times "Splitting function" 1 "fnsplit"} } */ |