This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/16796] PowerPC - Unnecessary Floating Point Register Copy
- From: "nathan at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Nov 2004 11:01:10 -0000
- Subject: [Bug rtl-optimization/16796] PowerPC - Unnecessary Floating Point Register Copy
- References: <20040728170038.16796.steinmtz@us.ibm.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From nathan at gcc dot gnu dot org 2004-11-10 11:01 -------
The fault is not the register allocator, is is a problem introduced by flow2 and
the existance of conditional returns on PPC. During register allocation
there is one exit block. The returns are 'x, x, x+x & x', thus the global
allocator sets the exit block to copy 'x' to the return register. flow2
replaces some of those branches to the exit block with conditional returns,
because 'x' resides in both DF:33 and DF:32. The remaining use of the exit
is the load from the union into DF:32, the location of 'x' during the function.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16796