Re: Mixed Mode Execution and Register Allocation

Clifford Click <cliff.click@Eng.Sun.COM>
30 May 1998 11:45:56 -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: 30 May 1998 11:45:56 -0400
Organization: Sun Microsystems
References: 98-05-105 98-05-116
Keywords: optimize, registers

                  hjl@dcs.ed.ac.uk (Hugh Leather) writes:
>> I am looking for references to papers and views, about mixed
>> mode execution. I am a computer science student and my final year
>> project is to write a Java virtual machine.


Andreas Krall wrote:
> My own research and other work too (Fast, Effective Code Generation in a
> Just-In-Time Java Compiler, Adl-Tabatabai et al., PLDI'98) shows that
> expensive register allocation algorithms in Java JIT's don't pay back
> the higher compile cost at run time in most applications. One reason
> is that the Java front end (javac) already does register allocation and
> maps more local variables to the same location. In a JIT register
> additional graph coloring register allocation may be beneficial only if
> you do inlining of methods. In this case javac's mapping of locals is not
> enough.
>
> In the CACAO JIT compiler 493 local variables out of 5963 cannot be assigned
> to registers (on an Alpha processors which has 7 callee saved registers).
> Articles about the CACAO JIT can be found on my home page.


Just a counter-point. Hotspot makes heavy use of inlining. The register
allocator _is_ the slowest part of the optimizer - but its very fast for
a graph coloring allocator. Payback on the allocator is quite reliable
(i.e., it nearly always improves nearly all codes by a reasonable amount
over a fast-but-stupid allocator.) Loop optimizations, on the other hand,
tend to be hit-or-miss affairs; the right kind of loop gets a big speedup,
or you get no speedup at all.


So: different technologies (inlining or not), different results.


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.