blob: 7adca97cc2b1ce445cbd0ea3aa6e6fc58a189aa1 [file] [log] [blame]
// { dg-do compile }
// { dg-options "-O2 -fgimple -fdump-statistics" }
// This is a collection of threadable paths. To simplify maintenance,
// there should only be one threadable path per function.
int global;
// The thread from 3->4->5 crosses loops but is allowed because it
// never crosses the latch (BB3) and is just an early exit out of the
// loop.
int __GIMPLE (ssa)
foo1 (int x)
{
int D_1420;
int a;
__BB(2):
a_4 = ~x_3(D);
goto __BB4;
// Latch.
__BB(3):
global = a_1;
goto __BB4;
__BB(4,loop_header(1)):
a_1 = __PHI (__BB2: a_4, __BB3: 0);
if (a_1 != 0)
goto __BB3;
else
goto __BB5;
__BB(5):
return;
}
// { dg-final { scan-tree-dump "Jumps threaded\" \"foo1\" 1" "statistics" } }