http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54966
--- Comment #4 from Jan Hubicka <hubicka at ucw dot cz> 2012-10-23 13:59:38 UTC --- > I'm not sure how we count the initial unit size, given that when not using > LTO not merged comdats are probably counted here, so overall they add up > while the initial LTO unit size may be considerably smaller than the sum > of the non-LTO unit sizes. I do not realy see problem here. We simply count size of the unit by summing all the functions in the callgraph prior inlining (after merging). So in the case of LTO we count COMDATs once and if they are unused by non-LTO we promote them to static and get better inlining due removing offline copies (that we are acccounting as inline decisions are made). In the case of non-LTO we count COMDAT in every unit that has the COMDAT used + we have heuristic predicting that most likely the COMDAT will be eliminated in the other units, too, if it is eliminated in the current unit. So we inline them almost as aggressively as statics, but not quite. What kind of problem are you looking into? Honza