[PATCH PR70729] The second part of patch.

Thomas Schwinge thomas@codesourcery.com
Wed Jun 29 16:29:00 GMT 2016


Hi!

On Tue, 28 Jun 2016 18:50:37 +0300, Yuri Rumyantsev <ysrumyan@gmail.com> wrote:
> Here is the second part of patch to improve loop invariant code motion
> for loop marked with pragma omp simd.
> 
> Bootstrapping and regression testing did not show any new failures.

That got committed in r237844.  In my testing, that causes (or exposes?)
the following regressions (both with offloading enabled and disabled):

     PASS: libgomp.fortran/examples-4/simd-2.f90   -O1  (test for excess errors)
     PASS: libgomp.fortran/examples-4/simd-2.f90   -O1  execution test
     PASS: libgomp.fortran/examples-4/simd-2.f90   -O2  (test for excess errors)
    -PASS: libgomp.fortran/examples-4/simd-2.f90   -O2  execution test
    +FAIL: libgomp.fortran/examples-4/simd-2.f90   -O2  execution test
     PASS: libgomp.fortran/examples-4/simd-2.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess errors)
    -PASS: libgomp.fortran/examples-4/simd-2.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
    +FAIL: libgomp.fortran/examples-4/simd-2.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
     PASS: libgomp.fortran/examples-4/simd-2.f90   -O3 -g  (test for excess errors)
    -PASS: libgomp.fortran/examples-4/simd-2.f90   -O3 -g  execution test
    +FAIL: libgomp.fortran/examples-4/simd-2.f90   -O3 -g  execution test
     PASS: libgomp.fortran/examples-4/simd-2.f90   -Os  (test for excess errors)
     PASS: libgomp.fortran/examples-4/simd-2.f90   -Os  execution test
     PASS: libgomp.fortran/examples-4/simd-3.f90   -O0  (test for excess errors)

These are segmentation faults, for example:

    Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
    
    Backtrace for this error:
    #0  0x7fb65eeb52ef in ???
    #1  0x400845 in __simd2_mod_MOD_add2
            at [...]/source-gcc/libgomp/testsuite/libgomp.fortran/examples-4/simd-2.f90:18
    #2  0x400845 in __simd2_mod_MOD_work
            at [...]/source-gcc/libgomp/testsuite/libgomp.fortran/examples-4/simd-2.f90:29
    #3  0x4008d4 in MAIN__
            at [...]/source-gcc/libgomp/testsuite/libgomp.fortran/examples-4/simd-2.f90:68
    #4  0x4005dc in main
            at [...]/source-gcc/libgomp/testsuite/libgomp.fortran/examples-4/simd-2.f90:58
    Segmentation fault (core dumped)

> PR tree-optimization/70729
> * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
> independent in loops having positive safelen value.
> * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
> it may be not valid after vectorization.


Grüße
 Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 472 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160629/252ef681/attachment.sig>


More information about the Gcc-patches mailing list