Question about vectorization limit
Richard Biener
richard.guenther@gmail.com
Fri May 31 13:27:00 GMT 2013
On Fri, May 31, 2013 at 3:21 PM, Toon Moene <toon@moene.org> wrote:
> On 05/31/2013 10:20 AM, Richard Biener wrote:
>
>> So - I doubt that you both do not get any ICEs and more performance.
>
>
> I added the second suggested patch:
>
> Index: tree-vect-loop-manip.c
> ===================================================================
> --- tree-vect-loop-manip.c (revision 199454)
> +++ tree-vect-loop-manip.c (working copy)
> @@ -985,7 +985,7 @@
>
> /* All loops have an outer scope; the only case loop->outer is NULL
> is for
> the function itself. */
> || !loop_outer (loop)
> - || loop->num_nodes != 2
> +/* || loop->num_nodes != 2 */
>
> || !empty_block_p (loop->latch)
> || !single_exit (loop)
> /* Verify that new loop exit condition can be trivially modified. */
>
> And I still get no ICE sicking 3.5 million lines of Fortran on this
> compiler. This is pretty suspicious - it might well be that checks further
> down will prohibit vectorization to do anything on loops like
>
> SUBROUTINE XYZ(A, B, N)
> DIMENSION A(N), B(N)
> DO I = 1, N
> IF (A(I) > 0.0) THEN
> A(I) = B(I) / A(I)
> ELSE
> A(I) = B(I)
> ENDIF
> ENDDO
> END
Well, you can easily look at the dumps. If the above is not if-converted
then we'll likely say that we cannot vectorize the GIMPLE_COND statement.
Richard.
More information about the Gcc
mailing list