Question about vectorization limit

Toon Moene toon@moene.org
Fri May 31 13:22:00 GMT 2013


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

-- 
Toon Moene - e-mail: toon@moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.org/~toon/; weather: http://moene.org/~hirlam/
Progress of GNU Fortran: http://gcc.gnu.org/wiki/GFortran#news



More information about the Gcc mailing list