| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fdump-tree-dom2-details" } */ | |
| void foo(); | |
| void bla(); | |
| void bar(); | |
| void dont_thread_1 (void) | |
| { | |
| int i = 0; | |
| int first = 1; | |
| do | |
| { | |
| if (first) | |
| foo (); | |
| else | |
| bar (); | |
| first = 0; | |
| bla (); | |
| } while (i++ < 100); | |
| } | |
| /* This one can only be threaded if both paths to the | |
| conditional inside the loop are threaded at the same | |
| time. Else we potentially end up with irreducible | |
| loops. */ | |
| /* { dg-final { scan-tree-dump-not "IRREDUCIBLE_LOOP" "dom2" } } */ |