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
