1 /* Verify that do_work is detected as being loop invariant. */ 2 /* { dg-do compile } */ 3 /* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining" } */ 4 5 struct bah {int a,b,d;}; 6 do_work(struct bah s)7static int do_work (struct bah s) 8 { 9 return s.a*s.b/s.d; 10 } foo(int invariant)11int foo (int invariant) 12 { 13 int i; 14 struct bah s = {invariant,invariant,invariant}; 15 int sum = 0; 16 for (i = 0; i<10; i++) 17 { 18 sum += do_work (s); 19 } 20 return sum; 21 } 22 23 24 /* { dg-final { scan-ipa-dump "Scaling time by probability:0.099900" "inline" } } */ 25