| /* { dg-do compile } */ |
| /* { dg-options "-O -fprofile-arcs -fprofile-update=single -fdump-tree-lim2-details" } */ |
| /* { dg-require-profiling "-fprofile-generate" } */ |
| |
| struct thread_param |
| { |
| long* buf; |
| long iterations; |
| long accesses; |
| } param; |
| |
| void access_buf(struct thread_param* p) |
| { |
| long i,j; |
| long iterations = p->iterations; |
| long accesses = p->accesses; |
| for (i=0; i<iterations; i++) |
| { |
| long* pbuf = p->buf; |
| for (j=0; j<accesses; j++) |
| pbuf[j] += 1; |
| } |
| } |
| |
| /* { dg-final { scan-tree-dump-times "Executing store motion of __gcov0.access_buf\\\[\[12\]\\\] from loop 1" 2 "lim2" } } */ |