Re: how to generate code for (a,b):=(b,a)

Hans-Juergen Boehm <boehm@mti.mti.sgi.com>
30 May 1997 23:19:03 -0400

          From comp.compilers

Related articles
[16 earlier articles]
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-17)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-22)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-22)
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-25)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-27)
Re: how to generate code for (a,b):=(b,a) fjh@murlibobo.cs.mu.OZ.AU (1997-05-30)
Re: how to generate code for (a,b):=(b,a) boehm@mti.mti.sgi.com (Hans-Juergen Boehm) (1997-05-30)
Re: how to generate code for (a,b):=(b,a) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-06-11)
| List of all articles for this month |

From: Hans-Juergen Boehm <boehm@mti.mti.sgi.com>
Newsgroups: comp.compilers
Date: 30 May 1997 23:19:03 -0400
Organization: Silicon Graphics Inc., Mountain View, CA
References: 97-05-058 97-05-129 97-05-148 97-05-262 97-05-272 97-05-300
Keywords: storage, GC, code

Dave Lloyd wrote:
> Currently, the whole system is stopped in a synchronised way to GC, so
> traces only occur at procedure calls in all threads. But this is more
> for convenience with the threading mechanisms available than required by
> the method.


Based on what you've said, this seems absolutely essential. It is
also essential that the sequence of 3 XORs cannot be split across a
procedure call. Otherwise the collector could stop a thread in the
middle of the XOR sequence, in which case one of the pointer values
would be very hard to recover. Your descriptor mechanism sounds too
weak to describe such a situation, but I could be mistaken.


If you add a conservative collector to a conventional compiler, the
problem is that both of these properties are hard to come by. This
has nothing to do with C vs whatever; it has to do purely with the
extent to of compiler cooperation. And we were only arguing that C
compilers should optionally exhibit a small amount of such
cooperation.
--
Hans-Juergen Boehm
boehm@mti.sgi.com
--


Post a followup to this message

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