Projects

Tom Tromey tromey@cygnus.com
Wed May 3 19:42:00 GMT 2000


>>>>> "Jon" == Jonathan P Olson <olson@mmsi.com> writes:

Jon> I put write barriers into g++ and gcj over a year ago and have
Jon> been using it on our embedded products that use Super-H,
Jon> StrongARM, and AMD 29k processors.
We definitely have to get this work into gcc. Can we do that? From
you we'd need patches (that are in accordance with the GNU coding
standards) and paperwork. Then we'd have to convince the gcc
maintainers to accept them.
Last time you posted about these patches and about your
exception-handling changes, we really dropped the ball. I'm sorry
about that. I'd like to see if we can make amends this time around.
It would definitely be best to bring up the two things separately with
the gcc hackers, though, because I have a feeling that changes to
exception handling are going to be a lot harder than write barriers.
Jon> Note that write barriers allow the garbage collector to run at
Jon> low priority and not affect other time critical tasks. The way I
Jon> implemented them, they do not allow the implementation of a
Jon> precise collector, since the write barrier traps only occur
Jon> during garbage collection.
I assume this is a feature of the underlying write barrier code (i.e.,
its expansion on a particular architecture) and not something
intrinsic to the whole idea of compiler-supported write barriers in
gcc? Hmm.. I find it hard to explain what I mean here.
Jon> This implementation maintains a global write-barrier threshold
Jon> register in a location easily accessible to the run-time
Jon> environment.
Is this something that can be easily changed?
Jon> As you can see, the target specific code for the write barriers
Jon> is really pretty simple. It executes an extra 1-4 instructions
Jon> per pointer write when collection is not running.
If this requires hooks into the scheduler, then this approach will be
a problem in general (e.g., POSIX systems).
Our ultimate goal is to allow different write barrier implementations
depending on the underlying GC and the system. Ideally we'd also like
to have support for precise GC and a copying GC -- but the latter
might be too hard (there is a paper about this that I have lying
around; you have to augment the code with tables describing how
pointers might be hidden).
Tom


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /