<div dir="ltr">Thank you, Jordan!<div><br></div><div>I had guessed there wouldn&#39;t be much low-hanging fruit here -- I&#39;m sure a ton of work has been put into improving compilation time, after all. Thanks for all the great explanations.</div><div class="gmail_extra"><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div>The one thing we <i>could</i> do here is improve -driver-show-incremental. I haven’t used it in a while so I don’t actually know where I left off with that.</div></div></blockquote><div><br></div><div>I assume you mean showing more information when this option is specified. Let me know if there&#39;s something more. Also, do you mind if I create a JIRA task for this?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>One thing we <i>have</i> noticed is that the cost for each frontend task for a project with 1500 tiny, non-dependent Swift files and a bridging header is much higher than it is for Clang. People have blamed Swift having to open and parse every file in the project, but I don’t actually believe this is the case; time spent in Parse is <i>tiny</i> for these functions. It would be very interesting for someone to investigate where this time is going. (There’s a similar project in <a href="https://bugs.swift.org/browse/SR-2461" target="_blank">SR-2461</a>; I haven’t checked whether the project we have in Radar is appropriately clean of user info to share.</div></div></blockquote><div><br></div><div>I looked into this a bit. Compiling 1501 Swift files takes 38 seconds on my Linux VM (<a href="https://gist.github.com/modocache/7b6e2f0c17f65e8418c2acf5e1c82154">https://gist.github.com/modocache/7b6e2f0c17f65e8418c2acf5e1c82154</a>), compiling 1501 C files using clang takes 22 seconds (<a href="https://gist.github.com/modocache/ceeefaa76befd738e62e078dd2e186f1">https://gist.github.com/modocache/ceeefaa76befd738e62e078dd2e186f1</a>). These numbers don&#39;t seem outrageous to me, so I guess the problem could be specific to bridging headers. I don&#39;t have a macOS environment capable of building Swift right now, but I&#39;ll try to look into this more once Xcode 8 is released.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>I guess that’s about it. Oh, and I keep meaning to write tools to manipulate the data in the swiftdeps YAML files, but that can happen at any time. You’re welcome to contribute something before I get to it.</div></div></blockquote><div><br></div><div>What do you have in mind? A command-line tool to add input files, update their timestamps, that sort of thing?</div><div><br></div><div>- Brian Gesiak</div><div><br></div></div></div></div>