On Wed, May 1, 2013 at 5:11 PM, Nikhil Patil <nikhilpatil3...@gmail.com> wrote: > On Tue, Apr 30, 2013 at 1:32 PM, Richard Biener > <richard.guent...@gmail.com> wrote: >> On Mon, Apr 29, 2013 at 7:34 PM, Nikhil Patil <nikhilpatil3...@gmail.com> >> wrote: >>> Hello, >>> >>> 1. Which passes of gcc make use of points-to information in >>> SSA_NAME_PTR_INFO (or more precisely, pt_solution) in doing >>> optimizations? >> >> All passes that query the alias oracle (tree-ssa-alias.h) which is almost >> all passes doing optimization of memory accesses. > > Thanks a lot for giving direction. I will try finding the passes. > >> >>> >>> 2. Also, who computes this points-to information and populates >>> pt_solution? Is it ONLY ipa-pta pass? >> >> It is points-to analysis, both the IPA variant and the local variant >> (ealias and alias >> passes). > > From what I could understand, gimple passes "pass_build_ealias" > (ealias) and "pass_build_alias" (alias) flags "TODO_rebuild_alias" at > end and then function "execute_function_todo" from passes.c calls > "compute_may_aliases ()" which eventually computes points-to > information.
Correct. > Then the IPA PTA pass finds a more precise points-to information. > Please correct if I am wrong. Well. The IPA PTA pass is supposed to compute a points-to solution for the whole translation unit, thus it should be more precise. Due to limitations and bugs in IPA PTA the result does not necessarily have to be more precise. I do not consider the current IPA PTA code production ready (it does not scale very well and it doesn't result in any performance improvements for SPEC 2k6). It's a long-time item on my personal TODO list to at least address the fundamental problems with the current implementation (read: bugs). But my TODO list is quite crowded ... Richard. >> >>> When I accessed pt_solution through a plugin which REPLACES ipa-pta >>> pass, I found that the information (in pt_solution) with and without >>> ipa-pta pass differs only in terms of flags in pt_solution. Here with >>> the examples I could construct, I found that the bitmap 'vars' in >>> pt_solution is same for both the cases. Is it always true? >> >> In theory IPA PTA should be able to compute a more precise solution, >> thus have different (less) bits set in 'vars'. There are several testcases >> that show this, look for ipa-pta* testcases in gcc/testsuite/ >> >> Richard. >> >>> Can someone please help in clarifying these doubts. >>> >>> Thanks in advance. >>> >>> -- >>> Regards, >>> Nikhil Patil. > > -- > Regards, > Nikhil Patil.