This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/37243] [4.4 Regression] Revision 139590 caused many regressions
- From: "vmakarov at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Aug 2008 16:33:53 -0000
- Subject: [Bug middle-end/37243] [4.4 Regression] Revision 139590 caused many regressions
- References: <bug-37243-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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