This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about vectorization limit


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]