Re: JIT Help...

andi@complang.tuwien.ac.at (Andreas Krall)
1 Mar 2001 02:31:54 -0500

          From comp.compilers

Related articles
JIT Help... jakmal@bpssystems.com (J. Akmal) (2001-02-23)
Re: JIT Help... danwang+news@cs.princeton.edu (Daniel C. Wang) (2001-02-25)
Re: JIT Help... torbenm@diku.dk (2001-02-25)
Re: JIT Help... andi@complang.tuwien.ac.at (2001-03-01)
Re: JIT Help... pmb@dina.kvl.dk (Peter Bertelsen) (2001-03-01)
Re: JIT Help... jakmal@bpssystems.com (J. Akmal) (2001-03-01)
Re: JIT Help... anton@mips.complang.tuwien.ac.at (2001-03-04)
| List of all articles for this month |

From: andi@complang.tuwien.ac.at (Andreas Krall)
Newsgroups: comp.compilers
Date: 1 Mar 2001 02:31:54 -0500
Organization: Vienna University of Technology, Austria
References: 01-02-121 01-02-130
Keywords: Java
Posted-Date: 01 Mar 2001 02:31:54 EST

>>I just got done writing a compiler and VM (stack based) for a custom
>>language, and now I need to attack the JIT. I only need to support the
>>Pentium and Mac PowerPC. I don't need to squeeze every once of speed out
>>either.
>
> A related problem occurs when two paths join. If they have used
> different registers to hold the stack values, the state needs to be
> made consistent. JVM (AFAIR) requires stacks to be empty at
> join-points, so this neatly solves/sidesteps the issue.


Torben is wrong regarding empty stacks at control flow joins. The stack
can have any size at a control flow join, the JVM only requires that
the types on the stack from the different paths are the same.


@INPROCEEDINGS{Kr98b,
                AUTHOR = {Andreas Krall},
                TITLE = {Efficient {JavaVM} Just-in-Time Compilation},
                BOOKTITLE = {International Conference on Parallel Architectures
                                              and Compilation Techniques},
                EDITOR = {Jean-Luc Gaudiot},
                ORGANIZATION= {IFIP,ACM,IEEE},
                PUBLISHER = {North-Holland},
                PAGES = {205--212},
                ADDRESS = {Paris},
                MONTH = {October},
                YEAR = 1998}


describes a simple JIT compiler which does register allocation of the stack.
The stack values which result from stack joins are mapped to the same
registers, which are also a separate class, called interface registers.
This article can also be downloaded from my homepage.


Andi
--
andi@complang.tuwien.ac.at Andreas Krall
http://www.complang.tuwien.ac.at/andi/ Inst. f. Computersprachen, TU Wien
tel: (+431) 58801/18511 Argentinierstr. 8/4/1851
fax: (+431) 58801/18598 A-1040 Wien AUSTRIA EUROPE


Post a followup to this message

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