A front-end can maintain the invariant that every root which might have
been modified by a copying collector is reloaded from its associated root
slot. If it does so, then the GEPs introduced by internal optimizations
will be rendered harmless by LLVM's (core, non-GC-related) semantics.


On Sun, Nov 10, 2013 at 9:49 PM, Patrick Walton <[email protected]>wrote:

> On 11/11/13 1:00 AM, Jonathan S. Shapiro wrote:
> > 2. LLVM won't introduce new getelementpointer operations internally, and
> > the front end is responsible for dealing with liveness issues for
> > element pointers introduced by the front end.
>
> Internally LLVM optimization passes can create the equivalent of
> arbitrary new GEP instructions during codegen. So a moving GC will not
> be able to find all pointers to relocate them.
>
> Patrick
>
> _______________________________________________
> bitc-dev mailing list
> [email protected]
> http://www.coyotos.org/mailman/listinfo/bitc-dev
>
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to