Re: Mixed Mode Execution and Register Allocation

Clifford Click <cliff.click@Eng.Sun.COM>
23 May 1998 00:42:14 -0400

          From comp.compilers

Related articles
Mixed Mode Execution and Register Allocation hjl@dcs.ed.ac.uk (1998-05-15)
Re: Mixed Mode Execution and Register Allocation andi@complang.tuwien.ac.at (1998-05-23)
Re: Mixed Mode Execution and Register Allocation cliff.click@Eng.Sun.COM (Clifford Click) (1998-05-23)
Re: Mixed Mode Execution and Register Allocation pieper@zko.dec.com (John Pieper) (1998-05-30)
Re: Mixed Mode Execution and Register Allocation cliff.click@Eng.Sun.COM (Clifford Click) (1998-05-30)
| List of all articles for this month |

From: Clifford Click <cliff.click@Eng.Sun.COM>
Newsgroups: comp.compilers
Date: 23 May 1998 00:42:14 -0400
Organization: Sun Microsystems
References: 98-05-105
Keywords: Java

Hugh Leather wrote:
> Java is typically interpreted or just-in-time compiled. The
> former suffers being slow to run, the latter from being slow to start.
> My program starts by interpreting the code, whilst in the background
> preparing it for profiling. Once a method has been profiled, that
> information can be used for doing a superior compilation. The
> resulting code can then be saved, etc. If you have any statistics
> that may prove useful in demonstrating the benefits of such an
> approach please send them to me.


This is the approach used by Sun's HotSpot technology.
It's really quite complicated in practice.




> I am a computer science student and my final year
> project is to write a Java virtual machine.


This seems like an overly large senior project.
Perhaps you should talk to your advisor & adjust your goals?




> I have not fully compiled the code yet, since the work of
> writing a whole JVM has proved a little more than I had at first
> thought.


No kidding!




> My major focus is on good register allocation. I would like
> to know what approaches are taken at the moment, and in particular if
> there are any that use profiling information to improve the results.
> Generally, if you have anything that you thinkm may be useful
> to me, please reply.


I think most global allocators use profile info to feed into spill
cost analysis. I.e., the cost of spilling a live-range is the cost
of all the inserted loads & stores multiplied by the expected
execution frequency.


Cliff




--
Cliff Click Compiler Designer and Researcher
cliffc at acm.org JavaSoft
(408) 863-3266 MS UCUP02-302
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.