Hi, I am going to create a gcc branch for the functionality of lightweight IPO. The description of the project and current status can be found in http://gcc.gnu.org/wiki/LightweightIpo. Some highlights:
1) If you already use FDO in your build, you also get IPO almost for free; 2) It is an IPO solution practical to very large real world C++ applications; 3) Performance potential is very large (though I've seen case increased compiler freedom can lead to performance degradation due to over-optimization (inliner, unroller etc) -- but this is a different matter). If the idea is generally accepted, I will prepare a series of patches and submit them to gcc trunk. Thanks, David