This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch to delete scratch allocation in local-alloc
- To: crux at Pool dot Informatik dot RWTH-Aachen dot DE (Bernd Schmidt)
- Subject: Re: Patch to delete scratch allocation in local-alloc
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Fri, 2 Oct 1998 17:13:22 +0100
- Cc: egcs-patches at cygnus dot com
- Newsgroups: cygnus.egcs.patches
In article <Pine.SOL.3.90.981002151523.14944J-100000.cygnus.egcs.patches@jennifer.informatik.rwth-aachen.de> you wrote:
...
: The code in reload always works, and allocates exactly the scratch registers
: which are necessary. The code in local-alloc only guesses; it can't know
: which alternative is going to be selected by reload. Worse, global can't
: override the choices of local-alloc when they turn out to be wrong, which
: may lead to suboptimal register allocation.
The same is true for the entire local register allocation. So why do you
single out scratch allocation?
local-alloc does soe things better and some things worse than reload.
IMHO the real problem is global / reload can't revise a number of decisions
that local-alloc does - the most glaring one is, of course, the inability to
re-allocate locally allocated registers that get spilled.
So why not fix global / reload to properly undo decisions of local-alloc
when it turns out that this should be done?