This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Improved-aliasing]: Begin to disentangle clobbering fromaliasing


On Sun, 2005-09-11 at 18:28 -0400, Daniel Berlin wrote:
> This begins the fun of disentangling clobbering from aliasing.
> 
> This moves it out of the aliasing code, where it was sometimes setting
> it on tags, and sometimes not, and sometimes getting all the transitive
> parts right, and sometimes not.
> 
> It also is confused about the difference between touching global mem and
> being call clobbered, which is the next thing i'll fix.

Just to be clear, the code i've change it to is not what i want it to
finally look like.

There are still some niggling little things in there that are hard to
understand and make it fragile.
For example, it took me a few hours to figure out why commenting out the
pt_vars walk breaks anything when those should be clobbered as part of
the tag clobbering.  It turns out we don't tags to all things with
pt_vars set, and we don't consider a call clobber site to be a deref in
some cases.

So we'd end up with cases like

D.503_7 value escapes, is addressable, points-to {a }

Where a is call clobbered.

D.503_7 never gets a tag of any kind (no name tag because it's not
deref'd, even though it's clobbered), so if you don't clobber a through
that walk, it never gets clobbered.

Whee.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]