Commit 308a3fe2 by Dodji Seketeli Committed by Dodji Seketeli

Cleanup comments in alias.c

While reading alias.c, it seemed to me that some comments could use
some cleanups.

gcc/

	* alias.c: Cleanup comments.

From-SVN: r192463
parent 895e8371
2012-10-15 Dodji Seketeli <dodji@redhat.com>
* alias.c: Cleanup comments.
2012-10-15 Marc Glisse <marc.glisse@inria.fr> 2012-10-15 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/54915 PR tree-optimization/54915
...@@ -60,14 +60,13 @@ along with GCC; see the file COPYING3. If not see ...@@ -60,14 +60,13 @@ along with GCC; see the file COPYING3. If not see
struct Z z2, *pz; struct Z z2, *pz;
py = &px1.y1; py = &x1.y1;
px2 = &x1; px2 = &x1;
Consider the four questions: Consider the four questions:
Can a store to x1 interfere with px2->y1? Can a store to x1 interfere with px2->y1?
Can a store to x1 interfere with px2->z2? Can a store to x1 interfere with px2->z2?
(*px2).z2
Can a store to x1 change the value pointed to by with py? Can a store to x1 change the value pointed to by with py?
Can a store to x1 change the value pointed to by with pz? Can a store to x1 change the value pointed to by with pz?
...@@ -78,24 +77,24 @@ along with GCC; see the file COPYING3. If not see ...@@ -78,24 +77,24 @@ along with GCC; see the file COPYING3. If not see
a store through a pointer to an X can overwrite any field that is a store through a pointer to an X can overwrite any field that is
contained (recursively) in an X (unless we know that px1 != px2). contained (recursively) in an X (unless we know that px1 != px2).
The last two of the questions can be solved in the same way as the The last two questions can be solved in the same way as the first
first two questions but this is too conservative. The observation two questions but this is too conservative. The observation is
is that in some cases analysis we can know if which (if any) fields that in some cases we can know which (if any) fields are addressed
are addressed and if those addresses are used in bad ways. This and if those addresses are used in bad ways. This analysis may be
analysis may be language specific. In C, arbitrary operations may language specific. In C, arbitrary operations may be applied to
be applied to pointers. However, there is some indication that pointers. However, there is some indication that this may be too
this may be too conservative for some C++ types. conservative for some C++ types.
The pass ipa-type-escape does this analysis for the types whose The pass ipa-type-escape does this analysis for the types whose
instances do not escape across the compilation boundary. instances do not escape across the compilation boundary.
Historically in GCC, these two problems were combined and a single Historically in GCC, these two problems were combined and a single
data structure was used to represent the solution to these data structure that was used to represent the solution to these
problems. We now have two similar but different data structures, problems. We now have two similar but different data structures,
The data structure to solve the last two question is similar to the The data structure to solve the last two questions is similar to
first, but does not contain have the fields in it whose address are the first, but does not contain the fields whose address are never
never taken. For types that do escape the compilation unit, the taken. For types that do escape the compilation unit, the data
data structures will have identical information. structures will have identical information.
*/ */
/* The alias sets assigned to MEMs assist the back-end in determining /* The alias sets assigned to MEMs assist the back-end in determining
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment