http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48649

--- Comment #6 from Popielewicz <vasco at icpnet dot pl> 2011-10-18 07:25:24 
UTC ---
OK.
Because I suspected, that IRA could help I have decided to port 4.4.6, the last
with coff.
Another motivation was tree-vectorizer.

I have discovered immediately , that purge-dead-edges bug appears. I have found
in one bug description for higher releases the solution for something similar
and it solved the problem for a while . Namely I have copied the function
sel_bb_empty_or_nop_p from release 4.6 , added a line of code(EDGE_COUNT etc) ,
and then commented out one gcc_assert in basic_block.h. The problem seems to be
related with single succesors etc.

As a result the optimizition flag -O2/-O3 etc works, at least for simpler
programs. What is more important even ftree-vectorize(enabled also by -O3)
works(shown by ftree-vectorizer-verbose=n) , but for small programs.
For bigger programs remove-insn at emit-rtl.c bug appears.

usable solution is to compile small functions with tree loops with gcc-4.4.6
and the rest of the programs with stable gcc-3.2.3.

Reply via email to