http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54796
--- Comment #4 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-10-08 14:37:53 UTC --- I'm a bit uncomfortable with this approach. On the one hand, it's quite simple, which is nice, but if all we get from it is the base term, we'll still have trouble given multiple sp-based non-overlapping memory regions, won't we? The patch in revision 188871 and others in that batch were meant to let alias analysis within vta figure out the relationship between argp, fp and sp and disambiguate accesses. I wonder why it didn't work in this case, with or without the still-pending patch to canonicalize stack pointer tracking. I'd rather go with the latter (even if with additional changes) because it would enable alias analysis, through more precise sp+offset tracking, to distinguish not only between argp and sp-based variables, but also between automatic varying-sized objects. Assuming my understanding of your patch is correct in that it adds information on whether some object is at an sp-relative offset but without making the offset available to alias analysis. Is that so?