Hi, nice that you are going to look into it. I am quite interested to help here as you can probably guess ;) The overall plan looks good to me. (and is pretty compatible with what I believe is needed) There are a lots of details however.... > > > Anything else I may have missed? There are other related activities, > like keeping the whole callgraph in SSA form that may also benefit from > these cleanups. All these cleanups could be either hosted on the same > branch, or done in separate branches. However, I think concentrating > the work on a single branch may allow better integration and memory > savings testing.
If you are interested in some sort of integration of changes in IPA branch (IE whole program in SSA form), I can probably prepare sort of merge patches for review (pretty much as I intend to finally do in next development cycle). It would be nice to have this in mind when designing datastructures so we won't end up with sollution having limitations of SSA to single function body (for example in current implementation the variable annotations are quite an offenders as they are shared across functions for static variables but contain function local datastructures). I did some testing of memory consumption for my gccsummit paper and it looks like (quite suprisingly I would say) current IPA branch is not noticeably worse in memory consumption than mainline (ie the conversion to SSA and early optimizations don't expand IL too much). I don't however build the aliasing info, just do the SSA before first alias pass. I am not sure whether we want to build SSA representation of aliasing for whole program (mem-SSA or not) is good idea. Perhaps just making aliaisng aware early local pass, then removing the virutal operands and rebuilding aliasing in late pass is easier way to go, but with proper design of datastructures I guess it won't be dificult to experiment with it later. Honza > > > Thanks. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.3 (GNU/Linux) > > iD8DBQFEWeulUTa2oAUaiwQRAidEAJ9Zwrku7cHBy/hqiz96rNFiBEH2agCfRajf > L2YfHlJBHjCzoix4gWQhV0Q= > =9Swx > -----END PGP SIGNATURE-----