60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
/* { dg-do compile { target freorder } } */
|
|
/* { dg-options "-O2 -fdump-tree-optimized-details-blocks -fdump-rtl-bbpart-details-blocks -freorder-blocks-and-partition" } */
|
|
volatile int v;
|
|
void bar (void) __attribute__((leaf, cold));
|
|
void baz (int *);
|
|
|
|
void
|
|
foo (int x, int y, int z)
|
|
{
|
|
static int f __attribute__((section ("mysection")));
|
|
f = 1;
|
|
if (__builtin_expect (x, 0))
|
|
if (__builtin_expect (y, 0))
|
|
if (__builtin_expect (z, 0))
|
|
{
|
|
f = 2;
|
|
bar ();
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
v += 1;
|
|
v *= 2;
|
|
v /= 2;
|
|
v -= 1;
|
|
f = 3;
|
|
__builtin_abort ();
|
|
}
|
|
f = 4;
|
|
f = 5;
|
|
baz (&f);
|
|
}
|
|
/* { dg-final { scan-tree-dump-times "Invalid sum" 0 "optimized"} } */
|
|
/* { dg-final { scan-tree-dump-times "count 0 .precise.," 1 "optimized"} } */
|
|
/* { dg-final { scan-rtl-dump-times "COLD_PARTITION" 1 "bbpart"} } */
|