This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: robustness vs. conservative GC
- To: dewar at gnat dot com
- Subject: Re: robustness vs. conservative GC
- From: Fergus Henderson <fjh at cs dot mu dot oz dot au>
- Date: Tue, 31 Jul 2001 09:28:21 +1000
- Cc: gcc at gcc dot gnu dot org, lord at regexps dot com
- References: <20010730231148.58EF2F2B53@nile.gnat.com>
On 30-Jul-2001, dewar@gnat.com <dewar@gnat.com> wrote:
> <<Just using a fully-tagged data representation like that is not
> sufficient for accurate GC in an uncooperative environment. Relying on
> a fully-tagged data representation also requires cooperation from the
> compiler back-end. An uncooperative compiler might (a) store arbitrary
> values in registers and on the stack, which the GC might mistake for
> pointers, or (b) store pointers with the wrong tag in registers or on
> the stack, as a result of compiler optimizations.
> >>
>
> The tagging must also be present in all values stored in registers (that's
> the way the CDC 6600 implementation of Algol-68 worked).
Yes, but ensuring that requires cooperation from the back-end compiler!
--
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.