public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* [tree-ssa]: Interprocedural aliasing and function local results
@ 2004-01-18 22:52 Daniel Berlin
  0 siblings, 0 replies; only message in thread
From: Daniel Berlin @ 2004-01-18 22:52 UTC (permalink / raw)
  To: Diego Novillo; +Cc: gcc mailing list

I hit a PTA "bug" today I figured had always existed, but never 
actually saw in practice.

Due to PTA being able to do interprocedural analysis of statics, it can 
tell when things alias variables in another function (due to function 
calls)

We ended up with two things that same_points_to_set would return false 
for, because one aliased a variable in another function, and one 
didn't.  So they got different memory tags, but were on either side of 
an assignment (A = B, A and B had different memory tags), so it 
propagated them, and all hell broke loose.

If you excluded the variable in the other function, the points-to sets 
were both empty.
It's not technically a bug because the result is correct. They don't 
have the same points-to set, just the same function local points-to 
set.
Obviously. for purposes of intraprocedural analysis, I need to filter 
out these variables so that tree-dfa gets what it wants.

But before I just do it for same_points_to_set, I want to know if this 
information is or would eventually be useful for anything.
IE is it interesting to know that one variable can alias a variable in 
another function?

If it is useful info, I'll just filter them out on the fly in 
same_points_to_set.
If not, i'd rather than do it for all variables right after PTA runs, 
since it's probably a bit cheaper then doing it on the fly repeatedly.
--Dan

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-01-18 22:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-18 22:52 [tree-ssa]: Interprocedural aliasing and function local results Daniel Berlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).