This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: robustness vs. conservative GC


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]