| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-profile_estimate -fno-finite-loops -fdisable-tree-ethread" } */ |
| |
| /* Note: Threader causes removal of for loop. */ |
| |
| extern int global; |
| extern int global2; |
| extern int global3; |
| |
| void foo (int base) |
| { |
| int i; |
| while (global < 10) |
| { |
| if(global || global2 || global3) |
| return; |
| |
| for (i = base; i < 10; i++) |
| if (i > 123) |
| return; |
| } |
| } |
| |
| /* { dg-final { scan-tree-dump-times "first match heuristics: 2.20%" 3 "profile_estimate"} } */ |
| /* { dg-final { scan-tree-dump-times "first match heuristics: 5.50%" 1 "profile_estimate"} } */ |