http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54966



--- Comment #5 from rguenther at suse dot de <rguenther at suse dot de> 
2012-10-23 14:02:05 UTC ---

On Tue, 23 Oct 2012, hubicka at ucw dot cz wrote:



> 

> 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?



I was just guessing why our overall unit-growth heuristics would

lead to different overall inlining with LTO vs. single TUs.



Richard.

Reply via email to