/* { 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" } } */ |