[PATCH,rs6000] add support for generating out-of-line register saves/restores

Nathan Froyd froydnj@codesourcery.com
Wed Apr 23 17:02:00 GMT 2008


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



More information about the Gcc-patches mailing list