This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FYI: Linker & Verifier fixes (really GC mark procedures)


Tom Tromey wrote:
"Hans" == Hans Boehm <Hans.Boehm@hp.com> writes:


I looked at this today.  We can't scan Class using a bitmap descriptor
yet, because its layout is wrong for this.  The descriptor overflows
and we have to fall back to procedural scanning.


Hans> Just to be clear, since I'm not quite sure I understand what
Hans> you're saying here: I don't think it's the mark procedure per se
Hans> that's the problem.  The issue is having a mark procedure that
Hans> walks complicated data structures and traces those instead of
Hans> just pushing directly referenced objects.

I was interested in removing the mark procedure for Class objects, but
that isn't possible on 32 bit systems -- our choices are continue to
mark them procedurally, or mark them conservatively.

But, yeah, part of my patch is to allocate things that are pointed to
by Class such that they are scanned themselves and don't require
special treatment in the procedural scanner.  This will remove the
ugly/fragile/problematic code.

This is slightly off topic, but could you put the bitmap descriptor as the last field in the Class object? Then make a variable length bit string with the high (or perhaps low) order bit indicating if there was another segment of bit string following?


One word of bit string would mark the first 31 (or 63) fields, then if the high bit were set there would be another word for the next 31 (or 63) fields...


David Daney.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]