Re: [CVS] commit

Date view Thread view Subject view Author view

From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Tue Jan 05 1999 - 16:17:23 EST


On Jan 5, 1999, Godmar Back <gback@cs.utah.edu> wrote:

> The amount of memory used for jit code appears to be miniscule compared
> to the rest of memory, at least according to the numbers I'm seeing.

Then pretend I just didn't mention it :-)

> Also, could somebody answer the question as to whether I really need to
> walk the jitcode?

AFAIR, JIT-generated code starts with a sequence of constants, some of
which are be references to garbage-collected objects, some are
primitive constants. In order to make precise garbage collection, we
should probably split the constants table (not to confuse with
constant pool) in two sections: the object part and the primitive
part. Thus, we could refrain from walking the JIT code and the
primitive part, walking only the object part in a precise way.

BTW, the sparc code for loading constants is (used to be?) quite
inefficient because it loaded an immediate with the address of the
constant in the constant table, and then loaded the constant from the
constant table, like this:

        sethi %l1,hi[$constant]
        or %l1,%g0,lo[$constant]
        ld %l2,[%l1]

This could be reduced by one instruction, loading the constant
directly. If the constant happens to be a reference to an object
(String or static field), we could still generate an entry in the
constant table, to prevent the object from being garbage collected,
and that's it.

But I'm writing this out of the top of my head, based on memories from
a distant past, so this may be completely wrong or outdated...

BTW, I'm finishing automaking/libtoolizing Kaffe. It was a major
overhaul, with *many* simplifications. Unfortunately, I also met some
libtool bugs, which I'm trying to fix before committing the whole
thing.

Some of the side effects of the modifications is that you'll no longer
have to use `make depend': it will be done implicitly, automagically,
but you must use GNU make and gcc. In order to get portable
makefiles, the recipe is to build Kaffe then run `make dist': this
will create a tar.gz with all the distribution files.

I have also modified the Test scripts so that it will be possible to
run the testsuite *before* (or instead of) installing kaffe. But I
haven't changed the Klasses.jar generation policy. yet :-)

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:29 EDT