This is the mail archive of the
mailing list for the GCC project.
Re: Fully flow and context sensitive points-to analysis in GCC 4.6.0
This is great progress.
If I understand the experiments, your implementtion has very small
cost to perform the analysis, at least for the SPEC benchmarks you are
testing. Have you connected the analysis to any optimizations? Is
there any improvement in performance on SPEC CPU or other
Unfortunately we could not do this as it requires changing the way the pointer information
is made available to other passes. Right now, it is encoded in the TREE nodes of
variables which make is same at all program points. In other words, GCC, by definition
assumes flow insensitive information. Supporting flow sensitivity implies being able
to provide different information for the same pointer at different program points.
We are investigating how this can be done and this is one of the most important future
works on which we seek collaboration. Unless we are able to do this, we will not be able
to take advantage of the analysis.
You ask for collaboration, but it's not clear what state the
infrastructure is in, how complete it is, and what more needs to be
The infrastructure is in a reasonably complete state except that
(a) It is not directly useful to other analyses and optimizations for the
reasons described above.
(b) It uses rather naive and inefficient data structures in which sets are
stored as linked lists and set operations are implemented using linear
(c) Some corner cases related identifying pointers need to be fixed.
(d) It handles heap locations rather conservatively.
We seek collaborations on (a) and (b). We have designed APIs to hide the data structures
and now these are good student projects. Some details can be found at
We are carrying out research on (d) and have some ideas on what needs to be done but it will
be some time before the infrastructure is enhanced to include it. We are committed to doing it.
Thanks and regards,