------- Comment #10 from vmakarov at redhat dot com 2008-08-27 16:33 ------- IRA degradation on rethrow6.C.
This test fails when compiled with -O0. The wrong code looks like bb: p93<-ax p96<-dx where p93 got dx and p96 got ax. The reason for this is that ax and dx are not live regs at the start of basic block when -O0 is used and as a consequence p93 does not conflict with dx as it should be. There are 2 solutions: first one is to generate the info for -O0 too second one is to prevent assigning hard registers to global pseudos as the old register allocator does. The second one is more simple. It does not increase compiler speed. In fact, I found the second solution makes compiler 0.5% faster on all_cp2k_fortran.f90 (although such improvement is an error margin). I'll send the patch for solving rethrow6.C degradation soon. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243