Hi, On Wed, 5 Mar 2008, Richard Kenner wrote:
> > The problem lies in the way how we represent load and store dependencies > > as virtual operands. Conflicts between a pair of mem accesses are not > > evaluated by asking alias_set_conflicts_p() on both accesses, but instead > > via a chain of virtual def and use operands. > > But I thought this whole discussion was about a change to > alias_sets_conflict_p. So you've lost me. alias_sets_conflict_p() is used to determine if an addressable variable and a type conflict also from the tree-ssa alias machinery (in effect to determine which virtual variables need to be clobbered). It just isn't feed COMPONENT_REFs, that's what you found very wrong, and I explained the reasons for not doing so. If we were to do that (and hence become more precise) we would have to increase memory use as just explained. You were asking how feeding COMPONENT_REFs would be connected with memory use, and I explained it. Richis proposed change to alias_sets_conflict_p is not directly connected with this, or only insofar as it tries to say "no" in more cases even in the mediocre way tree-ssa asks conflict_p. In the course of discussion it became clear that a much better fix would be to feed it COMPONENT_REFs, but we can't easily as explained. Ciao, Michael.