Auto-vectorization with gcj
Andrew Pinski
pinskia@physics.uc.edu
Sun May 15 21:36:00 GMT 2005
On May 15, 2005, at 10:33 AM, Andrew Pinski wrote:
> The multiple exit comes bounds checking (which VRP does not remove
> still
> because we don't pull out a load of the length).
>
> If we add -fno-bounds-checks, we get:
> Test.java:7: note: not vectorized: too many BBs in loop.
> Test.java:11: note: not vectorized: too many BBs in loop.
> Test.java:6: note: vectorized 0 loops in function.
>
> And this is because we have a label in the loop (and the tree CFG
> does not remove user labels, maybe setting DECL_ARTIFICIAL on the
> labels will fix this fully).
After working around that problem, GCC still could not vectorize
the loop:
Test.java:11: note: not vectorized: can't determine dependence between:
b_6->data[i_20] and a_3->data[i_20]
This is true in your testcase as the variables are global variables
but once I moved them to local variables, we still not vectorize the
loop
(the same note too). I looked the dump and decided that I could find a
C
testcase and I found one and filed PR 21591 with that testcase.
Thanks,
Andrew Pinski
More information about the Java
mailing list