public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* GC work status, any comments?
@ 2007-09-07  3:31 Laurynas Biveinis
  0 siblings, 0 replies; only message in thread
From: Laurynas Biveinis @ 2007-09-07  3:31 UTC (permalink / raw)
  To: gcc; +Cc: Ian Lance Taylor

Hello,

I've spent last two months at Google quietly working on the boehm-gc
branch from my last year's SoC project -
http://gcc.gnu.org/wiki/Garbage_collection_tuning . To recap, I've
integrated Boehm's GC into GCC proper, adjusted gengtype and GGC
support files to generate typed GC allocators for every GTY type, and
added type tag to every GC allocated object.

However, as I was trying to make Boehm's GC use exact type layout
information, I was running into increasingly difficult issues with
every type converted. So then I stopped and scavenged the branch for
immediately useful stuff, almost all of which I have submitted to the
mainline by now.

So my question is, what do you want to see done next? It seems that
continuing working with Boehm's GC will be not that productive. I'm
thinking about bringing over to the mainline the typed GC allocator
infrastructure, so that every ggc_alloc becomes, e.g.
ggc_alloc_rtx_def, ggc_alloc_cleared_tree_node and so on for every
GTY'ed type. In the first step they would be simple wrappers around
ggc_alloc - I would not add the type tag byte to the allocated objects
and that would wait until explicit marker stack, the first user of
them. Immediate benefits of this change would be somewhat better type
safety and protection from GC misuses with non-GTY types (use pool or
obstack instead). Alternatives are bringing over type tag overhead to
the mainline as well, or starting working on explicit marker stack on
the top of ggc-page.

Any comments?

-- 
Laurynas

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-09-07  3:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-07  3:31 GC work status, any comments? Laurynas Biveinis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).