<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 16, 2013 at 1:46 PM, Xinliang David Li <span dir="ltr"><<a href="mailto:xinliangli@gmail.com" target="_blank" class="cremed">xinliangli@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb adM"><div class="im">On Tue, Jul 16, 2013 at 1:40 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com" class="cremed">chandlerc@google.com</a>> wrote:<br>

> On Tue, Jul 16, 2013 at 1:37 PM, Xinliang David Li <<a href="mailto:xinliangli@gmail.com" class="cremed">xinliangli@gmail.com</a>><br>
> wrote:<br>
>><br>
>> On Tue, Jul 16, 2013 at 1:33 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com" class="cremed">chandlerc@google.com</a>><br>
>> wrote:<br>
>> > On Tue, Jul 16, 2013 at 1:18 PM, Xinliang David Li<br>
>> > <<a href="mailto:xinliangli@gmail.com" class="cremed">xinliangli@gmail.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> Ignoring FE time which can be fully parallelized and assuming 10%<br>
>> >> compile time is spent in serial module passes, 25% time is spent in<br>
>> >> CGSCC pass, the maximum speed up that can be gained by using function<br>
>> >> level parallelism is less than 3x.  Even adding support for parallel<br>
>> >> compilation for leaves of CG in CGSCC pass won't help too much -- the<br>
>> >> percentage of leaf functions is < 30% in large apps I have seen.<br>
>> ><br>
>> ><br>
>> > Can you clarify what you're basing these assumption on or how you<br>
>> > derived<br>
>> > your data?<br>
>> ><br>
>><br>
>> Those numbers are purely speculative -- does Clang has an option to<br>
>> dump the time breakout of each passes such as -ftime-report in GCC?<br>
><br>
><br>
> We have the functionality... I thought we wired -ftime-report up to it? If<br>
> that doesn't work I'll have to go digging.<br>
<br>
</div></div>I just checked -- it produces a flat report -- it would be nice to<br>
produce something similar to -debug-pass=Structure outputs.</blockquote></div><br>Yea, improving the nested timing information and other improvements to reflect the pass management structure are on my list for the significant changes to the pass manager infrastructure I mentioned in my original comments.</div>
</div>