Hi, On Tue, 14 Jul 2015, Richard Biener wrote:
> For example have those special caches have two marking phases. The first > phase marks all non-key edges originating from each entry. The second > phase is the same as what we have now - unmarked entries get removed. > > The first phase would go with regular marking, the second when > processing caches. > > You'd delay collecting the memory the non-key edges point to > to the next GC run, but I think that's a fair trade-off. That's Toms other approach with supporting multi-step dependencies. As I have tried to argue in the other thread, I think this idea is fundamentally broken and just hides real bugs, and I don't see why this would be different for this particular hash-map. If the value of this hash refers to a decl that isn't mentioned anywhere else except from this hash entry, then it has no meaning anymore, and hence shouldn't itself be part of the hash anymore. Ciao, Michael.