On Mon, May 02, 2011 at 04:46:23PM +0200, Richard Guenther wrote:
> >> *************** typedef void (lto_free_section_data_f) (
> >> *** 346,355 ****
> >>  struct lto_streamer_cache_d
> >>  {
> >>    /* The mapping between tree nodes and slots into the nodes array.  */
> >> !   htab_t node_map;
> >> !
> >> !   /* Node map to store entries into.  */
> >> !   alloc_pool node_map_entries;
> >>
> >>    /* The nodes pickled so far.  */
> >>    VEC(tree,heap) *nodes;
> >> --- 346,352 ----
> >>  struct lto_streamer_cache_d
> >>  {
> >>    /* The mapping between tree nodes and slots into the nodes array.  */
> >> !   struct pointer_map_t GTY((skip)) *node_map;
> >
> > If you skip node_map you can end up with false entries for re-used
> > trees.  So I don't think that's a good idea.
> 
> Or we can safely mark the whole struct as non-GC (and also allocate
> it that way).

We already do (see lto-streamer.c:lto_streamer_cache_create; there's no
GTY marker on lto_streamer_cache_d.  So Honza's original GTY annotation
there is superfluous.

-Nathan

Reply via email to