/* Verify that do_work is detected as being loop invariant. */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining" } */ | |
struct bah {int a,b,d;}; | |
static int do_work (struct bah s) | |
{ | |
return s.a*s.b/s.d; | |
} | |
int foo (int invariant) | |
{ | |
int i; | |
struct bah s = {invariant,invariant,invariant}; | |
int sum = 0; | |
for (i = 0; i<10; i++) | |
{ | |
sum += do_work (s); | |
} | |
return sum; | |
} | |
/* { dg-final { scan-ipa-dump "Scaling time by probability:0.099900" "inline" } } */ |