[Bug tree-optimization/68315] New: ivdep has no effect in parloops
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Nov 12 15:13:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68315
Bug ID: 68315
Summary: ivdep has no effect in parloops
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: vries at gcc dot gnu.org
Target Milestone: ---
Consider testcase ivdep.c:
...
void
foo (int n, int *a, int *b, int *c)
{
int i, j;
#pragma GCC ivdep
for (i = 0; i < n; ++i)
a[i] = b[i] + c[i];
}
...
When compiling it with autopar on:
...
$ gcc -O2 -ftree-parallelize-loops=2 -fdump-tree-all-details ivdep.c -S
...
We find in the dump-file:
...
FAILED: data dependencies exist across iterations
...
Although the definition of the pragma is in terms of SIMD:
...
With this pragma, the programmer asserts that there are no loop-carried
dependencies which would prevent consecutive iterations of the following loop
from executing concurrently with SIMD (single instruction multiple data)
instructions.
...
I'd say the no loop-carried dependencies bit means that we can use it for
autopar.
More information about the Gcc-bugs
mailing list