Re: Register Allocators and Garbage Collectors

Ori Bernstein <rand.chars@gmail.com>
Mon, 15 Sep 2008 18:16:02 -0700 (PDT)

          From comp.compilers

Related articles
Register Allocators and Garbage Collectors rand.chars@gmail.com (Ori Bernstein) (2008-09-09)
Re: Register Allocators and Garbage Collectors gneuner2@comcast.net (George Neuner) (2008-09-13)
Re: Register Allocators and Garbage Collectors marcov@stack.nl (Marco van de Voort) (2008-09-14)
Re: Register Allocators and Garbage Collectors niktechc@niktech.com (Sandeep Dutta) (2008-09-15)
Re: Register Allocators and Garbage Collectors rand.chars@gmail.com (Ori Bernstein) (2008-09-15)
Re: Register Allocators and Garbage Collectors rand.chars@gmail.com (Ori Bernstein) (2008-09-15)
Re: Register Allocators and Garbage Collectors gneuner2@comcast.net (George Neuner) (2008-09-16)
Re: Register Allocators and Garbage Collectors rand.chars@gmail.com (Ori Bernstein) (2008-09-17)
| List of all articles for this month |

From: Ori Bernstein <rand.chars@gmail.com>
Newsgroups: comp.compilers
Date: Mon, 15 Sep 2008 18:16:02 -0700 (PDT)
Organization: Compilers Central
References: 08-09-052 08-09-067
Keywords: GC, parallel
Posted-Date: 16 Sep 2008 07:50:19 EDT

On Sep 15, 10:35 am, "Sandeep Dutta" <nikte...@niktech.com> wrote:
> Hi Ori,
>
> A typical garbage collector would "scan" the stack of all
> active processes looking for values that "might be" pointers.
> If it finds something that looks like a pointer, it will mark
> the "memory" as referenced. This will lead some false positives
> ofcourse.
>
> Hope that helps.


No, it doesn't really. The issue that I was pointing out was that if
the garbage collector runs in it's own thread for parallelism (most of
them do, I believe) and you have native compilation going, then values
are likely not to have a root in the stack at all; the only reference
may be in a register. If you looked at the assembly-oid listing you
would have seen that.
[If you know your threads are all running on the same processor, you
could peek at the place where the registers of other threads are
saved. If they can really run in parallel, you're right, it's a problem.
-John]



Post a followup to this message

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