[Mono-list] Announce: A .NET assembly -> native code generationtool (ala ngen for MONO)

Fergus Henderson fjh@cs.mu.oz.au
Thu, 1 Aug 2002 23:54:43 +1000

On 01-Aug-2002, Zoltan.2.Varga@nokia.com <Zoltan.2.Varga@nokia.com> wrote:
> From: Dietmar Maurer 
> > Sure, but I also has some advantages. For example it works with
> > exceptions and garbage collection. I have no idea how we can 
> > include GC support with the gcc approach.
> A conservative garbage collector, like the Boehm collector can work with gcc code if the code is "GC-safe", i.e. it always
> keeps pointers to the beginning or interior of all live objects. An example of non-gc safe code is:
>      a[i - 5] = 0;

That code is GC-safe.  The problem is just that an optimizing
compiler might transform it to something which is not GC-safe.

> When confronted with such code an optimizing compiler might decide to transform it to something like (a-5)[i], which means
> there are no pointers left pointing to a, so it will be garbage collected.

Right.  But in practice this does not seem to be a significant problem.
Hardware failure seems to be a more common source of errors.

If you can produce a test case for which GCC generates
non-GC-safe object code, I will produce a patch for GCC which
adds a compiler option to generate GC-safe code, and handles
that test case correctly.

Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.