This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/37633] [4.4 Regression] wrong register use on sh64
- From: "vmakarov at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Oct 2008 19:42:37 -0000
- Subject: [Bug target/37633] [4.4 Regression] wrong register use on sh64
- References: <bug-37633-5208@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from vmakarov at redhat dot com 2008-10-14 19:42 -------
I've checked the old RA. It does not assigned partially clobbered hard
register because it is done only when non partially clobbered hard regs were
tried first. Sh has a lot of such registers therefore the chance to generate
wrong code is small.
I can simulate the same behaviour for IRA by increasing costs for partially
clobbered hard registers. Currently rs6000 and sh define
HARD_REGNO_CALL_PART_CLOBBERED. So even the problem is solved for sh in
different way, the patch increasing cost would be useful for rs6000.
Still, as I wrote, the complete solution (the mentioned cost increase will be
still necessary in any case) would be save and restore partially clobbered
hard-registers in caller-saves.c.
The patch increasing the costs will be sent later today.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37633