This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [sa]: Revert partial def stuff, use fake variables instead
- From: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: Daniel Berlin <dberlin at dberlin dot org>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sun, 19 Dec 2004 23:17:04 +0100
- Subject: Re: [sa]: Revert partial def stuff, use fake variables instead
- References: <Pine.LNX.4.60.0412191553050.6810@dberlin.org>
Hello,
> In addition to the mainline merge, i've made significant changes to how
> struct-aliasing operates.
> It now uses fake variables to represent structure fields, instead of
> trying to make partial defs and uses work.
> This is because it end up being a lot less work, even if there is some
> overhead in figuring out the fake variables associated with a given
> component ref.
> The attached patch is the changes necessary to make this work.
> I've disabled ivopts because, as diego discovered, ivopts decides it knows
> how to create tags for pointers when it really doesn't, when it should
> just be calling the may_alias pass.
no it definitely should not. What it should do is to preserve the
aliasing information unchanged (ivopts do not change the the memory
references at all, they just change the way the addresses of those
references are expressed). The fact that this is very hard (or even
impossible) to do with the current system of representation of alias
analysis results can hardly be considered a problem of ivopts.
Why not just add an annotation for memory references that would contain
the associated tag (or whatever other information is needed with your
patch)? It would make my life so much easier (and it would also make
operand rescanning faster, and the whole system more flexible).
Zdenek