[M3devel] init_offset?

Tony Hosking hosking at cs.purdue.edu
Sun Nov 7 14:22:50 CET 2010


Even if we did move stack-referenced objects we still would not need to volatilise. The assumption should always be that registers (as captured when a thread is stopped) will also be available for scanning.  That's why on some targets we explicitly capture the thread registers.  But it is true that we don't move stack-referenced objects. 

Sent from my iPad

On 07/11/2010, at 7:41 AM, Dragiša Durić <dragisha at m3w.org> wrote:

> We don't'.
> 
> Any pointer references on stack and in registers are recognized as bit patterns during collection and conservatively kept in place. (I think it is the notion used:).
> 
> So, no need to "volatilize" anything explicitly.
> 
> IMO :)
> 
> On Nov 7, 2010, at 1:35 PM, Jay K wrote:
> 
>> Should we maybe make all traced pointers volatile?
>> Or at least stores to them?
>>  I know we have a compacting garbage collector.
>>  If it moves a pointer.. it updates any instance of that value seen on the stack?
>>  (and I know, we endeavor to "flush" registers when paused for gc, so that
>>  stack suffices and no need to worry further about registers, except on NT386
>>  where it is a little different, we can get/set the registers of the paused thread)
> 



More information about the M3devel mailing list