[Bug tree-optimization/80928] SLP vectorization does not handle induction in outer loop vectorization

ro at CeBiTec dot Uni-Bielefeld.DE gcc-bugzilla@gcc.gnu.org
Wed Jun 7 12:10:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80928

--- Comment #12 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
>> --- Comment #5 from Rainer Orth <ro at gcc dot gnu.org> ---
>> The patch also caused a couple of regressions on i386-pc-solaris2.12:
>> 
>> +FAIL: gcc.dg/vect/slp-perm-8.c (internal compiler error)
>> +FAIL: gcc.dg/vect/slp-perm-8.c (test for excess errors)
>> +FAIL: gcc.dg/vect/slp-perm-8.c -flto -ffat-lto-objects (internal compiler
>> error
>> )
>> +FAIL: gcc.dg/vect/slp-perm-8.c -flto -ffat-lto-objects (test for excess
>> errors)
>> +WARNING: gcc.dg/vect/slp-perm-8.c -flto -ffat-lto-objects compilation failed
>> to
>>  produce executable
>> +WARNING: gcc.dg/vect/slp-perm-8.c compilation failed to produce executable
>
> Can't reproduce with a cross.

I see the same in a i686-pc-linux-gnu build.

>> Excess errors:
>> during GIMPLE pass: vect
>> dump file: slp-perm-8.c.156t.vect
>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/slp-perm-8.c:25:5:
>> internal compiler error: in operator[], at vec.h:729
>> 0x8b58359 vec<edge_def*, va_gc, vl_embed>::operator[](unsigned int)
>>         /vol/gcc/src/hg/trunk/local/gcc/vec.h:729
>> 0x8b58359 gimple_phi_arg_edge
>>         /vol/gcc/src/hg/trunk/local/gcc/gimple.h:4398
>> 0x8b58359 dump_gimple_phi
>>         /vol/gcc/src/hg/trunk/local/gcc/gimple-pretty-print.c:2185
>> 0x8b5a668 print_gimple_stmt(__FILE*, gimple*, int, unsigned long long)
>>         /vol/gcc/src/hg/trunk/local/gcc/gimple-pretty-print.c:117
>> 0x8a254c5 dump_gimple_stmt(unsigned long long, unsigned long long, gimple*,
>> int)
>>         /vol/gcc/src/hg/trunk/local/gcc/dumpfile.c:340
>> 0x90750dd vect_schedule_slp_instance
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:3680
>> 0x9074f6f vect_schedule_slp_instance
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:3641
>> 0x9074f6f vect_schedule_slp_instance
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:3641
>> 0x9074f6f vect_schedule_slp_instance
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:3641
>> 0x9075861 vect_schedule_slp(vec_info*)
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:3834
>> 0x905a2ba vect_transform_loop(_loop_vec_info*)
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-loop.c:7151
>> 0x907b4e8 vectorize_loops()
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.c:690
>> 
>>   32 and 64-bit x86
>
> That is, i686-linux with -m32 / -m64?  I see no issues on
> x86_64 with -m32 or -m64.

Both i386-pc-solaris2.12 and i686-pc-linux-gnu.  Haven't tried an x86_64
build yet.

>> +FAIL: libgomp.fortran/vla1.f90   -O3 -fomit-frame-pointer -funroll-loops
>> -fpeel
>> -loops -ftracer -finline-functions  (internal compiler error)
>> +FAIL: libgomp.fortran/vla1.f90   -O3 -fomit-frame-pointer -funroll-loops
>> -fpeel
>> -loops -ftracer -finline-functions  (test for excess errors)
>> +WARNING: libgomp.fortran/vla1.f90   -O3 -fomit-frame-pointer -funroll-loops
>> -fp
>> eel-loops -ftracer -finline-functions  compilation failed to produce executable
>> +FAIL: libgomp.fortran/vla1.f90   -O3 -g  (internal compiler error)
>> +FAIL: libgomp.fortran/vla1.f90   -O3 -g  (test for excess errors)
>> +WARNING: libgomp.fortran/vla1.f90   -O3 -g  compilation failed to produce
>> execu
>> table
>> 
>>   and several more
>> 
>> Excess errors:
>> during GIMPLE pass: vect
>> /vol/gcc/src/hg/trunk/local/libgomp/testsuite/libgomp.fortran/vla1.f90:40:0:
>> internal compiler error: in vect_free_slp_tree, at tree-vect-slp.c:62
>> 0x90e874f vect_free_slp_tree
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:62
>> 0x90e859d vect_free_slp_tree
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:55
>> 0x90e859d vect_free_slp_tree
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:55
>> 0x90e859d vect_free_slp_tree
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:55
>> 0x90eb870 vect_free_slp_instance(_slp_instance*)
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-slp.c:80
>> 0x90d5678 vect_transform_loop(_loop_vec_info*)
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vect-loop.c:7249
>> 0x90f6a48 vectorize_loops()
>>         /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.c:690
>>
>>   64-bit x86

Also on both i386-pc-solaris2.12 -m64 and i686-pc-linux-gnu -m64.

        Rainer


More information about the Gcc-bugs mailing list