Related articles |
---|
optimization and register allocation sastry@GODEL.MIEL.MOT.COM (1995-02-24) |
Re: optimization and register allocation davidm@Rational.COM (1995-02-28) |
Re: optimization and register allocation sethml@puree.ugcs.caltech.edu (1995-03-04) |
Re: optimization and register allocation preston@tera.com (1995-03-06) |
Newsgroups: | comp.compilers |
From: | preston@tera.com (Preston Briggs) |
Keywords: | optimize, registers |
Organization: | /etc/organization |
References: | 95-02-182 95-03-009 |
Date: | Mon, 6 Mar 1995 18:08:53 GMT |
davidm@Rational.COM (David Moore) writes:
>I have heard it said that live range splitting is not usually
>worth the expense. How true is this?
I spent a couple of years experimenting with ways to do live range
splitting in the context of Chaitin's allocator. I tried several
approaches, but the results were not consistent; that is, for some
routines I got great results (big reductions in spill overhead), but
other routines would get worse. Note that allocation time wasn't a
problem; instead, spill overhead (including all the register-register
copies) was the basic bottleneck.
Actually, I had good results with the rematerialization work, which is
sort of a special case of splitting.
A lot of my ideas are described in my thesis (if you want to know what
to avoid :-) There's also a brief note describing a basic flaw in my
implementation that perhaps incorrectly prejudiced my results
_against_ splitting.
Others (e.g., Chow & Hennessy and Callahan & Koblenz) are much happier
with their splitting allocators. Indeed, we use Callahan & Koblenz
at Tera.
>Has anyone investigated doing splitting
>only in response to register pressure, or only for values
>that are dead in loops but would be in registers there?
Chow & Hennessy split only in response to register pressure.
In the 2nd part of your question, I assume you mean "values that are
live across a loop, but never referenced or defined in the loop." I
tried it, and some variations, and never got consistent results. But
this was all in the context of Chaitin's allocator. Chow & Hennessy
and Callahan & Koblenz take advantage of this sort of situation.
Preston Briggs
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.