This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH,rs6000] add support for generating out-of-line register saves/restores
- From: Nathan Froyd <froydnj at codesourcery dot com>
- To: Stan Shebs <stanshebs at earthlink dot net>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 23 Apr 2008 08:34:15 -0700
- Subject: Re: [PATCH,rs6000] add support for generating out-of-line register saves/restores
- References: <20080422204400.GM7825@codesourcery.com> <480E5C33.9090404@earthlink.net>
On Tue, Apr 22, 2008 at 02:44:19PM -0700, Stan Shebs wrote:
> Nathan Froyd wrote:
> >[Jack, Stan, Dominique, I have a favor to ask of one of you, please read
> >on for details]
> >
> Interesting patch, is it a big win for performance? My ppc machine is
> oddly borked (weird Xcode versions or something) and I'm debugging that
> right now, so I won't be able to take this one up for a couple days.
I doubt it's a huge win for performance; GCC enables use of
load/store-multiple by default, so that's what most prologues/epilogues
use. A branch + return + load/store registers will probably not be
much--if at all--faster than load/store multiple. And if you're using
load/store multiple, then you'll only save a couple of bytes per
epilogue.
The primary benefit would be on chips where you don't want to use
load/store multiple or you can't (e.g. E500 w/ 64-bit GPRs being used).
Even on such chips, it's only a space optimization and would be
pleasantly surprised if it turned out to be a speed win.
-Nathan