failed on 403 of '06: regclass.c: In function 'init_reg_sets': regclass.c:277:1: internal compiler error: tree check: expected ssa_name, have var_decl in copy_ssa_name_fn, at tree-ssanames.c:393 init_reg_sets () ^ 0xb74124 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9301 0xb0ade2 tree_check ../../gcc/tree.h:2674 0xb0ade2 copy_ssa_name_fn(function*, tree_node*, gimple_statement_d*) ../../gcc/tree-ssanames.c:393 0xb0ae6c duplicate_ssa_name_fn(function*, tree_node*, gimple_statement_d*) ../../gcc/tree-ssanames.c:452 0x9ce82d duplicate_ssa_name ../../gcc/tree-ssanames.h:121 0x9ce82d create_new_def_for(tree_node*, gimple_statement_d*, tree_node**) ../../gcc/tree-into-ssa.c:2836 0x986a4e gimple_duplicate_bb ../../gcc/tree-cfg.c:5496 0x6425c9 duplicate_block(basic_block_def*, edge_def*, basic_block_def*) ../../gcc/cfghooks.c:1040 0x642bfe copy_bbs(basic_block_def**, unsigned int, basic_block_def**, edge_def**, unsigned int, edge_def**, loop*, basic_block_def*, bool) ../../gcc/cfghooks.c:1320 0x649d69 duplicate_loop_to_header_edge(loop*, edge_def*, unsigned int, simple_bitmap_def*, edge_def*, vec<edge_def*, va_heap, vl_ptr>*, int) ../../gcc/cfgloopmanip.c:1314 0xa83d09 gimple_duplicate_loop_to_header_edge(loop*, edge_def*, unsigned int, simple_bitmap_def*, edge_def*, vec<edge_def*, va_heap, vl_ptr>*, int) ../../gcc/tree-ssa-loop-manip.c:761 0x64b760 loop_version(loop*, void*, basic_block_def**, unsigned int, unsigned int, unsigned int, bool) ../../gcc/cfgloopmanip.c:1706 0x9b71ae version_loop_for_if_conversion ../../gcc/tree-if-conv.c:1943 0x9baa3e tree_if_conversion ../../gcc/tree-if-conv.c:2069 0x9baa3e main_tree_if_conversion ../../gcc/tree-if-conv.c:2089 0x9baa3e execute ../../gcc/tree-if-conv.c:2139 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. specmake: *** [regclass.o] Error 1
On Thu, Oct 17, 2013 at 8:55 PM, Jakub Jelinek <ja...@redhat.com> wrote: > Hi! > > On Tue, Oct 15, 2013 at 02:32:25PM +0200, Jakub Jelinek wrote: >> Especially on i?86/x86_64 if-conversion pass seems to be often >> a pessimization, but the vectorization relies on it and without it we can't >> vectorize a lot of the loops. > > Here is an updated patchset: > - first patch is an updated version of the > http://gcc.gnu.org/ml/gcc-patches/2013-10/msg01058.html > patch > - second patch is one variant (easier to write and perhaps maintain, > but perhaps with higher compile time and memory requirements) of the > follow up to support if-converted inner loop in outer loop vectorization; > I have started also working on variant where just the vectorizer > groks outer loop with LOOP_VECTORIZED call and two inner loops, > but am only about half way through the needed changes and would > prefer to wait how these patches actually work out together > - third patch is an updated version of the > http://gcc.gnu.org/ml/gcc-patches/2012-11/msg00202.html patch, this > time without if-unconversion pass, but instead performed only in the > versioned loops for vectorization purposes > > All 3 patches bootstrapped/regtested together on x86_64-linux and > i686-linux, the first patch and first+second patch additionally tested > alone with > make -C gcc -j4 -k check RUNTESTFLAGS=vect.exp > make -C gcc check-gfortran RUNTESTFLAGS="dg.exp='assumed_rank* pr32533*' > execute.exp='forall* intrinsic_mmloc* pr54767.f90'" > make -C x86*/libgomp check RUNTESTFLAGS=fortran.exp=omp_parse* > (the latter two are set of tests that failed at some point during > the development of the patchset). > > If anyone has spare cycles to e.g. SPEC2k{,6} test it on his favourite > platforms (both for resulting code performance and for compile time > and/or compile memory usage), it would be greatly appreciated. > > The only targets with masked load/store support are right now i?86/x86_64 > with -mavx and higher (and for masked gather load support only -mavx2 > and higher), so the last patch will probably be only beneficial to those for > the time being. > > Jakub